İ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:
- Bilgilendirme (1xx): İstek alındı, işleniyor.
- Başarı (2xx): İstek başarıyla tamamlandı.
- Yönlendirme (3xx): Kaynak başka bir URL’ye taşındı.
- İstemci Hatası (4xx): Kullanıcı isteğinde bir hata var.
- Sunucu Hatası (5xx): Sunucu, isteği işleyemedi.
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.