HTTP Durum Kodlarını Tanıyalım

HTTP Durum Kodları
Bir webmaster siteleriyle ilgilenirken birçok kez HTTP Durum Kodlarıyla karşılaşır. Bu kodları ve onlara karşı nasıl hareket edileceğini bilmek SEO ve web sitesi sağlığı açısından oldukça önemlidir. Bende zaman zaman sitelerimde karşılaştığım bu kodları sürekli webde aratmaktan bıktım ve bu yazıyı kaleme almaya karar verdim. Böylece, HTTP Durum Kodlarına bir günlük şeklinde tuttuğum blogumdan istediğim zaman daha detaylı bir şekilde ulaşabileceğim. Birçok kaynaktan elde ettiğim bilgilerin detaylı bir toparlaması olan çalışmam umarım hem bana hemde siz ziyeretçilerime iyi bir kaynak olur.

HTTP Durum kodları Nedir ?


Bir sunucu içeriğine HTTP kullanarak ulaşılmaya çalışıldığında web öğesinin (sitesinin) durumunu belirten ve istekte bulunulan sunucular tarafından verilen üç haneli numaralardır. Bu numaralar The Internet Engineering Task Force (IETF®) RFC2616 spesifikasyonu ile belirlenmiştir. Çok birşey anladınız mı? Problem değil, ben de anlamadım :)

