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.