Dökümanlar
HTTP Durum Kodlari

HTTP Durum Kodları

İnternet dünyasında, her gün milyarlarca web sayfası ve veri akışı dolaşıyor. Bu veri akışının düzenli ve güvenilir bir şekilde işlemesi için HTTP (Hypertext Transfer Protocol) kullanılır. HTTP, sunucular ve istemciler arasındaki iletişimi düzenleyen temel bir protokoldür. Ancak bu iletişimin başarılı olup olmadığını anlamak ve hataları tanımlamak için HTTP durum kodlarına ihtiyaç vardır.

HTTP Nedir?

HTTP, web tarayıcıları ve web sunucuları arasında bilgi alışverişini sağlayan bir protokoldür. Kullanıcılar bir web tarayıcısı aracılığıyla bir web sitesine eriştiğinde, tarayıcı web sunucusuna bir istek gönderir ve sunucu da isteği işler ve sonuçları geri gönderir. Ancak bu işlem her zaman sorunsuz olmayabilir. İşte bu noktada HTTP durum kodları devreye girer.

HTTP Durum Kodları Nedir?

HTTP durum kodları, bir isteğin sonucunu ve işlemin başarılı olup olmadığını tanımlayan üç haneli numaralardır. Bu kodlar, sunucu tarafından istemciye gönderilir ve istemciye işlem hakkında bilgi verir.

HTTP Durum Kodlarının Anlamları

HTTP durum kodları, işlem sonucunu belirlemenize yardımcı olur. İşte bazı örnekler:

  • 1xx (Informational - Bilgilendirme): İstemcinin isteğini devam ettirmesini veya diğer bilgileri beklemesini gerektiren durumlar için kullanılır.
  • 2xx (Successful - Başarılı): İstek başarılı bir şekilde işlendi ve sonuçlar istemciye geri döndü.
  • 3xx (Redirection - Yönlendirme): İstemciyi başka bir yere yönlendirmek için kullanılır.
  • 4xx (Client Error - İstemci Hatası): İstek istemci tarafından yanlış yapıldı veya kaynak bulunamadı.
  • 5xx (Server Error - Sunucu Hatası): Sunucu isteği işlerken bir hata oluştu.

Örnek Durum Kodları