Bu 3 haneli kodlar "IETF" tarafından 5 sınıfa ayrılmıştır. Bu sınıflar 100, 200, 300, 400 ve 500'ler diye kategorilendirilmiştir. Bu kategoriler ve anlatmaya çalıştıkları durumlar şu şekildedir:
  • 100’lü kodlar: Bilgilendirici: İstek alındı ve süreç devam ediyor. (Geçici bir yanıt belirten ve istekte bulunan kişiden devam etmek için bir işlem yapmasını isteyen durum kodlarıdır)
  • 200’lü kodlar: Başarı: İstek alındı ve başarıyla işlendi. (Sunucunun isteği başarılı bir şekilde işlediğini gösterir.)
  • 300’lü kodlar: Yönlendirme: İstek alındı fakat İsteği yerine getirmek için daha fazla işlem gerekmektedir. (Bu durum kodları çoğunlukla yeniden yönlendirme amacıyla kullanılır. Google, her istek için beşten az yeniden yönlendirme kullanmanızı önerir. Web Yöneticisi Araçlarını kullanarak Googlebot’un yeniden yönlendirilen sayfalarınızı taramada sorun yaşayıp yaşamadığını öğrenebilirsiniz. Sağlık Durumu'nun altında bulunan Tarama Hataları sayfasında Googlebot'un yeniden yönlendirme hataları nedeniyle tarayamadığı URL'ler listelenir.)
  • 400’lü kodlar: Müşteri (İstek) Hatası: İstek müşteri tarafından yapıldı fakat sayfa geçerli değil. (Sunucunun isteği işlemesini engelleyen bir hata olduğunu gösterir.)
  • 500’lü kodlar: Sunucu Hatası: Müşteri tarafından geçerli bir istek yapıldı fakat sunucu isteği gerçekleştirecek işlevselliğe sahip değil. Sunucu istek yöntemini tanımadığında bu kodu döndürebilir.

Tüm kategoriler içerisinde en çok karşılaşılan yani popüler olanlar 200, 301, 302, 404, 500 ve 503 nolu Http durum kodlarıdır. Bu kodlara kabaca ve hızlı bir şekilde göz atabilmek için kendime bir tablo hazırladım. Daha sonra bunu herkesle paylaşayımda bir işe yarasın dedim. Sonra çok genel ve klasik geldi gözüme ve listeye biraz mizah katmaya çalıştım. Bakalım beğenecek misiniz?


En popüler HTTP Durum Kodları


En popüler durum kodlarını verdikten sonra geriye birtek ana listemizi yayımlamak kalıyor. Detaylı bir şekilde hazırlamaya çalıştığım liste umarım işinizi görür.

HTTP DURUM KODLARI

Kod Mesaj Açıklama
1xx
100  Continue İstek başarıyla alınır ve işleme devam edilmesi gerekir. Sunucu isteğin ilk bölümünü aldığını ve geri kalanını beklediğini belirtmek için bu kodu döndürür. 
101  Switching Protocols Anahtarlama Protokolü -  İstekte bulunan, sunucudan protokolleri değiştirmesini istemiştir ve Sunucu, istemciden aldığı protokol değiştirme isteğine uyacağını belirtmektedir.
102  Processing İşlem
103  Checkpoint İptal edilen PUT yada POST isteklerini devam ettir
2xx
200  OK Başarılı - Sunucu isteği başarılı alınmış ve cevap başarılı verilmiştir.
201  Created Oluşturuldu -  İstek başarılı alınmış ve sunucu (cevap) yeni bir kaynak oluşturmuştur.
202  Accepted Onaylandı - Sunucu isteği kabul etti ancak henüz işleme koymadı.
203  Non-Authoritative Information Yetersiz Bilgi - Sunucu isteği başarılı işledi ancak başka bir kaynakta olabilecek bilgileri döndürmektedir.
204  No Content İçerik Yok - İstek başarılı alınmış ancak geri içerik döndürülmemektedir.
205  Reset Content İçeriği Baştan al -  Sunucu isteği alınmış ancak geri içerik döndürmemektedir. İstekte bulunulan içerik temizlenecektir (Örnek: bir web formunda doldurulan bilgiler)
206  Partial Content Kısmi İçerik -  Sunucu kısmi GET isteğini (içeriğin belirli bir kısmını) başarıyla işleme koymuştur. 
207  Multi-Status Çok-Statü
210  Content Different Farklı İçerik
3xx
300  Multiple Choices Çok Seçenek -  Sunucuda isteğe göre birden fazla seçenek olduğunu bildirir. Sunucu seçeneği kendisi seçebilir veya seçenek listesini görüntüleyebilir.
301  Moved Permanently Kalıcı Taşındı -  Bir kaynağın veya sayfanın kalıcı olarak başka bir yere taşındığını bildirir ve o yere yönlendirme sağlar. Kaynağın yeni bir konuma taşındığını Googlebot'a bildirmek için bu kodu kullanmalısınız. 
302  Found Geçici Taşındı - Bir kaynağın (veya sayfanın) kalıcı değil geçici olarak başka bir kaynağa yönlendirir. Kaynağın ana adresi değişmemiştir. 301 koduna benzer, ancak Googlebot özgün konumu taramaya ve dizine eklemeye devam edeceğinden bir sayfanın veya sitenin taşındığını Googlebot'a bildirmek için bu kodu kullanmamalısınız. 
303  See Other Diğerlerine Bak - İstekte bulunanın, yanıtı almak için farklı bir konuma ayrı bir GET isteğinde bulunması gerektiğinde sunucu bu kodu döndürür. HEAD isteği dışındaki tüm istekler için sunucu otomatik olarak diğer konuma yönlendirir. 
304  Not Modified Değiştirilmedi - İstenen sayfa, son istekten bu yana değiştirilmedi. Farklı bir kayanağa GET yapılması gerektiğini belirtir. Sunucu bu yanıtı döndürdüğünde sayfanın içeriğini döndürmez. İstekte bulunanın son isteğinden beri sayfada herhangi bir değişiklik olmadığında, sunucunuzu bu yanıtı (If-Modified-Since HTTP başlığı olarak bilinir) döndürecek şekilde yapılandırmanız gerekir. Bu durumda, sunucunuz Googlebot'a bir sayfada son taramadan sonra herhangi bir değişiklik olmadığını bildirebileceğinden hem bant genişliğinden, hem de işletim masraflarından tasarruf edersiniz. 
305  Use Proxy Proxy Kullan -  İstekte bulunan, istenen sayfaya ancak proxy kullanarak erişebilir. Sunucu bu yanıtı döndürdüğünde, istekte bulunanın kullanması gereken proxy'yi de belirtir. 
307  Temporary Redirect Geçici olarak yeniden gönder -  Sunucu şu anda isteğe farklı bir konumda bulunan bir sayfayla yanıt veriyor; ancak istekte bulunanın gelecek istekler için özgün konumu kullanmaya devam etmesi gerekiyor. Bu kod, bir GET veya HEAD isteği için istekte bulunanı otomatik olarak farklı bir konuma yönlendirmesi bakımından 301 koduna benzer, ancak Googlebot özgün konumu taramaya ve dizine eklemeye devam edeceğinden bir sayfanın veya sitenin taşındığını Googlebot'a bildirmek için bu kodu kullanmamalısınız.
308  Resume Incomplete
4xx
400  Bad Request Kötü İstek - isteğin yapısının hatalı olduğunu ve işlemesini engelleyen bir durum  olduğunu gösterir. 
401  Unauthorized Yetkisiz -  İstek için kimlik doğrulaması gerekiyor. Sunucu giriş yapmadan görüntülenemeyen sayfa için bu yanıtı döndürebilir. 
402  Payment Required Ödeme Gerekli - Gelecekte kullanılması için ayrılmıştır.
403  Forbidden Yasaklandı - Kaynağın yasaklandığını, isteği reddettiğini belirtir. Sitenizin geçerli sayfalarını taramaya çalışırken Googlebot'un bu durum kodunu aldığını görürseniz (Google Web Yöneticisi Araçları'ndaki Sağlık Durumu sekmesinin altında bulunan Tarama Hataları sayfasında bunu görebilirsiniz), sunucunuz veya ana bilgisayarınız Googlebot'un erişimini engelliyor olabilir. 
404  Not Found Sayfa Bulunamadı - Sunucu istenen sayfayı bulamıyor. İstek, sunucuda bulunmayan bir sayfa için yapılmışsa, sunucu genellikle bu kodu döndürür. Sitenizde bir robots.txt dosyası yoksa ve Google Web Yöneticisi Araçları'ndaki Engellenen URL'ler sayfası'nda bu durumu görüyorsanız, doğru durum budur. Ancak, bir robots.txt dosyanız varsa ve bu durumu görüyorsanız, robots.txt dosyanızın adı veya konumu doğru olmayabilir. (Söz konusu dosya etki alanınızın en üst düzeyinde bulunmalı ve robots.txt olarak adlandırılmalıdır.). Googlebot'un taramaya çalıştığı URL'ler için bu durumu görüyorsanız, Googlebot başka bir sayfadan geçersiz bir bağlantıyı (eski veya yanlış yazılmış bir bağlantıyı) izlemiş olabilir. 
405  Method Not Allowed İzin verilmeyen Metod -  İstekte bulunulan yönteme izin verilmiyor. 
406  Not Acceptable Kabul Edilemez - İstenen sayfa, istenen içerik özellikleriyle yanıt veremiyor. İstemcinin Accept header'ında verilen özellik karşılanamıyor.
407  Proxy Authentication Required Proxy kimlik doğrulaması gerekiyor - Proxy üzerinden yetkilendirme gerekir. Bu durum kodu, 401 (Yetkilendirilmemiş) koduna benzer; ancak istekte bulunanın proxy kullanarak kimlik doğrulaması yapmasını belirtir. Sunucu bu yanıtı döndürdüğünde, istekte bulunanın kullanması gereken proxy'yi de belirtir. 
408  Request Timeout İstek zaman aşamına uğradı
409  Conflict (Hatlar) Çakıştı,Çakışma - Sunucu isteği gerçekleştirirken  istek içinde çelişki olduğundan dolayı bir çakışmayla karşılaştı. İstek içinde çelişki var. Sunucu çakışmayla ilgili bilgileri yanıta eklemelidir. Sunucu önceki istekle çakışan bir PUT isteğine yanıt olarak bu kodu ve istekler arasındaki farkların listesini döndürebilir. 
410  Gone Bak (Kaynak artık yok) - İstenen kaynak kalıcı olarak kaldırıldığında sunucu bu yanıtı döndürür. Bu kod, 404 (Bulunamadı) koduna benzer, ancak bazen eskiden var olduğu halde artık olmayan kaynaklar için 404 yerine kullanılabilir. Kaynak kalıcı olarak taşındıysa, kaynağın yeni konumunu belirtmek için bir 301 kullanmanız gerekir. 
411  Length Required İstekte "Content-Length" (içeriğin boyutu) belirtilmemiş. Sunucu geçerli bir Content-Length (İçerik Uzunluğu) başlık alanı olmadan isteği kabul etmez. 
412  Precondition Failed Önceden koşullandırma başarısız oldu - Sunucu istekte belirtilen bazı önkoşulları karşılamıyor. Sunucu istekte bulunan tarafından istekte belirtilen ön koşullardan birini karşılamıyor. 
413  Request Entity Too Large İstek varlığı çok büyük - İsteğin boyutu çok büyük olduğu için işlenemedi. Sunucu işleyemeyeceği kadar büyük olduğu için isteği işleyemiyor.
414  Request-URI Too Long URI (URL) sunucunun işleyebileceğinden daha büyük
415  Unsupported Media Type Desteklenmeyen ortam türü - İstek istenilen medya (sayfa) tarafından desteklenmeyen bir biçime sahip. 
416  Requested Range Not Satisfiab İstenen aralık karşılanabilir değil - İstek, sayfa için kullanılamayan bir aralık için yapıldıysa sunucu bu durum kodunu döndürür. İstek yapılan parça (bir dosyanın bir parçası vb..) sunucu tarafından verilebiliyor veya uygun değil.
417  Expectation Failed Beklenti karşılanmadı - Sunucu Expect isteği desteklenemiyor veya yerine getirilemiyor. 
422  Unprocessable entity
423  Locked
424  Method Failure
5xx
500  Internal Server Error Sunucu hatası - Sunucu hatayla karşılaştı ve isteği gerçekleştiremiyor.
501  Not Implemented Uygulanmamış - Sunucu istenilen isteği yerine getirecek şekilde yapılandırılmamıştır
502  Bad Gateway Geçersiz (Bozuk) Ağ Geçidi - Gateway veya Proxy sunucusu, kaynağın bulunduğu sunucudan (upstream sunucusu) cevap alamıyor. Sunucu bir ağ geçidi veya proxy gibi davranırken yukarı akış sunucusundan geçersiz bir yanıt aldı. 
503  Service Unavailable Hizmet Yok - Sunucu şu anda hizmet vermiyor (kapalı veya erişilemiyor). Bu genellikle geçici bir durumdur. 
504  Gateway Timeout Ağ geçidi zaman aşımı - Gateway veya Proxy sunucusu, kaynağın bulunduğu sunucudan (upstream sunucusu) belirli bir zaman içinde cevap alamadı. Sunucu bir ağ geçidi veya proxy gibi davranırken yukarı akış sunucusundan zamanında istek alamadı. 
505  HTTP Version Not Supported HTTP Protokol sürümü desteklenmiyor - Sunucu istekte kullanılan HTTP protokolü sürümünü desteklemiyor. 
507  Insufficient storage
511  Network Authentication Requir

Yazımı yararlı bulduysanız veya eksiklikler olduğunu düşünüyorsanız yorumlarınızı beklerim...

www.acemiyazilimci.com

Hiç yorum yok:

Yorum Gönder