HTTP Durum Kodları Nedir? 2020 Özel Rehber

Bugün ele alacağımız konu HTTP durum kodları, bu bir web sayfasına sunucudan giden kısa bir not gibidir. Bu aslına bakarsak, 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 edinen bir mesajdır.

Bu tür mesajlar, tarayıcınız sunucu ile her etkileşime girdiğinde bir yanıt gönderir. Bu tarz şeyleri sıksık görmezsiniz fakat gönderilen her mesaja bir yanıt vardır. Bir site sahibiyseniz yada HTTP durum kodlarını anlayan bir geliştirici olmanız durumunda bunlar kritik öneme sahip olurlar. Şundan dolayı HTTP durum kodları web sayfası yapılandırma hatalarını teşhis etmek ve düzeltmek için son aşama kullanışlıdır.

Bu yazımızda en yaygın olarak karşılaşılan HTTP Durum Kodları bulunmakta. Nadir görünen durum kodları ise sayfanın altında yeni başlık halinde bulunmakta. Sahne arkasında yer edinen sunucuda neler olup bittiğiyle ilgili informasyon sahibi olmak istiyorsanız okumaya devam edebilirsiniz.

HTTP Durum Kodları Nedir?

Bir bağlantıya her tıkladığınızda yada bir URL yazıp “Enter” tuşuna bastığınızda, tarayıcınız bir web sunucusuna talep gönderir. Web sunucusu isteği alır ve işler. Arkası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ı yada kaynak istediğinde geri gönderilirken bir çok zaman işlemler pozitif yönde olduğundan onları göremezsiniz.

Bir şeyler ters gittiği süre tarayıcınızda görüntülenen bir HTTP koduyla yüz yüze gelirsiniz. Sunucu bu tip durumlarda, bu siteyi ziyaret eden kullanıcıya şu mesajı iletir: “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 şeklinde geliştirici dostu tarayıcılarda kullanılabilir araçlardır. Web Sniffer şeklinde araçları kullanarak web tabanlı başlıkları daima denetim edebilirsiniz.

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

Sınıflar – HTTP Durum Kodları

HTTP durum kodları  değişik sınıfa ayrılır. Bu sınıflarla ilgili detayları aşağıdan bulabilirsiniz:

  • 100’ler: Tarayıcı tarafından başlatılan isteğin devam ettiğini belirten informasyon kodları bu sınıfta yer alır.
  • 200’ler: Tarayıcı isteği başarıyla alındığında, sunucu tarafınca 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ımı yapıldığında döndürülen yönlendirme kodları bu sınıf altında yer alır.
  • 400’ler: İstekte bir problem bulunduğunu belirten istemci hata kodları bu sınıfta yer alır.
  • 500’ler: İsteğin kabul edildiğini sadece 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 özellikte olurlar. Her bir kodun kendine özgü ve benzersiz bir anlamı vardır.

HTTP Durum Kodları Listesi

40’ın üstünde değişik sunucu durum kodu vardır. Sadece, tertipli olarak karşılayacak olduklarınız sınırlıdır. Bir web sayfası işletiyorsanız bu kodları iyi bir halde öğrenmeniz gerekir. Böylece bir HTTP durum kodunun ne kadar sıkça çalıştığını ve bir çok süre neye karşı ortaya çıktılarını anlayabileceksiniz.

200 Durum Kodu

  • 200: “Her şey yolunda.” Bu, bir web sayfası yada kaynak tam olarak beklendiği şeklinde davrandığında verilen koddur.

300 Durum Kodları

  • 301: “İstenen kaynak kalıcı olarak taşındı.” Bu kod, bir web sayfası yada kaynak kalıcı olarak değişik bir kaynakla değiştirildiğinde verilir. Kalıcı URL yönlendirmesi için kullanılır.
  • 302: “İstenen kaynak taşındı sadece bulunmuş oldu.” Bu kod, istenen kaynağın beklendiği yerde bulunduğunu sadece beklenen konumda olmadığını göstermek için kullanılır. Geçici URL yönlendirmesi için kullanılır.”
  • 304: “İstenen kaynak, son olarak 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ı tekrardan 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ınca döndürülen koddur.
  • 403: “Bu kaynağa erişim yasaktır.” Bu kod sunucu tarafında kullanıcılara engelli olan, sadece yöneticinin erişime açık sayfalara erişmeye çalışıldığında hata mesajı olarak yansır. Mesela, giriş yapmadan şifre korumalı içinde ne olduğu 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ı yada 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 fakat hedef kaynak desteklemez.
  • 406: “Kabul edilemez cevap.” İstenilen kaynak, talepte gönderilen kabul başlıklarına bakılırsa yalnızca kabul edilemez içerik üretme kabiliyetine sahiptir.
  • 408: “Sunucu, isteğin tarayıcıdan gelmesini beklerken süre aşımına uğradı.” Bu kod, bir tarayıcıdan tam talep beklenirken bir sunucu süre aşımına uğradığında oluşturulur. Başka bir ifadeyle, sunucu tarayıcı tarafınca gönderilen isteğinin tamamını alamamıştır. Ihtimaller içinde sebeplerden biri tarayıcı ile sunucu içinde veri paketlerinin kaybolmasına yol açan tıkanıklık olabilir.
  • 410: “İstenen kaynak gitti ve geri gelmeyecek.” 404 “Bulunamadı” koduna benzer sadece burada koşulun beklendiği şeklinde olması ve kalıcı olması söz mevzusudur.
  • 429: “Fazlaca fazla talep var.” Kullanıcı belirli bir süre içinde fazlaca fazla talep gönderdiğinde sunucu tarafınca üretilir. Bu kimi zaman sitenize erişmeye çalışan botlardan yada komut dosyalarından oluşabilir.
  • 499: “Alan kişi kapalı isteği.” Bu, NGINX hala işleme devam ederken istemci isteği kapattığında NGINX tarafınca döndürülür.