KodMesajAçıklama
100Continue (Devam Et)İstemci, bir isteği gönderdi ve sunucu isteği kabul ediyor, ancak daha fazla bilgi bekliyor. Özellikle büyük veri yüklemeleri sırasında kullanışlıdır.
101Switching Protocols (Protokolleri Değiştir)Sunucu, iletişim protokolünü değiştiriyor ve istemciye yeni protokolü kullanması gerektiğini bildiriyor. Örneğin, WebSocket protokolüne geçişte kullanılır.
200OK (Başarılı)İstek başarılı bir şekilde işlendi ve sonuçlar istemciye geri döndü.
204No Content (İçerik Yok)İstek başarılı bir şekilde işlendi, ancak sunucu hiçbir içerik göndermiyor. Genellikle AJAX istekleri için kullanılır.
300Multiple Choices (Çoklu Seçenekler)İstekle ilgili birden fazla kaynak mevcut ve istemci birini seçmelidir. Genellikle kullanılmaz.
301Moved Permanently (Kalıcı Olarak Taşındı)Kaynak kalıcı olarak başka bir URL'ye taşındı. İstemcinin gelecekte bu yeni URL'yi kullanması beklenir.
302Found (Bulundu)Kaynak başka bir URL'de bulunuyor, ancak taşıma kalıcı değil. İstemcinin geçici olarak yeni URL'yi kullanması beklenir.
303See Other (Başka Yere Bakın)İstek başarılı bir şekilde işlendi ve sonucun bulunduğu farklı bir URL'ye gitmek için kullanılmalıdır.
304Not Modified (Değiştirilmedi)İstekle ilgili kaynak değiştirilmedi ve istemci önbellekteki veriyi kullanmalıdır.
307Temporary Redirect (Geçici Yönlendirme)Kaynak başka bir URL'de bulunuyor, ancak taşıma geçici. İstemci, yeni URL'yi kullanmalı, ancak oraya geçici olarak gitmelidir.
308Permanent Redirect (Kalıcı Yönlendirme)Kaynak kalıcı olarak başka bir URL'ye taşındı ve istemci bu yeni URL'yi kullanmalıdır. İstemci, gelecekte bu yeni URL'yi kullanmalıdır.
400Bad Request (Kötü İstek)Genel bir "kötü istek" hatasıdır ve istemci tarafından yanlış yapılmış bir isteği ifade eder.
401Unauthorized (Yetkilendirme Hatası)İstemcinin yetkilendirme eksikliği nedeniyle kaynağa erişim izni yok.
402Payment Required (Ödeme Gerekli)İsteğin başarılı bir şekilde işlenmesi için ödeme gerektiğini belirten bir kod. Ancak genellikle kullanılmaz.
403Forbidden (Yasaklanmış)İstemcinin kaynağa erişim izni yok ve sunucu erişimi reddediyor.
404Not Found (Bulunamadı)İstenen kaynak sunucuda bulunamadı.
405Method Not Allowed (İzin Verilmeyen Metot)İstek, sunucu tarafından desteklenmeyen bir HTTP metodu kullanılarak yapıldı.
406Not Acceptable (Kabul Edilemez)Sunucu, istemcinin kabul edilemeyen bir veri türü veya formatı talep ettiğini belirtir.
407Proxy Authentication Required (Proxy Yetkilendirme Gerekli)İstemcinin, bir proxy sunucusu üzerinden erişim sağlamak için kimlik doğrulaması gerekiyor.
408Request Timeout (İstek Zaman Aşımı)Sunucu, isteğin belirli bir süre içinde tamamlanmadığını belirtir.
409Conflict (Çakışma)İstek, mevcut kaynaklarla uyumsuz olduğu veya çakıştığı için başarısız oldu.
410Gone (Kaybolmuş)İstekle ilgili kaynak artık sunucuda bulunmuyor ve kalıcı olarak kullanılamaz.
411Length Required (Uzunluk Gerekli)Sunucu, isteğin bir içerik uzunluğu (Content-Length) belirtmediğini belirtir. İstek gövdesinin uzunluğunu belirtmeyi gerektiren bazı HTTP yöntemleri için kullanışlıdır.
412Precondition Failed (Ön Koşul Sağlanmadı)İstemci tarafından belirtilen ön koşullar veya gereksinimler karşılanmadı. Örneğin, bir GET isteği yaparken belirli bir etiketin belirtilmesi gerektiğinde kullanılabilir.
413Request Entity Too Large (İstek Varlığı Çok Büyük)İstemcinin gönderdiği istek gövdesi, sunucu tarafından desteklenen maksimum boyutu aştı.
414Request-URI Too Long (İstek-URI Çok Uzun)İstemci tarafından gönderilen URI (URL) çok uzun ve sunucu tarafından işlenemedi.
415Unsupported Media Type (Desteklenmeyen Medya Türü)İstemcinin gönderdiği medya türü veya formatı sunucu tarafından desteklenmiyor veya kabul edilmiyor.
416Requested Range Not Satisfiable (İstenen Aralık Karşılanamıyor)İstemci, bir içeriği belirli bir aralıkta (range) talep etti, ancak sunucu bu talebi karşılayamadı.
417Expectation Failed (Beklenti Başarısız Oldu)İstemci, "Expect" başlığı ile belirli bir beklenti belirtti, ancak sunucu bu beklentiyi karşılayamadı.
418I'm a teapot (Ben Bir Çaydanlık Gibiyim)Bu kod, şaka amaçlı kullanılan özel bir durum kodudur.
419Authentication Timeout (Kimlik Doğrulama Zaman Aşımı)İstemcinin kimlik doğrulaması için belirli bir süresi vardı ve bu süre dolmuş durumda.
420Enhance Your Calm (Sakinleştirin)Bu kod da şaka amaçlı kullanılır ve bazen "Rate Limit Exceeded" (Sıklık Sınırı Aşıldı) olarak kullanılır.
421Misdirected Request (Yanlış Yönlendirilmiş İstek)Sunucu, isteği doğru bir şekilde işleyemedi ve yanlış yönlendirildi.
422Unprocessable Entity (İşlenemeyen Varlık)Sunucu, istemcinin gönderdiği varlığı işleyemedi veya geçersizdi.
423Locked (Kilitli)İstemci, belirli bir kaynağı düzenlemeye çalışırken kaynak kilitliyse bu kod kullanılır.
424Failed Dependency (Bağımlılık Başarısız Oldu)İstemci, bir kaynağı talep etmek için belirli bir bağımlılığı yerine getirmedi.
425Too Early (Çok Erken)Sunucu, istemcinin daha erken bir işlem yapmaya çalıştığını belirtir.
426Upgrade Required (Yükseltme Gerekli)Sunucu, belirli bir protokol sürümünün güncellemesini veya yükseltilmesini gerektiriyor.
429Too Many Requests (Çok Fazla İstek)İstemci, belirli bir süre içinde izin verilen sıklıktan daha fazla istek gönderdi.
431Request Header Fields Too Large (İstek Başlık Alanları Çok Büyük)İstemcinin gönderdiği başlık alanları sunucu tarafından desteklenen maksimum boyutu aştı.
451Unavailable For Legal Reasons (Hukuki Nedenlerle Kullanılamıyor)İstemciye, hukuki nedenlerle kaynağa erişim verilmedi. Bu, sansür veya yasal kısıtlamaları ifade edebilir.
500Internal Server Error (Sunucu Hatası)Sunucu, isteği işlerken bir iç hata oluştu ve işlem tamamlanamadı.
501Not Implemented (Uygulanmadı)Sunucu, istemcinin talep ettiği işlemi henüz uygulamamıştır. İstemci tarafından kullanılan HTTP yöntemi veya işlem, sunucu tarafından desteklenmemektedir.
502Bad Gateway (Kötü Ağ Geçidi)Sunucu, başka bir sunucuya veya ağ geçidine erişmeye çalışırken bir hata aldı. Genellikle proxy sunucuları veya ağ geçitleri arasında oluşan hataları ifade eder.
503Service Unavailable (Hizmet Kullanılamıyor)Sunucu, belirli bir nedenle geçici olarak hizmet veremiyor. Genellikle bakım sırasında veya aşırı yüklenme durumunda kullanılır.
504Gateway Timeout (Ağ Geçidi Zaman Aşımı)Sunucu, bir başka sunucu veya ağ geçidi ile iletişim kurarken zaman aşımına uğradı. Bu, bir hizmetin diğerine erişiminde sorun olduğunu gösterir.
505HTTP Version Not Supported (Desteklenmeyen HTTP Sürümü)Sunucu, kullanılan HTTP sürümünü desteklemiyor veya tanımıyor. İstemci ve sunucu arasındaki uyumsuzluğu ifade eder.
506Variant Also Negotiates (Çeşitli de Görüşmeler)İstemci tarafından istenen içerik varyantı sunucu tarafından bulunamadı veya uygun değil.
507Insufficient Storage (Yetersiz Depolama)Sunucu, isteği işleyecek yeterli depolama alanına sahip değil.
508Loop Detected (Döngü Algılandı)Sunucu, bir döngüde istekleri işlemeye çalışırken bir döngü algıladı. Bu, bir döngüde sonsuz dönüşleri önlemek için kullanılır.
509Bandwidth Limit Exceeded (Bant Genişliği Sınırı Aşıldı)Sunucu, belirli bir bant genişliği sınırını aştı ve daha fazla veri transferine izin veremiyor.
510Not Extended (Uzatılmadı)Sunucu, isteği işlerken gerekli olan bir uzantı (extension) eksik veya kullanılamaz. Bu durum, sunucunun belirli bir uzantıyı tanımadığını veya desteklemediğini gösterir.
511Network Authentication Required (Ağ Kimlik Doğrulaması Gerekli)İstemcinin, ağa erişim için kimlik doğrulaması yapması gerekiyor. Genellikle özellikle açık bir ağa bağlanmak için kullanılır.
512Message Too Long (Mesaj Çok Uzun)Sunucu, gelen mesajın boyutu maksimum sınırı aştı ve işlenemedi.
513Requested Range Not Satisfiable (İstenen Aralık Karşılanamıyor)İstemci, bir içeriği belirli bir aralıkta (range) talep etti, ancak sunucu bu talebi karşılayamadı.
514Parameter Not Found (Parametre Bulunamadı)Sunucu, istemci tarafından talep edilen parametreyi bulamadı veya eksikti.
515Authentication Timeout (Kimlik Doğrulama Zaman Aşımı)İstemcinin kimlik doğrulaması için belirli bir süresi vardı ve bu süre dolmuş durumda.
517Unrecoverable Error (Kurtarılamaz Hata)Sunucu, isteği işlerken bir kurtarılamaz hatayla karşılaştı. İstemcinin bu hatayı düzeltebileceği bir yol yoktur.
518Request Timeout (İstek Zaman Aşımı)İstemci, sunucudan belirli bir süre içinde yanıt alamadı. Bu durum, bağlantıda veya sunucuda zaman aşımı yaşandığını gösterir.
519Authentication Required (Kimlik Doğrulama Gerekli)İstemcinin, kaynağa erişim için kimlik doğrulaması gerekiyor.
520Unknown Error (Bilinmeyen Hata)Sunucu, belirli bir hata kodunu tanımlayamıyor veya hata kodunun spesifik bir açıklaması yok.
521Web Server Is Down (Web Sunucusu Kapalı)Sunucu, belirli bir nedenle çevrimdışı veya kapalı durumda. İstemci, sunucunun yeniden çevrimiçi olmasını beklemelidir.
522Connection Timed Out (Bağlantı Zaman Aşımı)Sunucu ile istemci arasındaki bağlantı zaman aşımına uğradı. İstemci, tekrar denemeden önce bağlantının düzgün bir şekilde kurulduğundan emin olmalıdır.
523Origin Is Unreachable (Köken Ulaşılamıyor)Sunucu, istenen kaynağa erişmeye çalışırken köken sunucuya ulaşılamadı. Bu, kaynağın erişilemez olduğunu gösterir.
524A Timeout Occurred (Zaman Aşımı Oluştu)İstemci veya sunucu, belirli bir işlemi tamamlamak için belirli bir süre içinde zaman aşımına uğradı.
525SSL Handshake Failed (SSL El Sıkışma Başarısız Oldu)SSL el sıkışma işlemi başarısız oldu ve güvenli iletişim kurulamadı.
526Invalid SSL Certificate (Geçersiz SSL Sertifikası)Sunucu tarafından sunulan SSL sertifikası geçersiz veya kabul edilemez.

HTTP durum kodları, web trafiğini yönlendirmek ve hataları anlamak için önemli bir araçtır. İstemciler bu kodları kullanarak isteklerini nasıl yönlendireceklerini ve yanıtları nasıl işleyeceklerini belirlerler. Sunucular da istemcilere hangi yanıtları göndereceklerini bu kodlar aracılığıyla belirlerler. Bu nedenle, HTTP durum kodlarını anlamak, web geliştirme ve iletişim açısından önemlidir.