Tool

HTTP Status Codes Reference

En sık kullanılan HTTP durum kodları ve anlamları. Aranabilir.

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

  • 100Continue

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

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

  • 101Switching Protocols

    Sunucu protokol değişimini kabul etti.

    Tipik: HTTP → WebSocket geçişi.

  • 103Early Hints

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

    Tipik: CSS/JS için erken preload.

  • 200OK

    İstek başarılı.

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

  • 201Created

    Yeni kaynak oluşturuldu.

    Tipik: POST sonrası, Location header ile.

  • 202Accepted

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

    Tipik: Asenkron iş kuyruğa alma.

  • 204No Content

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

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

  • 206Partial Content

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

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

  • 301Moved Permanently

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

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

  • 302Found

    Geçici yönlendirme.

    Tipik: Login sonrası geri yönlendirme.

  • 303See Other

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

    Tipik: Form gönderim sonrası.

  • 304Not Modified

    Önbellek hâlâ taze.

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

  • 307Temporary Redirect

    Geçici yönlendirme, metod korunur.

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

  • 308Permanent Redirect

    Kalıcı yönlendirme, metod korunur.

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

  • 400Bad Request

    Sunucu isteği anlayamadı.

    Tipik: Geçersiz JSON, eksik alan.

  • 401Unauthorized

    Kimlik doğrulanmadı.

    Tipik: Eksik / geçersiz token.

  • 403Forbidden

    Kimlik var, yetki yok.

    Tipik: Yetkisiz kaynak erişimi.

  • 404Not Found

    Kaynak yok.

    Tipik: Tipik yanlış URL.

  • 405Method Not Allowed

    HTTP metodu desteklenmiyor.

    Tipik: POST yerine GET veya tersi.

  • 409Conflict

    Durumla çakışma.

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

  • 410Gone

    Kaynak kalıcı olarak silindi.

    Tipik: Eski endpoint deprecation.

  • 415Unsupported Media Type

    Content-Type desteklenmiyor.

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

  • 422Unprocessable Content

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

    Tipik: Validation hataları (Laravel default).

  • 429Too Many Requests

    Hız limiti aşıldı.

    Tipik: Rate limiting (Retry-After).

  • 500Internal Server Error

    Sunucuda beklenmedik hata.

    Tipik: Yakalanmamış istisna.

  • 501Not Implemented

    Sunucu metodu tanımıyor.

    Tipik: Beta endpoint.

  • 502Bad Gateway

    Upstream geçersiz yanıt.

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

  • 503Service Unavailable

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

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

  • 504Gateway 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.

Ara

Yazmaya başlayın. Notlar, sistem yazıları, günlük, araçlar ve sayfalar.

gezesckapat