Menu

HTTP Durum Kodları

Her HTTP durum kodu için aranabilir referans ve sade açıklamalar.

Yazan Nethanel Bar, Co-founder & CEO

Son güncelleme

Ready to actually learn to code?

Coddy teaches you by writing real code in your browser - interactive lessons, instant feedback, and AI help when you get stuck.

HTTP durum kodları nedir?

HTTP durum kodları, sunucunun her yanıtın başında döndürdüğü ve ne olduğunu özetleyen üç haneli sayılardır. Tarayıcılar, istemciler, proxy'ler ve CDN'ler; cache'leyip cache'lememe, yönlendirme yapma, yeniden deneme veya kullanıcıya hata gösterme kararını bu kodlara bakarak verir.

Her durum kodu, ilk hanesine göre beş sınıftan birine düşer: 1xx bilgilendirme, 2xx başarı, 3xx yönlendirme, 4xx istemci hatası, 5xx sunucu hatası. Sınıfı bildiğinde, spesifik kodu aramadan bile kabaca anlamını kestirebilirsin.

Çoğu uygulama aslında küçük bir çekirdek kümeyi kullanır (200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503). Her birinin *ne anlama geldiğini* - 401 Unauthorized ile 403 Forbidden ya da 301 Moved Permanently ile 302 Found arasındaki farkı - bilmek seni daha sağlam bir backend veya API geliştiricisi yapar.

Bu referansı kullanırken öğreneceklerin

  • İlk hane sana her zaman sınıfı söyler: 1xx bilgi, 2xx başarı, 3xx yönlendirme, 4xx istemci hatası, 5xx sunucu hatası.
  • Durum kodları bir API'nin sunduğu *sözleşmenin parçasıdır* - istemciler bunlara göre dallanmalı, gövdedeki hata mesajını parse etmeye çalışmamalıdır.
  • 4xx, istemcinin bir şeyi yanlış yaptığı anlamına gelir (hatalı girdi, eksik kimlik doğrulama, bulunmayan kaynak). 5xx ise istemci ne yaparsa yapsın sunucunun başarısız olduğunu söyler.

Durum kodu referansını adım adım nasıl kullanırsın

  1. Kod veya isimle ara

    Bir sayı (404, 429) ya da anahtar kelime (auth, redirect, rate limit) yaz; eşleşen kodlar anlık olarak filtrelenir.

  2. Sınıfa göre filtrele

    Aradığın net bir kod yoksa ve keşfetmek istiyorsan, sınıf çiplerini (1xx, 2xx, 3xx, 4xx, 5xx) kullanarak listeyi daralt.

  3. Sade dilli açıklamayı oku

    Her kayıt; kodun ne zaman gönderildiğini, tipik istemci davranışını ve en sık karşılaşılan nedeni içerir.

  4. Benzer kodları karşılaştır

    Karıştırılan çiftler arasındaki çapraz bağlantıları (401 vs 403, 301 vs 302) kullanarak API'n için doğru olanı seç.

HTTP durum kodu sınıfları

HTTP durum kodlarının beş sınıfı ve bir bakışta ne anlama geldikleri. RFC 9110 tarafından tanımlanır ve IANA HTTP Status Code Registry üzerinde kayıtlıdır.

SınıfAnlamıYaygın kodlar
1xx Bilgilendirmeİstek alındı, işleniyor100, 101, 103
2xx Başarıİstek başarıyla tamamlandı200, 201, 204, 206
3xx YönlendirmeBaşka bir yere bak301, 302, 304, 307, 308
4xx İstemci hatasıİstekte bir sorun var400, 401, 403, 404, 409, 422, 429
5xx Sunucu hatasıSunucu, geçerli bir isteği karşılayamadı500, 502, 503, 504

Bilmen gereken yaygın HTTP durum kodları

200 OK vs 201 Created vs 204 No Content

200 OK

Standart "her şey yolunda gitti" yanıtı; gövdesiyle birlikte döner.

201 Created

İstek sonucunda yeni bir kaynak oluşturuldu - genellikle bir POST sonrasında döner.

204 No Content

Başarılı, ama gövdesiz. Veri döndürmesi gerekmeyen DELETE veya PUT çağrılarından sonra yaygındır.

Üçü de başarı kodu - fark, yanıtın ne taşıdığında. 201, yeni kaynağın adresini gösteren bir Location header'ı içermeli; 204 ise tanımı gereği boştur.

301 Moved Permanently vs 302 Found

301

Kalıcı yönlendirme. Tarayıcılar ve arama motorları bunu hatırlar; eski URL fiilen ölmüş demektir.

302

Geçici yönlendirme. Tarayıcılar her istekte orijinal URL'yi yeniden kontrol eder; yer imleri eski URL'de kalır.

Bir kaynağı gerçekten taşıdıysan (rebrand, URL yeniden yapılanması) 301 kullan. A/B testleri, giriş yönlendirmeleri veya bakım sayfaları gibi kısa ömürlü durumlar için 302 daha uygundur.

401 Unauthorized vs 403 Forbidden

401

Kimlik doğrulaman yok. Sunucu kim olduğunu bilmiyor.

403

Sunucu kim olduğunu biliyor ama bu kaynak için yetkin yok.

Farklı kimlik bilgileri göndermek sorunu çözebilecekse 401 döndür. Hangi kimlik bilgisi gönderilirse gönderilsin işe yaramayacaksa (kaynak bu kullanıcıya zaten yasak) 403 döndür.

500 vs 502 vs 503 vs 504

500

Genel sunucu hatası - kodun yakalanmamış bir exception fırlattı.

502

Bad gateway - öndeki bir proxy (CDN, load balancer) upstream sunucuya ulaşamadı.

503

Service unavailable - sunucu ayakta ama aşırı yüklü ya da bakım modunda.

504

Gateway timeout - proxy upstream'e ulaştı ama zamanında yanıt alamadı.

Dördü de sunucu hatası ama hata ayıklayan kişiye çok farklı hikâyeler anlatırlar. 500 senin uygulaman; 502 ve 504 ağ yolunu işaret eder; 503 ise kapasiteye işaret eder.

Yaygın HTTP durum kodu hataları

  • Gövdede {"error": "..."} ile birlikte 200 OK döndürmek. Durum kodları sözleşmenin parçasıdır - istemciler dallanabilsin diye doğrusunu kullan (400, 404, 500).
  • İzin hataları için 401 kullanmak. 401 kimlik doğrulama içindir; izin reddi 403 olmalı.
  • Yeni oluşturulan kaynaklar için Location header'lı 201 yerine 200 döndürmek.

HTTP Durum Kodu SSS

HTTP 404 ne demek?
404 Not Found, sunucunun isteği anladığı ama o URL'deki kaynağın mevcut olmadığı anlamına gelir. Genellikle yol yanlıştır, kaynak silinmiştir veya URL yanlış yazılmıştır.
401 ile 403 arasındaki fark nedir?
401 Unauthorized, kimlik doğrulaman olmadığı anlamına gelir - sunucu kim olduğunu bilmiyor. 403 Forbidden ise kimliğin doğrulanmış ama bu kaynak için yetkin olmadığı anlamına gelir. Farklı kimlik bilgileri göndermek 401'i çözebilir; 403'ü çözmez.
301 ile 302 arasındaki fark nedir?
301 Moved Permanently kalıcı bir yönlendirmedir - tarayıcılar ve arama motorları kayıtlarını günceller. 302 Found ise geçici bir yönlendirmedir - istemciler orijinal URL'yi ziyaret etmeye devam eder. Kalıcı taşımalar için 301, geçici sapmalar için 302 kullan.
HTTP 500 ne demek?
500 Internal Server Error, genel bir sunucu tarafı hatasıdır; genellikle yakalanmamış bir exception yukarı kabardığında fırlatılır. İstemci yanlış bir şey yapmadı - sunucun geçerli bir isteği işleyemedi.
Her zaman spesifik bir durum kodu mu kullanmalıyım?
Evet. Hatalar için genel 200 OK ya da her şey için 500 döndürmek API'leri kullanmayı zorlaştırır. Duruma en iyi uyan en spesifik kodu seç - istemciler, proxy'ler, monitörler ve retry mantığı hep durum koduna göre dallanır.
HTTP 429 ne demek?
429 Too Many Requests, bir istemci rate limit'e takıldığında gönderilir. Yanıt, istemciye ne zaman tekrar deneyebileceğini söyleyen bir Retry-After header'ı içermelidir.

Daha fazla bilgi

Diğer geliştirici araçları

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA