Dünyada HTTP Nedir?
HTTP, istemci ve sunucunun önceden kurulmuş bir TCP bağlantısı üzerinden iletişim kurduğu bazı kural kümelerini tanımlayan bir istek yanıt protokolüdür.
İstemci ve sunucu arasında bir TCP bağlantısı kurulduğunda, HTTP, resim, metin, multimedya vb. veri aktarımı için kuralları tanımlar.
HTTP, istemci ve sunucu arasında bağlantı kurmak için TCP’ye dayanan bir bağlantı protokolü değildir. Sunucu, istemci tarafından açık bir TCP bağlantısı üzerinden gönderilen HTTP istek mesajını aldığında, sunucu analiz eder ve istemciye bir HTTP yanıtı gönderir ve ardından TCP bağlantısı kapanır.
Aynı TCP bağlantısı üzerinden art arda gönderilen iki veya daha fazla HTTP istek mesajı arasında hiçbir ilişki veya bağlantı yoktur.
HTTP Bağlantısı Kurma 🏗️
Bir istemci bir istek-yanıt döngüsü başlattığında aşağıdaki adımları gerçekleştirir:
- Bir TCP bağlantısı kuruldu.
- TCP bağlantısı kurulduğunda, istemci sunucuya bir HTTP istek mesajı gönderir ve sunucu bu mesaja yanıt verir.
- TCP bağlantısı kapalı.
HTTP Mesajları ✉️
İki tür HTTP mesajı vardır bunlar:
- HTTP istek mesajı
- HTTP yanıt mesajı vardır.
HTTP İstek Mesajı
Bir HTTP istek mesajı aşağıdakilerden oluşur
- HTTP Method: Bunlar, yukarıdaki durumda, yöntemin bir
GET
istek olması durumunda isteğin yapısını tanımlar. - Request URI: Bu, HTTP yönteminin uygulanacağı kaynağı tanımlar.
- HTTP Version: Yukarıdaki durumda HTTP Version:
HTTP/1.1'dir.
- HTTP Request Headers: Ardından, istek ve istemci hakkında sunucuya bazı ek bilgileri ileten istek başlıkları gelir. Yukarıdaki durumda aşağıdaki istek başlıklarına sahibiz
- Host : Web sitesi veya kaynağın saklandığı sunucunun IP ve Port numarasını içerir. Bu durumda,
[hashnode.com](http://hashnode.com)
HTTP için varsayılan bağlantı noktası numarası 80 ve HTTPS için 443’tür. - Kabul-Dil : Bu, müşterinin yukarıdaki durumda iletişim kurmak istediği dili belirtir
en
(İngilizce)
- Host : Web sitesi veya kaynağın saklandığı sunucunun IP ve Port numarasını içerir. Bu durumda,
- Accept-Language: Bu, depolama için gönderilen bilgileri içeren isteğe bağlı bir alan olup, çoğunlukla POST, PATCH isteği vb.
HTTP Yanıt Mesajı
Bir HTTP yanıt mesajı aşağıdakilerden oluşur
- HTTP Version: Yukarıdaki durumda HTTP Version:
HTTP/1.1'dir.
- Status Code: İsteğin sonucunu belirler, yukarıdaki durumda “200” Satues Code’dur.
- HTTP Response Headers: İstemciye yanıt ve sunucu hakkında ek bilgi iletir, bu durumda aşağıdaki başlıklara sahibiz.
- Accept Ranges: Sunucu tarafından kısmi isteklere desteğini göstermek için kullanılır.
- Server: Bu, yanıtı işleyen sunucunun yapısını anlatır, Bu durumda Apache.
- Content-Type : Bu, kaynağın dosya türünü belirtir, Bu durumda bir html veya bir txt dosyasıdır.
- E-Tag : belirli kaynak sürümünü tanımlar
- HTTP Response Body: Bu, özellikle GET isteği gibi isteklerde sunucudan istemciye gönderilen bilgileri içeren isteğe bağlı bir alandır.
HTTP Yöntemleri
- GET – Bu yöntem, istek-URI’sinde belirtilen kaynağı alır. Başarılı olursa, kaynak, durum kodu 200 (Başarılı) ile birlikte yanıt mesajında bir varlık olarak döndürülür.
- POST – Bu yöntem, sunucu başarılı olursa, sunucudaki verileri değiştirmek için kullanılır, sunucu, gönderilen varlığın veya verilerin konumuyla birlikte 201 (Oluşturuldu) durum kodunu içeren bir yanıt mesajı göndererek yanıt verir.
- PUT – Sunucudaki verileri günceller.
- DELETE – Sunucudaki verileri siler.