İçeriğe geç
Muhammet Şafak
en

HTTP Durum Kodları Referansı

Yaygın HTTP durum kodlarının anlamı ve tipik kullanım yeri. Kodu, adı ya da anahtar kelimeyi yazarak ara. Tarayıcıda çalışır, arama dışarı gönderilmez.

Bu araç tarayıcınızda çalışır. Veriler dışarı çıkmaz.

  • 100 Continue

    İstemci isteğin geri kalanını gönderebilir.

    Tipik: Expect: 100-continue ile büyük gövde upload.

  • 101 Switching Protocols

    Sunucu protokol değişimini kabul etti.

    Tipik: HTTP → WebSocket geçişi.

  • 103 Early Hints

    Ön ipuçları, son yanıttan önce.

    Tipik: CSS/JS için erken preload.

  • 200 OK

    İstek başarılı.

    Tipik: Standart başarılı yanıt.

  • 201 Created

    Yeni kaynak oluşturuldu.

    Tipik: POST sonrası, Location header ile.

  • 202 Accepted

    İstek alındı, henüz tamamlanmadı.

    Tipik: Asenkron iş kuyruğa alma.

  • 204 No Content

    Başarılı, gövde yok.

    Tipik: DELETE veya başarılı PUT.

  • 206 Partial Content

    Sadece istenen byte aralığı döndü.

    Tipik: Video / büyük dosya range request.

  • 301 Moved Permanently

    Kaynak kalıcı olarak taşındı.

    Tipik: Domain veya URL yapısı değişikliği.

  • 302 Found

    Geçici yönlendirme.

    Tipik: Login sonrası geri yönlendirme.

  • 303 See Other

    POST sonrası GET ile başka kaynağa yönlendir.

    Tipik: Form gönderim sonrası.

  • 304 Not Modified

    Önbellek hâlâ taze.

    Tipik: ETag / If-None-Match doğrulamaları.

  • 307 Temporary Redirect

    Geçici yönlendirme, metod korunur.

    Tipik: 302 alternatifi (yöntem-koruyan).

  • 308 Permanent Redirect

    Kalıcı yönlendirme, metod korunur.

    Tipik: 301 alternatifi (yöntem-koruyan).

  • 400 Bad Request

    Sunucu isteği anlayamadı.

    Tipik: Geçersiz JSON, eksik alan.

  • 401 Unauthorized

    Kimlik doğrulanmadı.

    Tipik: Eksik / geçersiz token.

  • 403 Forbidden

    Kimlik var, yetki yok.

    Tipik: Yetkisiz kaynak erişimi.

  • 404 Not Found

    Kaynak yok.

    Tipik: Tipik yanlış URL.

  • 405 Method Not Allowed

    HTTP metodu desteklenmiyor.

    Tipik: POST yerine GET veya tersi.

  • 409 Conflict

    Durumla çakışma.

    Tipik: Eşzamanlı yazım, unique kısıtlaması.

  • 410 Gone

    Kaynak kalıcı olarak silindi.

    Tipik: Eski endpoint deprecation.

  • 415 Unsupported Media Type

    Content-Type desteklenmiyor.

    Tipik: Yanlış MIME, missing Content-Type.

  • 422 Unprocessable Content

    Sözdizimi doğru ama anlam geçersiz.

    Tipik: Validation hataları (Laravel default).

  • 429 Too Many Requests

    Hız limiti aşıldı.

    Tipik: Rate limiting (Retry-After).

  • 500 Internal Server Error

    Sunucuda beklenmedik hata.

    Tipik: Yakalanmamış istisna.

  • 501 Not Implemented

    Sunucu metodu tanımıyor.

    Tipik: Beta endpoint.

  • 502 Bad Gateway

    Upstream geçersiz yanıt.

    Tipik: Nginx → PHP-FPM bağlantı sorunu.

  • 503 Service Unavailable

    Sunucu geçici olarak müsait değil.

    Tipik: Bakım modu, aşırı yük.

  • 504 Gateway Timeout

    Upstream zaman aşımına uğradı.

    Tipik: Yavaş query, donmuş worker.

Nasıl çalışır

HTTP durum kodları üç haneli, ilk hane sınıfı belirtir:

  • 1xx — Informational: Sürüyor (nadiren görülür).
  • 2xx — Success: İstek başarılı.
  • 3xx — Redirection: İsteğin tamamlanması için istemcinin ek bir adım atması gerekir.
  • 4xx — Client Error: İstekte sorun var.
  • 5xx — Server Error: Sunucuda sorun var.

Sık karıştırılanlar

401 vs 403:

  • 401 Unauthorized — “kimliğini doğrulayamadım” (login gerek).
  • 403 Forbidden — “kimliğini biliyorum ama bu kaynağa yetkin yok”.

422 vs 400:

  • 400 Bad Request — istemci kaynaklı bir sorun var, en tipik hâli bozuk sözdizimi (örn. bozuk JSON).
  • 422 Unprocessable Content — syntax doğru ama anlam geçersiz (örn. e-posta alanında “abc”). Laravel, JSON/XHR isteklerinde default validation hatalarını 422 ile döndürür.

301 vs 308:

  • 301 Moved Permanently — kalıcı yönlendirme. Fetch Standard’ı izleyen güncel istemciler POST’u GET’e düşürür, yani metot korunmaz.
  • 308 Permanent Redirect — kalıcı yönlendirme, metodu korur. POST’u POST olarak yeniden yönlendirir.

502 vs 503 vs 504:

  • 502 Bad Gateway — upstream geçersiz yanıt verdi (örn. PHP-FPM crash).
  • 503 Service Unavailable — sunucu geçici olarak yanıt veremiyor (planlı bakım, aşırı yük).
  • 504 Gateway Timeout — upstream zaman aşımına uğradı (yavaş worker).

Idempotency

Bir metodun idempotent olması, aynı isteğin defalarca yapılmasının yan etkiyi değiştirmemesi anlamına gelir:

  • GET, PUT, DELETE, HEAD, OPTIONS — idempotent.
  • POST, PATCH — genelde idempotent değil.

Idempotent metotlar 5xx hatasından sonra otomatik retry edilebilir. Idempotent olmayanlar (örn. ödeme alma) retry için Idempotency-Key header’ı gibi mekanizmalar gerektirir.

Yaygın anti-pattern’ler

  • 200 OK ile hata döndürmek — {"error": "..."} formatında. REST istemcileri için kötü; durum kodunu kullanın.
  • 404 ile yetki hatası gizlemek — “bu kaynağın var olup olmadığını sızdırmak istemiyorum”. Çoğu durumda 403 veya 401 daha açık bir yanıt. RFC 9110 yetkisiz bir kaynağı gizlemek için 403 yerine 404 dönmeye izin veriyor; bunu alışkanlık değil, bilinçli bir tercih olarak yapın.
  • 500 her yerde — daha açıklayıcı kodlar var (422, 502, 503, 504). 500 sadece beklenmedik exception için.

Kaynaklar

Gizlilik

Bu statik bir referans. Arama kutusuna yazdığınız her şey tamamen tarayıcınızda çalışır ve dışarı çıkmaz — kutunun arkasında sunucu sorgusu yok.

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Esc ile kapat Pagefind ile güçlendirildi