Web sitelerine girdiğimizde hatalarla karşılaşabiliyoruz.
En yaygın karşılaştığımız ise 404 Not Found.
Peki nedir bu hata dediğimiz aslında HTTP Durum Kodları olan sayılar ve ne anlama gelmektedir ?
Client bir servera HTTP kullanarak ulaşmaya çalıştığında server yanıtın durumunu belirten bir sayısal kod gönderir. Bazı durumlarda HTTP durum kodu (HTTP Status Code) istemcinin tarayıcısında da gösterilerbilir Örn: 200, 301, 302, 404 ve 500 kodları en yaygın olanlardır.
Durum kodları 1'den 5'e kadar sınıflandırılmıştır;
1xx Bilgi
2xx Başarı
3xx Yönlendirme
4xx Tarayıcı Hatası
5xx Sunucu Hatası
2xx Başarı
3xx Yönlendirme
4xx Tarayıcı Hatası
5xx Sunucu Hatası
200 Kodu
200 kodu sitenin çalışır durumda olduğunu Google Botlarına bildirir, Google Botu da bu şekilde sitenin ayakta olduğunu anlayıp indexleme işlemine devam eder.
301 Kodu
301 kodu en önemli yönlendirme kodlarından bir tanesidir. Eticaret sitenizi 5 sene önce açtınız, sonra yapı değişikliğine veya kullandığınız hazır paketi değiştirme yoluna gittiniz. İşte bu durumda 301 kodu sitenizin hayatını kurtaran bir kod olarak karşınıza çıkar. Çünkü yıllardır emek verdiğiniz sayfaların sayfa adresleri (Url’leri) de bu değişiklik ile değişecektir. Google indexleme mekanizmasını sayfa adresleri üzerine kurduğundan yaptığınız değişikliği Google botlarına 301 ile bildirmediğiniz sürece eski sayfa adresleriniz ve yeni sayfa adresleriniz olmak üzere Google’da indexli sayfalarınız oluşur.
Bu durum kopya içerik (duplicate content) sorununa neden olacak ve kısa zaman içerisinde
Google’dan gelen trafiğiniz dörtte biri veya daha fazla oranda düşecek, eski sıralamalarınız gidecek, satışlarınız düşecek. Yazının bu kısmı biraz olumsuz oldu ama maalesef en sonunda bunlarla karşılaşacaksınız.
Fakat 301 kodunu doğru kullanırsanız eski sıralamalarınızın yeni sayfa adreslerine geçmesini sağlayabilir, trafik kaybını engelleyebilirsiniz. Burada da en önemli nokta 301 yaparken eski sayfa adreslerinizi birebir yeni adreslerinize yönlendirmeniz gerektiğidir. Yani example.com/id-55544 sayfasının yeni adı example.com/cep-telefonu ise ilk sayfa adresini ikinci adrese 301 ile yönlendirmeniz gerekmektedir. Bütün site için bu yapıyı kurmanız gerekmektedir.
301 server üzerinde yapılması gerekir, bu açıdan yazılımcınız ve server’a bakan ekibiniz size yardımcı olabilecektir. 301’in kısa tanımı kalıcı yönlendirmedir, bunu da eklemeden geçmeyeyim.
302 Kodu
302 kodu ise geçici yönlendirme çeşidi olarak bilinir. Eğer bir sayfa adresini arama motorunda göstermek isteyip kullanıcının eriştiği yerde başka adres kullanmak istiyorsanız bu yöntemi kullanabilirsiniz.
Örn: example.com/sayfa/id4444/reklam diye url’iniz mevcut ama TV reklamlarınızda example.com/reklam url’ini kullanıyorsanız ve ikinci url’e giren kişilere 1. url’e geçici yönlendirmek istiyorsanız 302 kullanabilirsiniz.
302 yönlendirme şekli verimsiz bir yönlendirme şeklidir aslında, arama sonuçlarında hiçbir şeyi değiştirmez. Genelde yapılan hata 301 yerine 302 yapılmasıdır. 302 geçici yönlendirme olduğundan yönlendirilen url arama sonuçlarında çıkmaya devam eder.
Sonunda da siz “iyi de biz bu url’i değiştirdik, yönlendirme de oluyor. Neden Google’da sonucum değişmiyor?” diyorsanız yönlendirme kodunuzu mutlaka kontrol edin.
404 Kodu
404 kodu Google Botlarına sayfanın artık var olmadığını bildirir. Böylece Google Botları o sayfayı indexlerinden siler bir daha arama sonuçlarında getirmemeye çalışırlar.
Fakat yine yapılan hatalar şöyledir;
1- Sayfayı kapatırsınız çok güzel bir 404 sayfası yaparsınız ama sayfada 404 yazıyor olması demek 404 verdiği anlamına gelmez. Mutlaka durum kodunun doğru olup olmadığını kontrol etmeniz gerekmektedir. Yine yukarıdaki gibi sayfamı kapattım ama Google’dan neden silinmiyor diyebilirsiniz. İşte asıl nedeni sayfanın Google botuna 404 kodunu göndermiyor olmasındandır.
2- Bir sayfayı kapatırsınız direkt 404 vermek yerine 302 ile başka sayfaya yönlendirir ve o sayfa 404 verir. Bu kullanım yanlıştır, mutlaka hatalı olan sayfa direkt 404 kodu vermelidir.
503 Kodu
503 kodu çok ihtiyaç olan ama kullanılmayan bir kod çeşididir. Sitenizde çalışma yaptığınız varsayalım ve komple sitenizi kapattığınızı, hiç kimsenin ulaşamadığını düşünelim. İşte bu durumda Google botlarının sitenize gelip hayal kırıklığı yaşamasını istemezsiniz sanırım.
Bu noktada sayfanızın durum kodu 503 olursa Google botu sitenizde çalışma olduğunu anlayıp geri gider, siteniz açıldığında yine sitenizi indexlemeye devam eder. Bu süreçte hiç kayıp yaşamazsınız.
Peki bu durum kodlarını nasıl sorgulayabilirsiniz ?
3- http://home.snafu.de/tilman/xenulink.html Bu araçla da sitenizin bütün url’lerini tarayıp hatalarını çıkartabilirsiniz.
Code | Mesaj | Anlamı |
---|---|---|
1xx | Bilgi | |
100 | Continue | İstek başarılı alındığı ve devam edilebileceği belirtilir |
101 | Switching Protocols | Sunucu, istemciden aldığı protokol değiştirme isteğine uyacağını belirtmektedir |
102 | Processing | İşlem |
2xx | Başarı | |
200 | OK | İstek başarılı alınmış ve cevap başarılı verilmiştir |
201 | Created | İstek başarılı olmuş ve sunucuda yeni bir kaynak yaratılmıştır |
202 | Accepted | Sunucu isteği kabul etti ancak henüz işlemedi |
203 | Non-Authoritative Information | Sunucu isteği başarılı işledi, ancak başka kaynakta olabilecek bilgi 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 | İstek başarılı alınmış ancak geri içerik döndürülmemektedir. Ancak içerik temizlenecektir (örneğin bir web formunda doldurulan bilgiler) |
206 | Partial Content | GET için kısmi içerik (içeriğin bir belirli bir parçası) başarılıyla döndürülmüştür |
207 | Multi-Status | Çok-Statü |
210 | Content Different | Farklı İçerik |
3xx | Yönlendirme | |
300 | Multiple Choices | 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 | Bir kaynağın (veya sayfanın) kalıcı olarak başka bir yere taşındığını bildirir ve o yere yönlendirme sağlar |
302 | Moved Temporarily | 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 |
303 | See Other | Farklı bir kayanağa GET yapılması gerektiğini belirtir |
304 | Not Modified | İstenilen kaynakta daha önce yapılan istekten beri herhangi bir değişikliğin olmadı belirtilir ve içerik gönderilmez |
305 | Use Proxy | Sunucu tarafından döndürülen proxy'in kullanılması gerektiği belirtilir |
307 | Temporary Redirect | Bir kaynağın (veya sayfanın) kalıcı değil geçici olarak başka bir kaynağa yönlendirir. |
4xx | İstemci hatası | |
400 | Bad Request | İstek hatalı (isteğin yapısı hatalı) olduğu belirtilir |
401 | Unauthorized | İstek için kimlik doğrulaması gerekiyor |
402 | Payment Required | Ödeme gerekiyor. (gelecekte kullanılması için ayrılmıştır) |
403 | Forbidden | Kaynağın yasaklandığını belirtir |
404 | Not Found | İstek yapılan kaynağın (veya sayfanın) bulunamadığını belirtir |
405 | İzin verilmeyen Metod | Sunucu , HTTP Method'u kabul etmiyor |
406 | Not Acceptable | İstemcinin Accept header'ında verilen özellik karşılanamıyor |
407 | Proxy Sunucuda login olmak gerekli | Proxy üzerinden yetkilendirme gerekir |
408 | İstek zaman aşamına uğradı | İstek zaman aşımına uğradı (belirli bir sürede istek tamamlanamadı) |
409 | Conflict | İstek içinde çelişki var |
410 | Gone | Kaynak artık yok |
411 | Length Required | İstekte "Content-Length" (içeriğin boyutu) belirtilmemiş |
412 | Precondition Failed | Sunucu istekte belirtilen bazı önkoşulları karşılamıyor |
413 | Request Entity Too Large | İsteğin boyutu çok büyük olduğu için işlenemedi |
414 | Request-URI Too Long | URI (URL) fazla büyük |
415 | Unsupported Media Type | İstenilen kaynak istenilen medya tipinin desteklemiyor |
416 | Requested range unsatifiable | İstek yapılan parça (bir dosyanın bir parçası vb..) sunucu tarafından verilebiliyor veya uygun değil |
417 | Expectation failed | Sunucu "Expect" ile istenileni desteklemiyor veya yerine getiremiyor |
422 | Unprocessable entity | |
423 | Locked | |
424 | Method failure | |
5xx | Sunucu hatası | |
500 | Internal Server Error | Sunucuda bir hata oluştu ve istek karşılanamadı |
501 | Uygulanmamış | Sunucu istenilen isteği yerine getirecek şekilde yapılandırılmamıştır |
502 | Geçersiz Ağ Geçidi | Gateway veya Proxy sunucusu, kaynağın bulunduğu sunucudan (upstream sunucusu) cevap alamıyor |
503 | Hizmet Yok | Sunucu şu anda hizmet vermiyor (kapalı veya erişilemiyor) |
504 | Gateway Timeout | Gateway veya Proxy sunucusu, kaynağın bulunduğu sunucudan (upstream sunucusu) belirli bir zaman içinde cevap alamadı |
505 | HTTP Version not supported | HTTP Protokol versiyonu desteklenmiyor |
507 | Insufficient storage |
[1] http://www.mesutmurt.com/12727-HTTP-durum-kodlari-HTTP-Status-Code-ve-anlamlari.html
[2] http://eticaretmag.com/http-durum-kodlari/
[3] https://tr.wikipedia.org/wiki/HTTP_durum_kodları
[4] http://www.fibiler.com/Bilim-ve-Teknoloji_Uygulamali-Bilimler-ve-Teknoloji_Bilgisayar-ve-Iletisim_Ag-Internet_HTTP-Protokolu_HTTP-Durum-Kodlari-Status-Codes_HTTP-Durum-Kodlari-HTTP-Status-Codes_Veri_12827
[2] http://eticaretmag.com/http-durum-kodlari/
[3] https://tr.wikipedia.org/wiki/HTTP_durum_kodları
[4] http://www.fibiler.com/Bilim-ve-Teknoloji_Uygulamali-Bilimler-ve-Teknoloji_Bilgisayar-ve-Iletisim_Ag-Internet_HTTP-Protokolu_HTTP-Durum-Kodlari-Status-Codes_HTTP-Durum-Kodlari-HTTP-Status-Codes_Veri_12827