HTTP durum kodları

HTTP yanıt durum kodlarının tam referansı: her kodun ne anlama geldiği, sunucuların onu ne zaman gönderdiği ve buna nasıl tepki verilmesi gerektiği — istekleri hata ayıklarken, API belgelerken ve sunucu günlüklerini incelerken kullanılır.

Yanıt sınıfları arasında gezinmek için hızlı bağlantıları kullanın veya en yaygın kodlar için ayrıntılı rehberleri açın.

HTTP yanıt kodu tablosu

Code Name Meaning
1xx Bilgilendirme
100 Continue Sunucu istek başlıklarını aldı ve istemci istek gövdesini göndermeli.
101 Switching Protocols Sunucu, Upgrade başlığında istenen protokole geçmeyi kabul ediyor.
102 Processing Sunucu tam isteği kabul etti ama henüz tamamlamadı (WebDAV).
103 Early Hints Nihai yanıttan önce gönderilen ön başlıklar, çoğunlukla Link önden yükleme (preload) ipuçları.
2xx Başarı
200 OK İstek başarılı oldu ve yanıt istenen temsili taşıyor.
201 Created İstek başarılı oldu ve yeni bir kaynak oluşturuldu, genellikle Location içinde adlandırılır.
202 Accepted İstek, henüz tamamlanmamış eşzamansız bir işlem için kabul edildi.
203 Non-Authoritative Information Yanıt, yol üzerinde dönüştürücü bir proxy tarafından değiştirildi.
204 No Content İstek başarılı oldu ve kasıtlı olarak yanıt gövdesi yok.
205 Sıfırla Content İstek başarılı oldu ve istemci belge görünümünü veya formu sıfırlamalı.
206 Partial Content Yanıt, Range başlığıyla istenen yalnızca bayt aralığını sunar.
3xx Yönlendirme
300 Multiple Choices Birden fazla temsil var ve istemci bunlardan birini seçmeli.
301 Moved Permanently Kaynağın kalıcı yeni bir URL'si var ve bağlantılar güncellenmeli.
302 Found Kaynak geçici olarak farklı bir URL'de yaşıyor; orijinali kullanmaya devam edin.
303 See Other Sonuç başka bir URL'de mevcut ve GET ile alınmalı.
304 Not Modified Önbelleğe alınmış kopya hâlâ geçerli, bu yüzden gövde tekrar gönderilmiyor.
307 Temporary Redirect Orijinal HTTP yöntemini ve gövdesini korumak zorunda olan geçici yönlendirme.
308 Permanent Redirect Orijinal HTTP yöntemini ve gövdesini korumak zorunda olan kalıcı yönlendirme.
4xx İstemci Hataları
400 Bad Request Sunucu, hatalı biçimlendirildiği için isteği işleyemiyor.
401 Unauthorized Geçerli kimlik doğrulama bilgileri gerekli ama eksik veya yanlış.
402 Payment Required Rezerve edilmiş durum kodu, pratikte bazı API'ler tarafından faturalandırma limitleri için kullanılıyor.
403 Forbidden Sunucu isteği anladı ama yetkilendirmeyi reddediyor.
404 Not Found İstenen URL'de hiçbir kaynak yok.
405 Method Not Allowed URL var ama bu HTTP yöntemini desteklemiyor.
406 Not Acceptable Hiçbir temsil, Accept müzakere başlıklarıyla eşleşmiyor.
407 Proxy Authentication Required İstemci önce proxy ile kimlik doğrulaması yapmalı.
408 Request Timeout Sunucu, istek çok uzun sürdüğü için bağlantıyı kapattı.
409 Conflict İstek, kaynağın mevcut durumuyla çelişiyor, örn. bir düzenleme çakışması.
410 Gone Kaynak kasıtlı olarak kaldırıldı ve geri dönmeyecek.
411 Length Required İstek bir Content-Length başlığı içermeli.
412 Precondition Failed If-Match gibi koşullu bir başlık yanlış olarak değerlendirildi.
413 Content Too Large İstek gövdesi, sunucunun kabul ettiği boyutu aşıyor.
414 URI Too Long İstek URL'si, sunucunun ayrıştıracağından daha uzun.
415 Unsupported Media Type İstek gövdesi biçimi bu kaynak için desteklenmiyor.
416 Range Not Satisfiable İstenen bayt aralığı, kaynak boyutunun dışında.
417 Expectation Failed Expect istek başlığı karşılanamadı.
418 I'm a teapot RFC 2324'ten gelen bir 1 Nisan şakası durumu; bazı API'ler bunu bir kolay yumurta (easter egg) olarak kullanıyor.
421 Misdirected Request İstek, bu yetki (authority) için bir yanıt üretemeyen bir sunucuya ulaştı.
422 Unprocessable Content İstek biçimsel olarak doğru ama anlamsal olarak geçersiz; REST doğrulamasında yaygındır.
425 Too Early Sunucu, tekrar oynatılabilecek bir isteği işlemeyi reddediyor (TLS erken veri).
426 Upgrade Required İstemci, Upgrade içinde listelenen farklı bir protokole geçmeli.
428 Precondition Required Sunucu, kayıp güncellemeleri önlemek için koşullu bir istek gerektiriyor.
429 Too Many Requests İstemci bir hız sınırını aştı; Retry-After ne zaman tekrar denenmesi gerektiğine dair ipucu verir.
431 Request Header Fields Too Large Başlıklar, genellikle çerezler, sunucunun boyut sınırlarını aşıyor.
451 Unavailable For Legal Reasons Mahkeme kararları gibi yasal nedenlerle erişim engellendi.
5xx Sunucu Hataları
500 Internal Server Error Sunucu, isteği işlerken beklenmedik bir hatayla karşılaştı.
501 Not Implemented Sunucu istek yöntemini tanımıyor veya desteklemiyor.
502 Bad Gateway Bir ağ geçidi veya proxy, üst akış sunucusundan geçersiz bir yanıt aldı.
503 Service Unavailable Sunucu, aşırı yük veya bakım nedeniyle geçici olarak hizmet veremiyor.
504 Gateway Timeout Bir ağ geçidi veya proxy, üst akış sunucusunu beklemekten vazgeçti.
505 HTTP Version Not Supported Sunucu, kullanılan HTTP protokol sürümünü desteklemiyor.
506 Variant Also Negotiates Sunucuda bir içerik müzakeresi yanlış yapılandırması.
507 Insufficient Storage Sunucu, isteği tamamlamak için gereken depolamayı sağlayamıyor (WebDAV).
508 Loop Detected Sunucu, işlem sırasında sonsuz bir döngü tespit etti (WebDAV).
510 Not Extended İstek, sağlanmamış ek uzantılara ihtiyaç duyuyor.
511 Network Authentication Required Ağ (örn. bir captive portal) önce kimlik doğrulaması gerektiriyor.