500 Durum Kodları

  • 500: “Sunucuda bir hata oluştu ve talep 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 yada hatta veritabanı bozulması şeklinde durumlarda üretilir.
  • 501: “Uygulanmadı.” Bu hata, sunucunun isteği yerine getirmek için ihtiyaç duyulan işlevselliği desteklemediğini gösterir. Bu nerede ise daima web sunucusunun kendisinde bir problemi ifade eder ve çoğu zaman ana bilgisayar tarafınca çözülmesi gerekir. Uygulanmayan bir 501 hatasının iyi mi çözüleceğine ilişkin önerilerimize göz atın.
  • 502: “Fena Ağ Geçidi” Bu hata çoğu zaman bir sunucunun diğerinden geçersiz bir cevap almış olduğu anlamına gelir. Kimi zaman bir sorgu yada talep fazlaca uzun sürebilir. Bu yüzden talep sunucu tarafınca 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ınca döndürülebilir.
  • 504: “Ağ geçidi görevi gören sunucu, başka bir sunucunun cevap vermesini beklerken süre aşımına uğradı.” Bir isteğin işlenmesiyle ilgili iki sunucu olduğunda, ilk sunucu ikinci sunucunun cevap vermesini beklerken süre 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ı göstermiş bir halde bağlanabildiğini sadece Cloudflare’ın orijinal web sunucusuna bağlanamadığını gösterir.

Nadir HTTP Durum Kodları

Yukarıdaki listelerde çoğunlukla karşınıza çıkabilecek hata kodları vardır. Muhtemelen bir şekilde karşınıza çıkacaktır. Sadece bazen birbirinden değişik kodlarla karşılaşabilirsiniz. Yukarıda yer almayan nadir HTTP durum kodları hakkında daha çok bilgiye aşağıdan ulaşabilirsiniz.

  • 100: “Devam.” durum kodu bir isteğin alındığını ve hemen hemen reddedilmediğini gösterir. Sunucu, mesajdan sonrasında isteğin tam olarak alındığını ve karşılandığını belirtmek ister.
  • 101: “Anahtarlama protokolleri.” Bu durum kodu sunucunun isteği anladığını fakat istemciden almış olduğu protokol değişiklik yapma isteğine uyacağını belirtmek ister.
  • 201: “Oluşturuldu.” İsteğin başarı göstermiş bulunduğunu ve sunucuda yeni bir kaynak yaratıldığını belirtir.
  • 202: “Onaylandı.” Sunucunun isteği kabul ettiğini sadece hemen hemen işlemediğini belirtir.
  • 203: “Yetersiz informasyon.” Sunucu isteği başarıyla işler sadece başka kaynakta yer edinen bilginin döndürüldüğünü belirtmek için bu kodu kullanır.
  • 204: “İçerik yok.” İstek başarı göstermiş olmuştur sadece yanıt olarak içerik döndürmesi yapılamamıştır.
  • 205: “İçeriği baştan al.” İstek başarı göstermiş olmuştur, yanıt olarak içerik döndürmesi yapılamamıştır sadece içerik temizlenecektir.
  • 300: “Çoklu seçenek.” Sunucuda isteğe bakılırsa birden fazla seçenek bulunduğunu gösterir. Sunucu seçeneği kendisi seçebilir yada seçenekler listesini görüntüleyebilir.
  • 303: “Diğerlerine bak.” Değişik bir kaynağa başvurulması icap ettiğini belirtir.
  • 305: “Proxy kullan.” Sunucu tarafınca döndürülen proxy için kullanımın gerekliliği belirtilir.
  • 307: “Geçici olarak tekrardan gönder.” Bir kaynağın yada sayfanın kalıcı olarak değil geçici olarak başka bir kaynağa yada sayfaya yönlendirildiğini belirtir.
  • 409: “Uyuşmazlık.” İsteğin hedef kaynağın mevcut durumundaki uyuşmazlık sebebiyle tamamlanamadığını belirtmek için kullanılır.
  • 411: “Uzunluk lüzumlu”. Bu kod, sunucunun içerik uzunluğunun tanımlanmadan isteğin yerine getirilemeyeceğini belirtmek için kullanılır.
  • 414: “URI fazlaca uzun.” Bu durum kodu, talep kaynağının fazlaca 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ınca desteklenmeyen bir halde olması sebebiyle 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 minimum biri tarafınca karşılanmadığını belirtir.

Merhaba, beni Instagram'da takip etmeyi unutmayın : @tahamumcu
Taha Mumcu
Ben Taha Mumcu, Bilişim sektöründe uzun süreden beri tecrübe edinerek bir yerlere gelmek için çalışmalarına devam eden ve sektörü yakından takip ederek hiç bir veriden geri kalmayan, girişimci ruhu ile tüm işlere elinden geldiğinde çalışma yapan bir girişimciyim. Henüz genç yaşta birçok tecrübeye ulaşan ve koyulan engelleri aşarak bir yerlere gelmek için çaba göstermekten çekinmiyorum.