HTTP Durum Kodları: En Kapsamlı Rehber

HTTP durum kodları, bir web sayfasına sunucudan giden bir kısa not gibidir. Bu aslında, web sayfasının bir parçası değildir. Sayfayı görüntüleme isteği alındığında işlerin nasıl gittiğini bildiren ve sunucu tarafında yer alan bir mesajdır.

Bu tür mesajlar, tarayıcınız sunucu ile her etkileşime girdiğinde bir cevap gönderir. Bunları çok sık görmezsiniz ama gönderilen her mesaja bir cevap vardır. Bir site sahibiyseniz veya HTTP durum kodlarını anlayan bir geliştirici olmanız durumunda bunlar kritik öneme sahip olurlar. Çünkü HTTP durum kodları web sitesi yapılandırma hatalarını teşhis etmek ve düzeltmek için son derece kullanışlıdır.

Bu yazıda, en yaygın sunucu durum ve hata kodları vardır. Sahne arkasında yer alan sunucuda neler olup bittiğiyle ilgili bilgi sahibi olmak istiyorsanız okumaya devam edebilirsiniz.

HTTP Durum Kodları Nedir?

Bir linke her tıkladığınızda veya bir URL yazıp "Enter" tuşuna bastığınızda, tarayıcınız bir web sunucusuna istek gönderir. Web sunucusu isteği alır ve işler. Ardından istenen kaynakları bir HTTP başlığı ile birlikte geri gönderir.

HTTP durum kodları tarayıcınıza HTTP başlığında gönderilir. Durum kodları her seferinde tarayıcınız bir web sayfası veya kaynak istediğinde geri gönderilirken çoğu zaman işlemler olumlu olduğundan onları göremezsiniz.

Bir şeyler ters gittiği zaman tarayıcınızda görüntülenen bir HTTP koduyla karşılaşırsınız. Bu sunucunun şu mesajı ilettiği anlamına gelir: "Bir şeyler doğru değil. Neyin yanlış gittiğini bu koddan öğrenebilirsiniz."

Tarayıcınızın normalde göstermediği durum kodlarını görmek istiyorsanız bunu kolaylaştıran çeşitli araçlardan yararlanabilirsiniz. Tarayıcı uzantıları, Chrome ve Firefox gibi geliştirici dostu tarayıcılarda kullanılabilir araçlardır. Web Sniffer gibi araçları kullanarak web tabanlı başlıkları her zaman kontrol edebilirsiniz.

HTTP durum kodunu bu araçlardan biriyle görmek için raporun en üstünde yazan "Status: HTTP/1.1" yazan ve ardından sunucu tarafından döndürülen durum kodunu gösteren satırı bulmalısınız.

Sınıflar - HTTP Durum Kodları

HTTP durum kodları  farklı sınıfa ayrılır. Bu sınıflarla ilgili bilgileri aşağıdan bulabilirsiniz:

  • 100'ler: Tarayıcı tarafından başlatılan isteğin devam ettiğini belirten bilgi kodları bu sınıfta yer alır.
  • 200'ler: Tarayıcı isteği başarıyla alındığında, sunucu tarafından anlaşıldığında ve işlendiğinde döndürülen başarı kodları bu sınıfta yer alır.
  • 300'ler: İstenen kaynak için yeni bir kaynak kullanıldığında döndürülen yönlendirme kodları bu sınıfta yer alır.
  • 400'ler: İstekte bir sorun olduğunu belirten istemci hata kodları bu sınıfta yer alır.
  • 500'ler: İsteğin kabul edildiğini ancak sunucudaki bir hatanın isteğin yerine getirilmesini engellediğini gösteren sunucu hata kodları bu sınıfta yer alır.

Bu sınıfların her birinde çeşitli sunucu kodları bulunur ve bu kodlar sunucu tarafından döndürülebilir nitelikte olurlar. Her bir kodun kendine özgü ve benzersiz bir anlamı vardır.

HTTP Durum Kodları Listesi

40'ın üzerinde farklı sunucu durum kodu vardır. Ancak, düzenli olarak karşılayacak olduklarınız sınırlıdır. Bir web sitesi işletiyorsanız bu kodları iyi bir şekilde öğrenmeniz gerekir. Böylece bir HTTP durum kodunun ne kadar sıkça çalıştığını ve çoğu zaman neye karşı ortaya çıktılarını anlayabileceksiniz.

200 Durum Kodu

  • 200: "Her şey yolunda." Bu, bir web sayfası veya kaynak tam olarak beklendiği gibi davrandığında verilen koddur.