1xx Bilgilendirme

Bilgilendirme yanıtları, isteğin alındığını ve istemcinin devam edebileceğini onaylar. Bunlar geçicidir: her zaman nihai bir durum kodu bunu takip eder. Pratikte gerçekten karşılaşacağınız kod 103 Early Hints'tir; bu, sunucuların tam yanıt hazır olmadan önce önden yükleme (preload) ipuçları göndermesini sağlar.

2xx Başarı

Başarı yanıtları, isteğin anlaşıldığı ve kabul edildiği anlamına gelir. 200 OK sonucu gövdede taşır, 201 Created yeni bir kaynağın oluşturulduğunu bildirir ve 204 No Content başarıyı bilinçli olarak hiçbir şey döndürmeden onaylar.

3xx Yönlendirme

Yönlendirme yanıtları istemciyi başka bir yere işaret eder. Buradaki temel ayrım kalıcılıktır — 301/308 kalıcıdır, 302/307 geçicidir — ve HTTP yönteminin korunması gerekip gerekmediğidir (307/308) ya da GET'e dönüşebilir (301/302). 304 Not Modified, tarayıcı önbelleklemesini mümkün kılan özel durumdur.

4xx İstemci Hataları

İstemci hataları, isteğin kendisinin reddedildiği anlamına gelir. Günlük hayatta sık görülenler: 400 hatalı biçimlendirilmiş istek, 401 kimlik doğrulama gerekli, 403 erişim reddedildi, 404 bu URL'de hiçbir şey yok ve 429 hız sınırı aşıldı.

5xx Sunucu Hataları

Sunucu hataları, tamamen geçerli olabilecek bir istekte sunucunun başarısız olduğu anlamına gelir. 500 bir uygulama çökmesidir, 502 ve 504 proxy'lerin bozuk veya sessiz bir üst akış (upstream) sunucuyu bildirmesidir ve 503 kasıtlı, geçici bir kullanılamama durumudur.

Bir durum kodu nasıl okunur

İlk rakam sınıfı belirtir: 1xx bilgilendirme, 2xx başarı, 3xx yönlendirme, 4xx istemci hatası, 5xx sunucu hatası. Bilinmeyen bir kodla karşılaşan bir istemci, güvenle bunu kendi sınıfının x00 koduymuş gibi ele alabilir — yeni kodların geriye dönük uyumlu kalmasını sağlayan mekanizma budur. Hata ayıklarken her zaman koda eşlik eden yanıt başlıklarına bakın: Location yönlendirmeleri açıklar, Allow 405'i açıklar, Retry-After 429 ve 503'ü açıklar.

Örnekler

200 OK                    — page served normally
301 Moved Permanently     — URL changed for good, follow Location
304 Not Modified          — your cached copy is still valid
404 Not Found             — nothing exists at this URL
429 Too Many Requests     — rate limit hit, wait Retry-After seconds
503 Service Unavailable   — temporary downtime or maintenance

SSS

HTTP 404 nedir?

HTTP 404, istenen kaynağın belirtilen URL'de bulunamadığı anlamına gelir. Nedenler, çözümler ve SEO etkisi için ayrıntılı 404 rehberine bakın.

301 ile 302 arasındaki fark nedir?

Bir 301 yönlendirmesi kalıcıdır — bağlantılar ve arama motorları yeni URL'ye güncellenmelidir. Bir 302 ise orijinal URL'nin kanonik kalmaya devam ettiği geçici bir taşınmayı işaret eder.

503 ne anlama gelir?

HTTP 503, genellikle bakım veya aşırı yük nedeniyle hizmetin geçici olarak kullanılamadığı ve istemcinin bir gecikmenin ardından yeniden denemesi gerektiği anlamına gelir.

401 ile 403 arasındaki fark nedir?

401, sunucunun geçerli kimlik doğrulama bilgilerine ihtiyaç duyduğu anlamına gelir. 403 ise kim olduğunuzu bildiği hâlde erişimi yine de reddettiği anlamına gelir — yeniden giriş yapmak işe yaramaz.

502 ile 504 arasındaki fark nedir?

Her ikisi de bir üst akış sunucusuyla konuşan bir proxy'den gelir: 502, üst akışın geçersiz bir yanıt gönderdiği; 504 ise zaman aşımı süresi içinde hiç yanıt vermediği anlamına gelir.

Hangi durum kodları SEO için en önemlisi?

200 dizinlenebilir sayfaları işaretler, 301/308 kalıcı taşımalarda sıralama sinyallerini aktarır, 404/410 ölü URL'leri kaldırır ve 503, Retry-After ile sunulduğunda kesinti sırasında sıralamaları korur.