HTTP İstek ve Yanıt Nedir?
Kısa tanım
HTTP istek ve yanıt, web'deki iletişimin temel birimidir: istemci (tarayıcı, uygulama veya bot) bir sunucuya istek gönderir, sunucu da bir yanıtla karşılık verir. İstek; metot, hedef adres, başlıklar ve isteğe bağlı bir gövdeden oluşur. Yanıt ise bir durum kodu, başlıklar ve çoğu zaman HTML, JSON veya görsel gibi bir gövde içerir. Mesajın taşıdığı asıl veriye payload denir.
Diğer adları: HTTP isteği, HTTP yanıtı, request, response, payload, HTTP mesajı

Web'in temel diyaloğu
Bir sayfayı açtığınızda tarayıcı tek bir istek göndermez. Önce HTML'i ister, sonra HTML'de geçen her CSS, JavaScript, font ve görsel için ayrı istekler atar; orta büyüklükte bir sayfa kolayca onlarca isteğe ulaşır. Her biri aynı kalıbı izler: istemci sorar, sunucu cevap verir. HTTP durumsuzdur; sunucu her isteği önceki isteklerden bağımsız olarak değerlendirir. Kullanıcının oturum açmış olduğu gibi bilgiler, her istekte çerezler veya token'larla yeniden taşınır.
Bir isteğin anatomisi
HTTP/1.1'de mesaj düz metindir ve dört parçadan oluşur: istek satırı, başlık satırları, boş bir satır ve isteğe bağlı gövde.
POST /api/iletisim?kaynak=footer HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (...)
Content-Type: application/json
Content-Length: 65
Cookie: oturum=a81f...
{"ad": "Ayşe", "eposta": "[email protected]", "mesaj": "Merhaba"}- İstek satırı: HTTP metodu (
POST), hedef (/api/iletisimve sorgu parametresikaynak=footer) ve protokol sürümü. - Başlıklar: İstek hakkında bilgi verir.
HostHTTP/1.1'de zorunludur; aynı IP adresindeki birçok sitenin hangisinin istendiğini belirtir.Content-Typegövdenin biçimini bildirir. - Gövde: Sunucuya gönderilen veri.
GETisteklerinde genellikle gövde bulunmaz; gerekli bilgi URL'de taşınır.
Bir yanıtın anatomisi
HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
Content-Length: 31
Cache-Control: no-store
Set-Cookie: form_gonderildi=1; Path=/; Secure; HttpOnly
{"durum": "alindi", "id": 9137}İlk satır durum satırıdır: sürüm, üç haneli durum kodu ve isteğe bağlı açıklama. Ardından gelen başlıklar; içeriğin türünü, önbellekte nasıl tutulacağını, tarayıcıya hangi çerezin yazılacağını söyler. Boş satırdan sonra gövde gelir: bir HTML sayfası, JSON verisi, bir görsel ya da hiçbir şey.
Payload ne demek?
Payload, mesajın “yükü”, yani asıl taşınan veridir: yukarıdaki örnekte form alanlarını içeren JSON nesnesi. Başlıklar bu yükü tarif eder; Content-Type ne olduğunu, Content-Length kaç bayt olduğunu, Content-Encoding sıkıştırılıp sıkıştırılmadığını söyler. Sunucular kabul ettikleri payload boyutunu sınırlar; sınırı aşan bir istek 413 Content Too Large yanıtı alabilir. Güvenlik açısından payload her zaman güvenilmeyen girdidir ve doğrulanmadan kullanılmamalıdır.
HTTP/2 ve HTTP/3'te ne değişir?
Metotlar, durum kodları ve başlıkların anlamı tüm sürümlerde aynıdır; bunlar RFC 9110'da sürümden bağımsız olarak tanımlanır. Değişen, mesajın kablo üzerindeki biçimidir. HTTP/2 ve HTTP/3'te mesajlar ikili çerçevelere bölünür, başlık adları küçük harfle yazılır, istek satırının yerini :method ve :path gibi sözde başlıklar alır ve birçok istek tek bir bağlantı üzerinde aynı anda taşınabilir.
Trafiği kendi gözünüzle görmek
Tarayıcı geliştirici araçlarındaki Ağ (Network) sekmesi her isteğin başlıklarını, payload'unu, yanıtını ve süresini gösterir. Komut satırında curl -i https://www.example.com/ yanıt başlıklarını, curl -v ise gönderilen isteği de yazdırır. Bir sayfanın durum kodunu ve yönlendirme zincirini hızlıca görmek için SEO Analiz Aracı da kullanılabilir.