300 Durum Kodları

  • 301: "İstenen kaynak kalıcı olarak taşındı." Bu kod, bir web sayfası veya kaynak kalıcı olarak farklı bir kaynakla değiştirildiğinde verilir. Kalıcı URL yönlendirmesi için kullanılır.
  • 302: "İstenen kaynak taşındı ancak bulundu." Bu kod, istenen kaynağın beklendiği yerde bulunduğunu ancak beklenen konumda olmadığını göstermek için kullanılır. Geçici URL yönlendirmesi için kullanılır."
  • 304: "İstenen kaynak, en son eriştiğiniz zamandan bu yana değiştirilmedi." Bu kod, tarayıcıya tarayıcı önbelleğinde depolanan kaynakların değişmediğini söyler. Daha önce indirilen kaynakları yeniden kullanarak web sayfası teslimini hızlandırmak için kullanılır.

400 Durum Kodları

  • 401: "Yetkisiz." Hedef kaynak geçerli kimlik doğrulama bilgilerine sahip olmadığında sunucu tarafından döndürülen koddur.
  • 403: "Bu kaynağa erişim yasaktır." Bu kod, bir kullanıcı erişim izni olmayan bir şeye erişmeye çalıştığında verilir. Örneğin, giriş yapmadan şifre korumalı içeriği görüntülemeye çalışmak 403 hatasıyla karşılaşmanı sağlar.
  • 404: "İstenen kaynak bulunamadı." En yaygın hata mesajıdır. Bu kod, istenen kaynağın bulunmadığını veya mevcut olup olmadığını bilinmemesi anlamına gelir.
  • 405: "Yönteme izin verilmiyor." Bu, barındırma sunucusu (başlangıç sunucusu) alınan yöntemi desteklediğinde oluşturulur ama hedef kaynak desteklemez.
  • 406: "Kabul edilemez yanıt." İstenilen kaynak, talepte gönderilen kabul başlıklarına göre yalnızca kabul edilemez içerik üretme yeteneğine sahiptir.
  • 408: "Sunucu, isteğin tarayıcıdan gelmesini beklerken zaman aşımına uğradı." Bu kod, bir tarayıcıdan tam istek beklenirken bir sunucu zaman aşımına uğradığında oluşturulur. Başka bir ifadeyle, sunucu tarayıcı tarafından gönderilen isteğinin tamamını alamamıştır. Olası sebeplerden biri tarayıcı ile sunucu arasında veri paketlerinin kaybolmasına neden olan tıkanıklık olabilir.
  • 410: "İstenen kaynak gitti ve geri gelmeyecek." 404 "Bulunamadı" koduna benzer ancak burada koşulun beklendiği gibi olması ve kalıcı olması söz konusudur.
  • 429: "Çok fazla istek var." Kullanıcı belirli bir süre içinde çok fazla istek gönderdiğinde sunucu tarafından üretilir. Bu bazen sitenize erişmeye çalışan botlardan veya komut dosyalarından oluşabilir.
  • 499: "Müşteri kapalı isteği." Bu, NGINX hala işleme devam ederken istemci isteği kapattığında NGINX tarafından döndürülür.

500 Durum Kodları

  • 500: "Sunucuda bir hata oluştu ve istek tamamlanamadı." Yalnızca "dahili sunucu hatası" anlamına gelen genel bir koddur. Sunucuda bir şeyler ters gitti ve istenen kaynak iletilmedi. Bu kod tipik olarak üçüncü taraf eklentileri, hatalı PHP veya hatta veritabanı bozulması gibi durumlarda üretilir.
  • 501: "Uygulanmadı." Bu hata, sunucunun isteği yerine getirmek için gereken işlevselliği desteklemediğini gösterir. Bu hemen hemen her zaman web sunucusunun kendisinde bir sorunu ifade eder ve genellikle ana bilgisayar tarafından çözülmesi gerekir. Uygulanmayan bir 501 hatasının nasıl çözüleceğine ilişkin önerilerimize göz atın.
  • 502: "Kötü Ağ Geçidi" Bu hata genellikle bir sunucunun diğerinden geçersiz bir yanıt aldığı anlamına gelir. Bazen bir sorgu veya istek çok uzun sürebilir. Bu nedenle istek sunucu tarafından iptal edilir ve veritabanı bağlantısı kesilir.
  • 503: "Sunucu şu anda bu isteği yerine getiremiyor." İstek şu anda tamamlanamıyor. Bu kod, ek istekleri yerine getiremeyen aşırı yüklenmiş bir sunucu tarafından döndürülebilir.
  • 504: "Ağ geçidi görevi gören sunucu, başka bir sunucunun yanıt vermesini beklerken zaman aşımına uğradı." Bir isteğin işlenmesiyle ilgili iki sunucu olduğunda, ilk sunucu ikinci sunucunun yanıt vermesini beklerken zaman aşımına uğradığını gösterir.
  • 521: "Web sunucusu kapalı" Cloudflare'a özgü bir hata mesajıdır. Bu, web tarayıcınızın Cloudflare'a başarılı bir şekilde bağlanabildiğini ancak Cloudflare'ın orijinal web sunucusuna bağlanamadığını gösterir.

