İçeriğe atla

HTTP durum kodları

Bir HTTP yanıtı üç haneli bir kodla ve kısa bir neden ifadesiyle başlar. İlk rakam tüm özeti: 1xx geçicidir, 2xx başarısız, 3xx başka bir yere işaret eder, 4xx isteği suçlar, 5xx sunucuyu suçlar. Bunu hatırlarsan, hiç görmediğin bir günlüğü okuyabilirsin.

Buradaki neden ifadeleri RFC'lerden olanları İngilizce olup, çünkü telden geçer — bir sunucu "Not Found" gönderir, bunun bir çevirisini değil — ve bir günlükte aradığınız bir ifade gerçekten gönderilen baytlarla eşleşmesi gerekir.

Gerçek sorun oluşturan ayrımlar sınıflar arasında değil sınıf içindedir: 401 vs 403, 301 vs 308 ve 502 vs 503 her biri sonra ne yapılacağı hakkında farklı bir soruya cevap verir ve her biri rutinli olarak diğeri için kullanılır.

1xx — Bilgi

3

Geçici: yanıt son değildir ve başka biri takip eder.

KodNeden ifadesiNe anlama gelir
100ContinueBaşlıklar alındı, gövde göndermeye devam edin.
101Switching ProtocolsProtokolleri değiştirme — WebSocket el sıkışması.
103Early HintsErken ipuçları: gerçek yanıt hazırlanırken bu kaynakları önyükleyin.

2xx — Başarı

5

İstek alındı, anlaşıldı ve kabul edildi.

KodNeden ifadesiNe anlama gelir
200OKBaşarı, gövdeli.
201CreatedOluşturuldu.Yeni kaynağa işaret eden bir Konum başlığı taşımalıdır.
202Acceptedİşleme için kabul edildi, henüz olmadı.
204No ContentBaşarı ve kasıtlı olarak gövde yok.DELETE'ye doğru yanıt veya döndürecek bir şey olmadan kaydetme.
206Partial ContentKalıcı olarak taşındı. Bağlantılarınızı güncelleyin; önbellekler bunu sonsuza kadar tutabilir.

3xx — Yönlendirme

6

Kaynak başka yerdedir, ya da önbelleğe alınmış kopyanız hala iyidir.

KodNeden ifadesiNe anlama gelir
301Moved PermanentlyKalıcı olarak taşındı. Bağlantılarınızı güncelleyin; önbellekler bunu sonsuza dek tutabilir.
302FoundBulundu — geçici yönlendirme.Geniş bir şekilde GET'e yöntemi değiştirme olarak uygulanmış olup, 307 bunu düzeltir.
303See OtherBaşka bakın: GET ile sonucu getiriniz. Bir form POST'tan sonra yönlendirme.
304Not ModifiedDeğiştirilmedi — önbelleğe alınmış kopyanız güncel. Gövde olmadan gönderilen.
307Temporary RedirectGeçici yönlendirme, yöntem ve gövde korunmuş.
308Permanent RedirectKalıcı yönlendirme, yöntem ve gövde korunmuş.

4xx — İstemci hatası

14

İstek sorundur. Değişmeden yineleme tekrar başarısız olur.

KodNeden ifadesiNe anlama gelir
400Bad RequestSunucu isteği hiç ayrıştıramadı.
401UnauthorizedKimliği doğrulanmamış — sunucu kim olduğunuzu bilmiyor.Unauthorized adlandırılmış, ancak kimliği doğrulanmamış anlamına gelir. WWW-Authenticate içermeli.
403ForbiddenKimliği doğrulanmış ve hala izin verilmedi. Daha iyi kimlik bilgileri yardımcı olmayacaktır.
404Not FoundBöyle bir kaynak yok ve sunucu orada hiç olup olmadığını söylemeyecektir.
405Method Not AllowedBu URL için yanlış yöntem.Çalışanları bir İzin Ver başlığında listelemeli.
406Not AcceptableHiçbir şey Kabul başlığınız alacak bir biçimde yok.
409ConflictGeçerli durumla çakışır — güncel olmayan bir sürüme karşı bir düzenleme.
410GoneGitmiş: var oldu ve kasıtlı olarak kaldırıldı. 404'ten daha güçlü.
413Content Too LargeGövde sunucunun kabul ettiğinden daha büyüktür.
415Unsupported Media TypeSunucu bu Content-Type'ı işlemez.
418I'm a teapotBen bir çaydanlığım. 1998 Nisan Aptalları şakası, kalıcı olarak ayrılmış.
422Unprocessable ContentDoğru ayrıştırılmış, içerik geçersiz — eksik alan, kötü değer.
429Too Many RequestsOran sınırlı.Yeniden denemeden önce Retry-After bulun ve üstel olarak geri çekilin.
451Unavailable For Legal ReasonsYasal nedenler için engellendi. Sayı Fahrenheit 451'e bir işarettir.

5xx — Sunucu hatası

6

İstek iyiye varolabilir. Bunlar yeniden denemeye değenleridir.

KodNeden ifadesiNe anlama gelir
500Internal Server ErrorSunucuda işlenmemiş bir hata. Tarafınızda düzeltecek bir şey yok.
501Not ImplementedSunucu bu yöntemi hiç uygulamaz.
502Bad GatewayBir vekil yukarı akış sunucusuna ulaştı ve kullanılamaz bir şey geri aldı.
503Service UnavailableKasıtlı olarak hizmet vermiyor — aşırı yüklü veya bakım yapılıyor.Retry-After taşıması gereken durum.
504Gateway TimeoutBir vekil yukarı akış sunucusu için beklemekten vazgeçti.
505HTTP Version Not Supportedİstekteki HTTP sürümü desteklenmez.

FAQ

401 ile 403 arasındaki fark nedir?
401 Unauthorized istek kimliği doğrulanmadığı anlamına gelir — sunucu kim olduğunuzu bilmez ve doğru bir 401 bunu kanıtlamak için nasıl yapılacağını söyleyen bir WWW-Authenticate başlığı içerir. 403 Forbidden tam olarak kim olduğunuzu bilip yine de sahip olmayabileceğiniz anlamına gelir. Aynı kimlik için daha iyi kimlik bilgileriyle 403'ü yeniden denemek yardımcı olmayacaktır.
Yönlendirme için 301 veya 308'i kullanmalı mıyım?
308 yöntem önemsiyorsa. Tarihsel olarak 301 ve 302 yaygın olarak "yönlendir ve GET'e geç" olarak uygulanmıştır, bu sessizce bir POST'u GET'e dönüştürür. 307 ve 308, yöntem ve gövdenin korunduğunu vaat etmek için tanıtıldı. Yalnızca getirilen bir sayfanın kalıcı bir hareketinde, 301 en iyi anlaşılan seçim kalır.
422 ne anlama gelir ki 400 yoktur?
400 Bad Request sunucunun isteği hiç anlayamadığı anlamına gelir — hatalı JSON, kırık başlık. 422 Unprocessable Content yine de ayrıştırıldığı anlamına gelir ve içerik yine de yanlış olup: doğru biçimlenmiş gövde eksik zorunlu alan veya geçmiş bir tarihle. Bölünme yararlıdır çünkü istemcinin düzeltmesi her durumda farklıdır.
418 gerçek bir durum kodudur mu?
Kayıtlı olması bakımından gerçektir ve her HTTP kütüphanesi bunu bilir ve 1998 Nisan Aptalları Hyper Text Coffee Pot Kontrol Protokolü'nden gelmesi bakımından bir şakadır. Sayıyı pratik kullanım için talep etme girişimleri reddedildi, bu nedenle çaydanlık için kalıcı olarak ayrılmıştır.
503, 502'den neden farklıdır?
502 Bad Gateway, bir vekil yukarı akış sunucusuna ulaştığı ve kullanılamaz bir şey geri aldığı anlamına gelir. 503 Service Unavailable sunucunun kendisinin şu anda bilerek hizmet vermiyor olduğu anlamına gelir — aşırı yüklü veya bakım yapılıyor — ve Retry-After başlığını taşıyan biri olup, çünkü kurtarılması beklenen birdir.