İnternet üzerindeki tüm web işlemleri, istemciler (tarayıcılar, mobil uygulamalar vb.) ve sunucular arasında HTTP (HyperText Transfer Protocol) protokolü aracılığıyla gerçekleşir. Bu protokol, istemcinin yaptığı istekleri ve sunucunun verdiği yanıtları belirli kurallar çerçevesinde düzenler.

Bir HTTP isteği, tarayıcı tarafından sunucuya gönderildiğinde, sunucu belirli bir durum kodu ile yanıt verir. Bu HTTP durum kodları, isteğin başarılı olup olmadığını veya hata olup olmadığını belirten üç haneli kodlardır.

Bu makalede, HTTP istek türleri (HTTP Methods), HTTP durum kodları ve bunların kullanım alanlarını detaylı bir şekilde ele alacağız.

2. HTTP İstek Yöntemleri (HTTP Methods)

HTTP protokolü, istemcinin sunucuya hangi türde bir işlem yapmak istediğini belirten istek yöntemlerini (HTTP Methods) içerir.

2.1. Temel HTTP İstek Yöntemleri

İstek Yöntemi Açıklama
GET Veriyi sunucudan almak için kullanılır. Sayfa görüntüleme işlemlerinde yaygın olarak kullanılır.
POST Sunucuya veri göndermek için kullanılır. Form gönderimleri, API çağrıları gibi işlemlerde kullanılır.
PUT Var olan bir kaynağı güncellemek veya yeni bir kaynak oluşturmak için kullanılır.
DELETE Sunucudan belirli bir kaynağı silmek için kullanılır.
PATCH Mevcut bir kaynağın sadece belirli bir bölümünü güncellemek için kullanılır.
HEAD GET isteğine benzer, ancak yalnızca yanıt başlıklarını döndürür (içerik olmadan).
OPTIONS Sunucunun desteklediği HTTP yöntemlerini öğrenmek için kullanılır.

Örnek GET İsteği:

GET /index.html HTTP/1.1
Host: www.example.com

Bu istek, example.com sunucusundan index.html sayfasını istemektedir.

Örnek POST İsteği:

POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

username=johndoe&password=12345

Bu istek, sunucuya bir kullanıcı adı ve şifre göndererek kimlik doğrulama işlemi yapmaktadır.

3. HTTP Durum Kodları (HTTP Status Codes)

Sunucu, istemciden gelen HTTP isteğine üç haneli bir durum kodu (status code) ile yanıt verir. Bu durum kodları, 5 ana kategoriye ayrılır:

3.1. 1xx – Bilgilendirme Durum Kodları

Bu kodlar, istemcinin isteğinin işlendiğini ve devam etmesi gerektiğini bildirir.

Kod Açıklama
100 Continue Sunucu isteği aldı, işlem devam edebilir.
101 Switching Protocols Sunucu, başka bir protokole geçmeyi kabul etti.
103 Early Hints Sonraki istekte hangi başlıkların gönderileceğini bildirir.

3.2. 2xx – Başarılı HTTP Durum Kodları

Bu kodlar, istemcinin isteğinin başarıyla tamamlandığını belirtir.

Kod Açıklama
200 OK İstek başarıyla tamamlandı.
201 Created Yeni bir kaynak başarıyla oluşturuldu.
202 Accepted İstek kabul edildi, ancak henüz işlenmedi.
204 No Content Sunucu isteği işledi, ancak içerik döndürmedi.

Örnek 200 OK Yanıtı:

HTTP/1.1 200 OK
Content-Type: text/html

3.3. 3xx – Yönlendirme Durum Kodları

Bu kodlar, istemcinin talep ettiği kaynağın farklı bir adrese yönlendirildiğini gösterir.

Kod Açıklama
301 Moved Permanently Kaynak kalıcı olarak başka bir URL’ye taşındı.
302 Found Kaynak geçici olarak başka bir URL’ye taşındı.
304 Not Modified Önbellekteki versiyon hala geçerli, yeniden indirmeye gerek yok.

Örnek 301 Yönlendirme:

HTTP/1.1 301 Moved Permanently
Location: https://newdomain.com/

3.4. 4xx – İstemci Hatası Durum Kodları

İstemci tarafından yapılan hataları belirtir.

Kod Açıklama
400 Bad Request Hatalı veya eksik istek.
401 Unauthorized Kimlik doğrulama başarısız.
403 Forbidden Erişim izni yok.
404 Not Found Kaynak bulunamadı.
408 Request Timeout İstek süresi doldu.

Örnek 404 Hata Yanıtı:

HTTP/1.1 404 Not Found
Content-Type: text/html

3.5. 5xx – Sunucu Hatası Durum Kodları

Sunucu tarafından kaynaklanan hataları gösterir.

Kod Açıklama
500 Internal Server Error Sunucuda beklenmeyen bir hata oluştu.
502 Bad Gateway Geçersiz bir yanıt alındı.
503 Service Unavailable Sunucu geçici olarak hizmet veremiyor.
504 Gateway Timeout Sunucu zaman aşımına uğradı.

Örnek 500 Hata Yanıtı:

HTTP/1.1 500 Internal Server Error
Content-Type: text/html

4. Sonuç

HTTP istekleri ve durum kodları, internetin temel iletişim yapısını oluşturur. 200, 301, 404 ve 500 gibi sık karşılaşılan kodlar, web geliştiricileri ve sistem yöneticileri için büyük önem taşır.

Web uygulamalarının güvenliği ve performansı için hatalı istekleri analiz etmek, yönlendirmeleri doğru yapılandırmak ve hataları en aza indirmek kritik öneme sahiptir.