Nadir HTTP Durum Kodları

Yukarıdaki listede düzenli olarak karşınıza çıkabilecek hata kodları vardır. Muhtemelen bir şekilde karşınıza çıkacaktır. Ancak zaman zaman birbirinden farklı kodlarla karşılaşabilirsiniz. Yukarıda yer almayan nadir HTTP durum kodları hakkında daha fazla bilgiye aşağıdan ulaşabilirsiniz.

  • 100: "Devam." durum kodu bir isteğin alındığını ve henüz reddedilmediğini gösterir. Sunucu, mesajdan sonra isteğin tam olarak alındığını ve karşılandığını belirtmek ister.
  • 101: "Anahtarlama protokolleri." Bu durum kodu sunucunun isteği anladığını ama istemciden aldığı protokol değiştirme isteğine uyacağını belirtmek ister.
  • 201: "Oluşturuldu." İsteğin başarılı olduğunu ve sunucuda yeni bir kaynak yaratıldığını belirtir.
  • 202: "Onaylandı." Sunucunun isteği kabul ettiğini ancak henüz işlemediğini belirtir.
  • 203: "Yetersiz bilgi." Sunucu isteği başarıyla işler ancak başka kaynakta yer alan bilginin döndürüldüğünü belirtmek için bu kodu kullanır.
  • 204: "İçerik yok." İstek başarılı olmuştur ancak cevap olarak içerik döndürmesi yapılamamıştır.
  • 205: "İçeriği baştan al." İstek başarılı olmuştur, cevap olarak içerik döndürmesi yapılamamıştır ancak içerik temizlenecektir.
  • 300: "Çoklu seçenek." Sunucuda isteğe göre birden fazla seçenek olduğunu gösterir. Sunucu seçeneği kendisi seçebilir veya seçenekler listesini görüntüleyebilir.
  • 303: "Diğerlerine bak." Farklı bir kaynağa başvurulması gerektiğini belirtir.
  • 305: "Proxy kullan." Sunucu tarafından döndürülen proxy için kullanımın gerekliliği belirtilir.
  • 307: "Geçici olarak yeniden gönder." Bir kaynağın veya sayfanın kalıcı olarak değil geçici olarak başka bir kaynağa veya sayfaya yönlendirildiğini belirtir.
  • 409: "Uyuşmazlık." İsteğin hedef kaynağın mevcut durumundaki uyuşmazlık nedeniyle tamamlanamadığını belirtmek için kullanılır.
  • 411: "Uzunluk gerekli". Bu kod, sunucunun içerik uzunluğunun tanımlanmadan isteğin yerine getirilemeyeceğini belirtmek için kullanılır.
  • 414: "URI çok uzun." Bu durum kodu, istek kaynağının çok fazla uzun olması durumunda sunucunun hizmet vermeyi reddetmesi anlamına gelir.
  • 415: "Desteklenmeyen medya türü. "Bu durum kodu, kaynak sunucunun, hedef kaynaktaki bu yöntem tarafından desteklenmeyen bir biçimde olması nedeniyle kaynak sunucunun isteği karşılamayı reddettiğini gösterir.
  • 417: "Beklenti başarısız." Bu durum kodu, isteğin Expect başlığı alanında verilen beklentinin gelen sunuculardan en az biri tarafından karşılanmadığını belirtir.

Yazar Hakkında

Timur Demir
Timur Demir Ben Timur Demir, 1991 Muğla doğumluyum. Evliyim ve Muğla'nın Dalaman ilçesinde yaşıyorum. 2013 yılından bu yana blog yazarlığı ve son 1 yıldır blog danışmanlığı yapıyorum. Yazara Ait Tüm Yazılar »

Yorum Yap