HTTP Başlıklarını Anlamak
HTTP Başlıkları hakkındaki bilgilerimi tazelemem gerekiyor ve bunları not etmeye karar verdim. Bunlar, HTTP Üstbilgileri hakkındaki notlarım.
HTTP Başlıkları nedir?
- HTTP başlığı, istek veya yanıtla ilgili ek bağlam ve meta verileri ileten bir HTTP isteği veya yanıtı alanıdır.
- Başlıklar büyük/küçük harfe duyarsızdır
- Bu HTTP iletişimlerinin ayrılmaz bir parçasıdır
İstek başlıkları :
- getirilecek kaynak hakkında bilgi içeren.
- Bir istekte görünebilen tüm üstbilgilere , belirtim tarafından istek üstbilgileri denmez . Örneğin, başlık, gösterim başlığı
Content-Typeolarak anılır .
- Yanıtla ilgili bilgileri tutun (konumu gibi)
- MIME türü veya uygulanan kodlama/sıkıştırma gibi kaynağın gövdesi hakkında bilgiler içerir .
- veya gibi yanıt başlıkları,
Ageyanıtın daha ayrıntılı bir bağlamını vermek için kullanılır.LocationServer
- içerik uzunluğu ve taşıma için kullanılan kodlama dahil olmak üzere yük verileri hakkında gösterimden bağımsız bilgiler içerir.
- Hem HTTP istek hem de yanıt mesajlarında bulunabilir.
Önbelleklerin ve önbelleğe alınmayan proxy'lerin davranışını tanımlamak amacıyla, HTTP başlıklarını iki kategoriye ayırırız:
- Uçtan uca başlıklar, bir istek veya yanıtın nihai alıcısına iletilmelidir.
- Yanıtlardaki uçtan uca başlıklar, bir önbellek girişinin parçası olarak saklanmalı ve bir önbellek girdisinden oluşturulan herhangi bir yanıtta iletilmelidir.
- Hop-by-hop başlıkları yalnızca tek bir aktarım seviyesi bağlantısı için anlamlıdır ve önbelleklerde depolanmaz veya proxy'ler tarafından iletilmez.
- Bağlantı
- Hayatta kal
- Halk
- Proxy Kimlik Doğrulaması
- Transfer-Kodlama
- Güncelleme
Misal
Birçok farklı HTTP başlığı vardır. Bir örnekle devam edelim.
GET /home.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0
Ana Bilgisayar: İsteğe bağlı bağlantı noktası numarasıyla birlikte talep edilen site hakkında bilgi. (varsayılan: 80)
User-Agent: isteği oluşturan kullanıcı aracısı hakkında bilgi içerir.
Kabul Et: yanıt için kabul edilebilir olan belirli ortam türlerini belirtmek için kullanılır. Örneğin, bir tarayıcı bir CSS stil sayfası, resim, video veya komut dosyası getirirken bir istekte farklı değerler kullanır.
Kabul-Dil: yanıtın olması beklenen dil. virgülle ayrılmış birden çok dile izin verilir. Kabul-Kodlama: genellikle müşterinin anlayabileceği bir sıkıştırma algoritması). ( ) Yönlendiren: istemcinin, URL'nin istendiği kaynağın adresini (URI) belirtmesine izin verir.Accept-Language: de-CHdeflate, gzip
Bağlantı: canlı tut , sunucuya yapılacak sonraki isteklerin aynı bağlantıyı kullanacağı anlamına gelir. c lost , ana makine ile sunucu arasındaki bağlantıyı otomatik olarak kapatacaktır, yani sonraki isteklerin yeni bir TCP bağlantısı kurması gerekecektir.
Ve cevap böyle olabilir
200 OK
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 18 Jul 2016 16:06:00 GMT
Etag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"
Keep-Alive: timeout=5, max=997
Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT
Server: Apache
Set-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secure
Transfer-Encoding: chunked
Vary: Cookie, Accept-Encoding
X-Backend-Server: developer2.webapp.scl3.mozilla.com
X-Cache-Info: not cacheable; meta data too large
X-kuma-revision: 1085259
x-frame-options: DENY
Access-Control-Allow-Origin: Site A, Site B'den içerik getirmeye çalıştığında, Site B, tarayıcıya bu sayfanın içeriğinin belirli kaynaklar tarafından erişilebilir olduğunu bildirmek için bir Access-Control-Allow-Origin yanıt başlığı gönderebilir. En iyi uygulama, bu başlık için * vermemektir . * yerine sunucularınızı vermeniz yeterli.
Etag: Bir varlık etiketidir. Kaynağın belirli bir sürümü için tanımlayıcı olarak kullanılır . Belirli bir URL'deki kaynak değişirse, yeni bir değerEtag oluşturulmalıdır . Bunların karşılaştırılması, bir kaynağın iki temsilinin aynı olup olmadığını belirleyebilir. Kullanım için lütfen bu bağlantıyı kontrol edin. Transfer-Kodlama
: Kodlama biçimini belirtir. Chunked, sıkıştır, deflate ve gzip gibi farklı değerler vardır. Birden çok değere virgülle ayırma yoluyla izin verilir. ( Transfer-Encoding: gzip, chunked)
X-Frame-Options: siteyi tıklama saldırılarından korumak için kullanılır. Örneğin, reddetme değeri kullanırsanız, <iframe> öğesini diğer sitelere yerleştiremezsiniz. sameorigin, aynı orijine gömmeye izin verir.
Durum/Yanıt Kodu:
- 1xx: İsteğin sunucu tarafından alındığı ve işleme devam edilmesi gerektiği anlamına gelir.
- 2xx: Bu, isteğin başarılı olduğu anlamına gelir.
- 3xx: Yönlendirme anlamına gelir :)
- 4xx: Bu, isteğin kötü bir istek içerdiği anlamına gelir, sunucuyla ilgili değil, istemci tarafında bir sorun vardır.
- 5xx: Sunucuyla ilgili bir sorun var.
- Aktarım Kodlaması: gzip ve İçerik Kodlaması
- HEAD ve GET Performansı ve Farkı
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
- https://www.freesoft.org/CIE/RFC/2068/143.htm

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































