HTTP İstek Yapısı

, web

HTTP İstek Yapısı

HTTP Nedir?

Hypertext Transfer Protocol kelimesinin kısaltılmış şekli olan HTTP, web tarayıcıdan veya istemciden gelen talepler ile web sunucularından gelen cevaplar arasındaki yolu sağlayan yapıdır. HTML belgeleri, resimler, videolar, sorgu sonuçları vb. veriler, World Wide Web’de TCP kullanılarak HTTP tarafından iletilir. Çeşitli bağlantı noktaları kullanılsa da, yaygın olarak kullanılan bağlantı noktası TCP 80'dir. HTTP, web tarayıcılarının ve sunucularının ortak bir dilde güvenli iletişimini sağlayan bir protokoldür. İstekler ve cevaplar HTTP tarafından belirtilen dil kurallarına uyarak gerçekleştirilir.

HTTP İsteği

HTTP isteği 4 temel öğeden oluşur: Bir istek satırı, sıfır veya daha fazla başlık (Genel | İstek | Varlık) alanları ve ardından CRLF, CRLF'den önce hiçbir şey içermez (başlık alanlarının sonunu gösterir), isteğe bağlı olarak bir mesaj gövdesi içerebilir.

İstek satırı, önce büyük harflerle yazılmış yöntemi belirtir. HTTP / 1.1 sürümündeki bu metodlar şöyle sıralanabilir: GET, POST, PUT, HEAD, DELETE, PATCH ve OPTIONS.

Metodlar Tanımı
GET metodu En yaygın GET metodu yalnızca belirtilen kaynaktan veri almak için kullanılır.
POST metodu Resim dosyaları, kullanıcı bilgileri gibi verileri gönderirken POST metodu kullanılır.
PUT metodu PUT metodu, dosyayı belirtilen kaynaktan güncellemek için kullanılır.
HEAD metodu HEAD metodu, GET metodu gibi verileri almak için kullanılır, ancak yanıt gövdesini aktaramaz.
DELETE metodu DELETE metodu, belirtilen kaynağı silmek için kullanılır.
PATCH metodu PATCH metodu, kaynağın bazı kısımlarını değiştirmek için kullanılır.
OPTIONS metodu OPTIONS metodu, belirtilen kaynak için iletim seçeneklerini tanımlamak için kullanılır.

İstek URI'ı, istek satırındaki yöntemi takip eder. URI'ın amacı, isteğin hedefi olan kaynağı tanımlamaktır. Daha sonra ise HTTP versiyonu belirlenir.

Örneğin,

GET /test.html HTTP/1.1
POST /index.html HTTP/1.1

İkincisi, istek başlığı alanları istek hakkında bazı ek bilgiler verir. Bazı önemli başlıklar şu şekildedir:

  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Authorization
  • Expect
  • From
  • Host
  • If-Match
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • If-Unmodified-Since
  • Max-Forwards
  • Proxy-Authorization
  • Range
  • Referer
  • TE
  • User-Agent

Genel başlıklar hem isteklere hem de yanıt mesajlarına uygulanabilir.
İstemci isteği başlıkları yalnızca ileti istemek için uygulanabilir.
Sunucu yanıt başlıkları yalnızca yanıt mesajlarına uygulanabilir.
Varlık başlıkları, varlık kuruluşu veya talep edilen kimlikleri içeren kaynak hakkındaki meta bilgilere uygulanabilir.

Bir istek örneği:

GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.image4.io
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

Kaynaklar: