HTTP durum kodları
Herhangi bir HTTP durum kodunu numarayla veya sözcükle arayın; sade anlamını, yaygın nedenlerini, çözümlerini ve onu tanımlayan RFC'yi görün.
Tamamen tarayıcınızda çalışır
IANA HTTP Status Code Registry'deki kodları listeler; 306 ve 418 olduğu gibi ayrılmış kodlar olarak gösterilir. Buna ek olarak nginx, Cloudflare ve Laravel'den, kaynağıyla etiketlenmiş, sık görülen birkaç resmî olmayan kod da vardır. Diğer üreticiye özgü kodlar kapsanmaz.
Durum kodu nasıl aranır
- Arama kutusuna
502gibi bir numara ya da rate limit veya redirect gibi bir sözcük yazın. - Listeyi sınıf düğmeleriyle daraltın: standart kodlar için 1xx ile 5xx arası, nginx, Cloudflare ve Laravel kodları için Resmî olmayan.
- Bir kodu açarak ne zaman göründüğünü ve istemci ile sunucu sahibi olarak ne yapılacağını görün. O koda doğrudan bağlantı paylaşmak için # bağlantısını kullanın.
HTTP durum kodlarını okuma
Her HTTP yanıtı, istemciye isteğine ne olduğunu söyleyen üç basamaklı bir durum koduyla başlar. İlk rakam aileyi verir: ilerleme iletileri için 1xx, başarı için 2xx, yönlendirme için 3xx, istekteki bir sorun için 4xx ve sunucudaki bir arıza için 5xx. Belirli bir kodu tanımayan bir program, yalnızca bu ilk rakama bakarak yine doğru davranabilir; yeni kodların eski istemcileri bozmadan eklenebilmesinin nedeni budur.
Resmî liste IANA HTTP Status Code Registry'de tutulur; anlamlar RFC 9110'da (HTTP Semantics) ve WebDAV ile uzantılar için birkaç başka RFC'de yazılıdır. Numaranın ardından gelen Not Found gibi neden ifadesi yalnızca bir etikettir; HTTP/2 ve HTTP/3 bunu taşımaz. Bazı ifadeler 2022'de yeniden adlandırıldı: 413 artık Content Too Large, 422 ise Unprocessable Content'tir.
Standartların dışındaki sunucular da kod icat eder. nginx, bir istemci bağlantıyı kestiğinde 499 kaydeder; Cloudflare ise kendi ağı ile kaynak sunucunuz arasındaki arızaları anlatmak için 520 ile 526 arasını kullanır. Kayıtlı kodlarla karıştırılmasınlar diye bunlar burada ayrı bir grupta görünür. Hata ayıklarken, gördüğünüz kodun uygulamanın kendisinden değil, önündeki bir proxy'den veya CDN'den gelebileceğini unutmayın.
İpuçları
- Adresinde özel karakterler olan başarısız bir isteğiniz mi var? URL kodla ve çöz ile kodlayın veya çözün.
- Bir API hatasının yanıt gövdesini JSON biçimlendir ve doğrula ile okuyun.
- Belirli bir tarayıcı veya bot için 403 mü alıyorsunuz? İstemcinin ne gönderdiğini User-Agent çözümleyici ile kontrol edin.
Sık sorulan sorular
Durum kodlarının beş sınıfı ne anlama gelir?
İlk rakam sınıfı belirler. 1xx bilgilendirmedir ve istek hâlâ sürmektedir, 2xx başarı demektir, 3xx istemcinin bir adım daha atması gerektiğini (genellikle yönlendirme) belirtir, 4xx isteğin istemci tarafında bir sorunu olduğunu, 5xx ise geçerli görünen bir istekte sunucunun başarısız olduğunu gösterir.
401 ile 403 arasındaki fark nedir?
401, sunucunun kim olduğunuzu bilmediği anlamına gelir: kimlik bilgileri eksik, yanlış veya süresi dolmuştur ve oturum açmak sorunu çözebilir. 403 ise kim olduğunuzu bildiği ve bunu yapmaya izniniz olmadığı anlamına gelir; aynı kimlik bilgilerini yeniden göndermek işe yaramaz.
Yönlendirme için 301 mi 302 mi kullanmalıyım?
Taşıma kalıcıysa 301 (veya 308) kullanın; böylece tarayıcılar ve arama motorları yeni adrese geçer. Eski adres geri gelecekse 302 (veya 307) kullanın. 307 ve 308 istek yöntemini korur; 301 ve 302 ise eski istemcilerin POST'u GET'e çevirmesine izin verir.
418 I'm a teapot gerçek bir durum kodu mu?
Bir kahve makinesi denetim protokolü için RFC 2324'te 1 Nisan şakası olarak başladı. IANA artık 418'i kullanılmayan olarak listeler; ona gerçek bir anlam verilmemesi için ayrılmıştır. Bazı siteler hâlâ eğlence için ya da veri kazıyıcıları geri çevirmek için döndürür, ancak standart bir yanıt değildir.
520 ile 526 arası ve 499 nedir?
HTTP standartlarında yer almazlar. 520 ile 526 arası, Cloudflare ile kendi sunucunuz arasındaki sorunları bildiren Cloudflare hatalarıdır; 499 ise yanıttan önce bağlantıyı kesen bir istemci için kullanılan bir nginx günlük koludur. Bunlar kaynaklarıyla birlikte Resmî olmayan grupta gösterilir.
Bir 5xx hatası yeniden denediğimde neden bazen kayboluyor?
Birçok 5xx hatası aşırı yükten, yeniden başlayan bir arka uçtan veya kısa bir ağ arızasından kaynaklanır ve saniyeler içinde geçebilir. Artan bir gecikmeyle yeniden denemek GET gibi idempotent istekler için güvenlidir; POST için ilk denemenin zaten başarılı olmadığından emin olun.