HTTP durum kodları
Tamamen tarayıcınızda çalışır. Dosyalarınız ve verileriniz cihazınızdan hiç çıkmaz.
| 1xxBilgilendirme | ||
|---|---|---|
| 100 | Continue | İsteğin ilk kısmı alındı ve istemci devam etmeli. |
| 101 | Switching Protocols | Sunucu, istemcinin isteği üzerine protokol değiştirmeyi kabul ediyor. |
| 102 | Processing | Sunucu isteği aldı ve işliyor, ancak henüz bir yanıt yok. |
| 103 | Early Hints | Son HTTP mesajından önce bazı yanıt başlıklarını göndermek için kullanılır. |
| 2xxBaşarılı | ||
| 200 | OK | İstek başarılı oldu. |
| 201 | Created | İstek başarılı oldu ve sonucunda yeni bir kaynak oluşturuldu. |
| 202 | Accepted | İstek alındı ancak henüz işleme konmadı. |
| 203 | Non-Authoritative Information | Döndürülen meta veriler, kaynak sunucudakilerle tam olarak aynı değil. |
| 204 | No Content | Sunucu isteği yerine getirdi ancak geri gönderecek içerik yok. |
| 205 | Reset Content | Sunucu, istemciden bu isteği gönderen belgeyi sıfırlamasını istiyor. |
| 206 | Partial Content | İstemcinin gönderdiği Range başlığı nedeniyle sunucu kaynağın yalnızca bir kısmını gönderiyor. |
| 207 | Multi-Status | Birden fazla durum kodunun uygun olabileceği durumlarda birden çok kaynak hakkında bilgi taşır. |
| 208 | Already Reported | Birden çok bağlamanın üyelerini tekrar tekrar listelememek için bir DAV yanıtının içinde kullanılır. |
| 226 | IM Used | Sunucu kaynak için gelen isteği yerine getirdi; yanıt, örnek üzerinde yapılan işlemlerin sonucunu temsil ediyor. |
| 3xxYönlendirme | ||
| 300 | Multiple Choices | İsteğin birden fazla olası yanıtı var ve istemci bunlardan birini seçmeli. |
| 301 | Moved Permanently | Kaynak kalıcı olarak yeni bir URL'ye taşındı. |
| 302 | Found | Kaynak geçici olarak farklı bir URL'de bulunuyor. |
| 303 | See Other | Yanıt farklı bir URL'de bulunuyor ve GET ile alınmalı. |
| 304 | Not Modified | Kaynak, istek başlıklarında belirtilen sürümden bu yana değişmedi. |
| 305 | Use Proxy | İstenen kaynağa, location alanında belirtilen proxy üzerinden erişilmeli. |
| 307 | Temporary Redirect | Kaynak geçici olarak farklı bir URL'de bulunuyor ve istek yöntemi değişmemeli. |
| 308 | Permanent Redirect | Kaynak kalıcı olarak taşındı ve istek yöntemi değişmemeli. |
| 4xxİstemci hatası | ||
| 400 | Bad Request | Sunucu, istemci tarafındaki bir hata nedeniyle isteği işleyemiyor. |
| 401 | Unauthorized | İstenen yanıtı almak için istemcinin kimliğini doğrulaması gerekiyor. |
| 402 | Payment Required | İleride kullanılmak üzere ayrılmıştır; aslen dijital ödeme sistemleri için düşünülmüştü. |
| 403 | Forbidden | İstemcinin bu içeriğe erişim yetkisi yok. |
| 404 | Not Found | Sunucu istenen kaynağı bulamıyor. |
| 405 | Method Not Allowed | Sunucu istek yöntemini tanıyor ancak hedef kaynak bu yöntemi desteklemiyor. |
| 406 | Not Acceptable | Sunucu, kabul edilebilir değerler listesine uyan bir yanıt üretemiyor. |
| 407 | Proxy Authentication Required | İstemcinin önce proxy'de kimliğini doğrulaması gerekiyor. |
| 408 | Request Timeout | Sunucu isteği beklerken zaman aşımına uğradı. |
| 409 | Conflict | İstek, hedef kaynağın mevcut durumuyla çakışıyor. |
| 410 | Gone | İstenen içerik sunucudan kalıcı olarak silindi ve geri gelmeyecek. |
| 411 | Length Required | Sunucu, tanımlı bir Content-Length başlığı olmayan isteği kabul etmiyor. |
| 412 | Precondition Failed | İstek başlıklarındaki koşullardan biri karşılanmadı. |
| 413 | Payload Too Large | İstek gövdesi, sunucunun belirlediği sınırlardan büyük. |
| 414 | URI Too Long | İstemcinin istediği URI, sunucunun yorumlamayı kabul ettiği uzunluktan daha uzun. |
| 415 | Unsupported Media Type | İstenen verinin medya biçimi sunucu tarafından desteklenmiyor. |
| 416 | Range Not Satisfiable | Range başlığında belirtilen aralık karşılanamıyor. |
| 417 | Expectation Failed | Expect istek başlığındaki beklenti karşılanamadı. |
| 418 | I'm a Teapot | Sunucu kahve demlemeyi reddediyor, çünkü o kalıcı olarak bir çaydanlık. |
| 419 | Page ExpiredResmî olmayan | Standart dışı. Laravel, bir formla gönderilen CSRF belirteci oturumla eşleşmediğinde bunu döndürür. En yaygın nedeni, sayfa açıkken oturum süresinin dolmasıdır. |
| 420 | Enhance Your CalmResmî olmayan | Standart dışı. Twitter'ın eski Search ve Trends API'si, istek sınırına takılan istemcilere bunu gönderirdi; bu durumun standart kodu 429'dur. Spring Framework de 420'yi Method Failure olarak tanımlamıştı, bu tanım artık kullanımdan kalktı. |
| 421 | Misdirected Request | İstek, yanıt üretemeyen bir sunucuya yönlendirildi. |
| 422 | Unprocessable Content | İsteğin sözdizimi doğruydu ancak anlamsal hatalar nedeniyle işlenemedi. |
| 423 | Locked | Erişilmeye çalışılan kaynak kilitli. |
| 424 | Failed Dependency | İstek, bağlı olduğu başka bir istek başarısız olduğu için başarısız oldu. |
| 425 | Too Early | Sunucu, yeniden gönderilebilecek bir isteği işleme riskini almak istemiyor. |
| 426 | Upgrade Required | Sunucu, isteği mevcut protokolle yerine getirmeyi reddediyor. |
| 428 | Precondition Required | Kaynak sunucu, isteğin koşullu olmasını şart koşuyor. |
| 429 | Too Many Requests | İstemci belirli bir süre içinde çok fazla istek gönderdi. |
| 431 | Request Header Fields Too Large | Sunucu, başlık alanları çok büyük olduğu için isteği işlemeyi reddediyor. |
| 444 | No ResponseResmî olmayan | Standart dışı. Hiçbir yanıt göndermeden bağlantıyı kapatan bir nginx kodu. Tarayıcıda hiç görünmez, yalnızca sunucu günlüklerinde yer alır. |
| 451 | Unavailable For Legal Reasons | İstenen kaynak, erişimin engellenmesini isteyen yasal bir talep nedeniyle kullanılamıyor. |
| 499 | Client Closed RequestResmî olmayan | Standart dışı. İstemci, sunucu yanıtını bitirmeden bağlantıyı kapattığında nginx bunu günlüğe yazar. |
| 5xxSunucu hatası | ||
| 500 | Internal Server Error | Sunucu, nasıl ele alacağını bilmediği bir durumla karşılaştı. |
| 501 | Not Implemented | İstek yöntemi sunucu tarafından desteklenmiyor ve işlenemiyor. |
| 502 | Bad Gateway | Ağ geçidi olarak çalışan sunucu, üst sunucudan geçersiz bir yanıt aldı. |
| 503 | Service Unavailable | Sunucu isteği işlemeye hazır değil. Bunun nedeni çoğunlukla bakım ya da aşırı yüktür. |
| 504 | Gateway Timeout | Ağ geçidi olarak çalışan sunucu zamanında yanıt alamadı. |
| 505 | HTTP Version Not Supported | İstekte kullanılan HTTP sürümü sunucu tarafından desteklenmiyor. |
| 506 | Variant Also Negotiates | Sunucuda, şeffaf içerik anlaşmasıyla ilgili dahili bir yapılandırma hatası var. |
| 507 | Insufficient Storage | Sunucu, isteği tamamlamak için gereken temsili depolayamıyor. |
| 508 | Loop Detected | Sunucu, isteği işlerken sonsuz bir döngü tespit etti. |
| 510 | Not Extended | Sunucunun isteği yerine getirebilmesi için isteğe ek uzantılar gerekiyor. |
| 511 | Network Authentication Required | Ağa erişebilmek için istemcinin kimliğini doğrulaması gerekiyor. |
| 599 | Network Connect Timeout ErrorResmî olmayan | Bazı proxy'lerin, proxy'nin arkasındaki ağ bağlantısında zaman aşımı olduğunu bildirmek için kullandığı standart dışı bir kod. |
Bu araç hakkında
Bu, 100 ile 599 arasındaki HTTP durum kodlarının başvuru listesi. RFC 9110’da tanımlanan beş sınıfı kapsıyor: bilgilendirme, başarı, yönlendirme, istemci hatası ve sunucu hatası. Her kod adıyla ve kısa bir açıklamayla listelenir, arama kutusu ise siz yazarken listeyi filtreler; kod numarası, ad ve açıklama metnine bakarak eşleşme bulur.
Listede neler var?
RFC 9110 altında kayıtlı tüm kodların yanında, hiçbir zaman resmi spesifikasyona girmemiş ama gerçek API’lerde sürekli karşınıza çıkan birkaç yaygın kod da var: 418 (RFC 2324’teki “ben bir çaydanlığım” şakası), 429 (istek sınırı aşıldı) ve 451 (yasal nedenlerle erişilemiyor). “404” ya da “gateway” gibi bir şey yazdığınızda yalnızca eşleşen satırlar görünür kalır, geri kalanı gizlenir; yani aradığınız kodu bulmak için beş sınıfı baştan sona kaydırmanıza gerek kalmaz. Her satırın kendi bağlantısı da var, sayfa adresinin sonuna #419 eklemek sizi doğrudan o koda götürür.
HTTP 419 ve 420 gibi resmi olmayan kodlar ne anlama gelir?
Bazı kodlar bir RFC’den değil, tek bir framework ya da sunucudan gelir; liste bunları “Resmi değil” rozetiyle işaretler. HTTP 419 hatası, Page Expired, Laravel’e ait. Framework, formla birlikte gönderilen CSRF belirteci oturumla eşleşmediğinde bunu döndürür; genelde sayfa açık dururken oturum süresi dolduğu için olur. HTTP 420, Enhance Your Calm, Twitter’ın eski Search ve Trends API’sinin çok istek gönderen istemcilere verdiği yanıttı. Bunun standart karşılığı 429’dur. Spring Framework de 420’yi Method Failure için kullanmıştı, bu kullanım artık kalktı. İki nginx kodu da listeye giriyor: 444 hiçbir yanıt göndermeden bağlantıyı kapatır, 499 ise istemcinin sunucu yanıtı bitirmeden bağlantıyı kestiğini gösterir. Bu ikisini tarayıcıda değil sunucu günlüklerinde görürsünüz. Sonuncusu 599, bazı proxy’lerin ağ bağlantısı zaman aşımı için kullandığı kod.
HTTP durum kodları listesi internet bağlantısı gerektirir mi?
Hayır. Liste sayfaya doğrudan gömülmüş statik veri; sayfayı yüklerken de ararken de sunucudan hiçbir şey çekilmez. Bu yüzden arama da anında sonuç verir.
Bu aracı ne zaman kullanırım?
Bir API yanıtını hata ayıklarken 422’nin 400 ile aynı şey olup olmadığını hatırlayamadığınızda, ya da bir yönlendirmenin 301, 302 yoksa 308 mi dönmesi gerektiğine karar verirken aradaki farkı hatırlamak için işinize yarar. Ezbere bilmediğiniz daha nadir kodları da kapsar: 409 (çakışma), 416 (aralık karşılanamıyor), ya da 502 (geçersiz ağ geçidi) ile 503 (hizmet kullanılamıyor) arasındaki fark gibi. Her kodla ilgili daha fazla ayrıntı için MDN’nin HTTP durum kodu referansına bakabilirsiniz.
Beş sınıf, tam sayıya bakmadan önce bile size bir yanıt hakkında hızlı bir fikir verir. 2 ile başlayan bir kod isteğin başarılı olduğunu, 3 bir yönlendirmeyi takip etmeniz gerektiğini, 4 isteğin kendisinde bir sorun olduğunu, 5 ise sorunun sunucudan kaynaklandığını gösterir. Sunucuların, tarayıcıların ve API istemcilerinin sık sık sadece ilk rakama bakarak dallanmasının nedeni de bu. Bunu faydalı bulmak için geliştirici olmanıza da gerek yok, birçok sıradan hata sayfası sadece çıplak bir sayı basar, bu liste ise o sayıyı anlaşılır bir cümleye çevirir.