HTTP Durum Kodları Rehberi
İnternet artık günlük hayatımızın bir kısmını değil de tamamını kapsayacak şekilde her anımızda yanımızda desek hiç de abartmış olmayız. Durum böyle olunca hemen her şeye internet siteleri üzerinden ulaşıyoruz. Web sitelerini ziyaret ederken bazı zamanlar sayfaların açılmadığını da görüyoruz. Bu durumlarda karşımıza bazı kodlar çıkıyor. Bu hata kodlarının ne olduğu da merak uyandırıyor. Biz de sizler için bu yazımızda HTTP Durum Kodlarını araştırdık ve derledik.
HTTP Durum Kodları Nedir?
Bir kullanıcı herhangi bir web sitesini ziyaret etmek istediğinde çift taraflı bir iletişim başlar. Bu iletişimin taraflarından biri tarayıcı diğer ise sunucudur. Bu iletişim ilk olarak kullanıcılar web sitesine giriş yaptıkları zaman başlamaktadır. Kullanıcılar web sitelerine giriş yaptıklarında aslında tarayıcı aracılığı ile web sayfasının sunucusuna bir istek gönderirler. Sunucular da bu görüntüleme isteğine bir kod ile yanıt verirler. Bu kod durum kodudur ve üç haneden oluşur. Sunucuların tarayıcılara verdikleri bu yanıtlar HTTP ( Hyper Text Transfer Protocol) yani Üstün Metin Transfer Protokolü durum kodu olarak adlandırılır. Bu HTTP durum kodları her zaman olumsuz anlama gelmemektedir. Kimi zaman bir hata olduğunu bildirir. Kimi zaman ise sayfanın hiçbir sorun olmadan açıldığını bildirmek amacıyla gönderilir. HTTP durum kodları çoğu kişi tarafından olumsuz bir sonuç ile bağdaştırılmıştır. Fakat HTTP durum kodları olumlu ya da olumsuz sonuçlar için de gönderilebilir.
HTTP Durum Kodlarının Önemi
HTTP durum kodları web siteleri ve kullanıcıları açısından oldukça önemlidir. Bir kullanıcı bir web sitesine sorunsuz bir biçimde bağlanmak ister. Herhangi bir sorun ile karşılaştığında da bu sorunun nereden ve nasıl kaynaklandığını da bilmek çok önemli bir unsurdur. Bu sebeple HTTP durum kodları kullanıcılar için büyük bir önem taşır.
Web siteleri için de HTTP durum kodları dikkat edilmesi ve önem gösterilmesi gereken unsurların başında gelir. Bir web sitesinin belirli sorunlar nedeniyle açılamaması hem kullanıcılar açısından hem de SEO (Search Engine Optimization) performansı açısından web sitesini olumsuz etkiler. HTTP durum kodları eğer bir hatayı belirtiyorsa ve fazlasıyla karşılaşılıyorsa bu o web sitesinin çok kaliteli olmadığının bir göstergesidir. Bu hatalar düzeltilmediği sürece site arama motorunda hızlı bir şekilde gerilemeye başlar ve ziyaret oranı da düşer. Hataların ısrarla devam etmesi halinde site arama motorunda düştüğü yerde sabit kalır ve neredeyse hiç ziyaret edilemez hale gelir.
Sunucudan kullanıcılara gönderilen bu HTTP durum kodları düzenli bir şekilde kontrol edildiği takdirde web sitesi hatalarını kolayca gözlemleyebilir. Bu gözlemlerin sonucunda da çeşitli iyileştirmelere gidebilir. Böylelikle web sitesi arama motorunda gerilere düşmek gibi kötü durumlarla karşı karşıya kalmaz.
HTTP Durum Kodu Sınıfları
HTTP durum kodları farklılık gösterebilir. Bazı durum kodları olumlu bir anlam taşırken bazı durum kodları ise olumsuz anlamlar taşıyabilir. Şimdi gelin hangi durum kodu neyi ifade ediyor birlikte inceleyelim!
1xx : Tarayıcının gönderdiği isteğin sunucuya ulaştığını ve işlemin başladığını ifade eden durum kodlarıdır.
2xx : Tarayıcının gönderdiği isteğin sunucuya ulaştığını, sunucu tarafından anlaşıldığını ve işlemin başarılı olduğunu ifade eden durum kodlarıdır.
3xx : Erişilmek istenen web sitesinin ya da bir başka kaynağın taşındığını ve bir yönlendirmenin başlayacağını ifade eden durum kodlarıdır.
4xx : Ulaşım isteğinin yerine getirilemeyeceği, başarılı olmadığını ve web sitesine ulaşılamayacağını ifade eden durum kodlarıdır. Bu kodlar genelde hata kodları olarak bilinir.
5xx : Tarayıcının gönderdiği isteklerin başarılı bir şekilde sunucuya iletildiğini fakat sunucu sorunu sebebiyle isteklerin doğru bir biçimde yerine getirilmediğini ifade eden durum kodlarıdır.
Sıklıkla Karşılaşılan Durum Kodları
Tarayıcı ile sunucu arasındaki bağlantı problemlerine göre HTTP durum kodları da değişiklik gösterir. Bazı HTTP durum kodları ile sık sık karşılaşırız. Şimdi de hepimizin sıklıkla gördüğü HTTP durum kodlarını birlikte inceleyelim!
200 Durum Kodu: Kısaca tanımlayacak olursak 200 durum kodu başarılı olarak sonuçlanan ideal durum kodudur. Bir web sayfasına hiçbir sorun olmadan ulaşılıyorsa sunucu tarafından tarayıcıya 200 durum kodu gönderilir. Sunucudan tarayıcıya gönderilen 200 durum kodu işlemin başarılı ve sağlıklı bir biçimde gerçekleştiğinin bir göstergesidir.
301 Durum Kodu: Bu durum kodu da karşımıza sıklıkla çıkan durum kodlarından sadece bir tanesidir. Girdiğimiz bir web sayfasının kalıcı olarak bir başka web sayfasına yönlendirildiğini 301 durum kodu ile anlayabiliriz. Web sayfasına giriş yapıldığında otomatik bir yönlendirme sağlayan 301 durum kodu sorunsuz bir yönlendirme sağlamak için sıklıkla kullanılır. 301 durum kodunu kullanan sayfalar web sayfalarındaki güç kaybını en aza indirgemeye çalışır. Bu sebeple taşınan web sayfalarının 301 durum kodunu kullanması tavsiye edilir.
302 Durum Kodu: Bir web sayfasının tamamen değil geçici bir biçimde başka bir web sayfasına taşındığını ifade eden durum kodlarıdır. 301 yönlendirme kodundan farklı işler. 301 kodunda sayfanın tamamen taşınması söz konusudur. Fakat 302 durum kodunda sayfa farklı sebeplerden dolayı geçici bi süreliğine başka bir sayfaya taşınmıştır. Bu sebepler sayfanın test aşamasında olması, geçici bir problem ile karşılaşılması, sayfanın bakıma alınması gibi durumlar olabilir. Bu durum kodları arasındaki fark kullanıcılar tarafından anlaşılamayabilir. Çünkü her iki durum kodunda da kullanıcılar başka bir web sayfasına otomatik bir şekilde yönlendirilir.
403 Durum Kodu: Kullanıcıların bir web sayfasına girmek istedikleri zaman sunucuya gönderilen erişim isteğinin reddedilmesi durumudur. Bu erişim isteğine karşı ilgili web sayfasına erişim yasağının olduğunu ya da erişim izninin bulunmadığını ifade eden durum kodlarıdır.
404 Durum Kodu: En sık karşılaşılan durum kodu 404 desek hiç de abartılı bir tanım olmaz. Çoğu zaman karşımıza çıkan ve en aşina olduğumuz durum kodları arasındadır. Kullanıcıların erişmek istediği web sayfasının ilgili sunucu tarafından bulunamamasını ifade eden durum kodlarıdır. Bulunamama durumu web sayfasının silinmiş ya da URL (Uniform Resource Locator) değişikliğine uğramış olduğunu gösterir. 404 durum kodları sayfanın geçici ya da kalıcı olarak ulaşılamadığı hakkında herhangi bir fikir vermez. Kullanıcılar 404 durum kodu ile karşılaşmaları halinde siteyi direkt olarak terk ederler. Özellikle kullanıcı trafiği yoğun olan siteler bu durumda fazlasıyla ziyaretçi kaybedecektir. Bu ziyaretçi kaybı ile karşı karşıya kalmamak için web siteleri 404 durum kodundan hemen sonra bağlantılı bir başka web sayfasına yönlendirme yapmalıdır. İlgili web sayfası kısa bir süre pasif durumda kalacaksa yani ulaşılamayacak ise sayfanın 404 durum kodu ile sabit kalması daha doğru olacaktır. 404 durum kodu ile bırakılan sayfalar kullanıcılarını kaybetmemeye özen göstermelidir. Ulaşılamayan web sitelerinin ilgili bir web sayfasına yönlendirilmesi kullanıcıların web sayfasını terk etmelerini en aza indirgeyen durumlardan biridir.
410 Durum Kodu: Kullanıcıların erişmek istedikleri web sitelerinin kalıcı bir biçimde ulaşılamaz olduğunu ifade eden durum kodlarıdır. 404 durum kodundan farklı bir şekilde web sitesinin artık tamamen ulaşılamaz olduğunu, kesin ve kalıcı bir biçimde silindiğini belirtir. Arama motoru botları 410 durum kodu içeren herhangi bir web sayfası ile karşılaşmaları durumunda bu web sayfalarını ilgili arama dizininden hızlı bir biçimde çıkarırlar.
500 Durum Kodu: Bazı durum kodları sunucu kaynaklı olarak gönderilir. Sunucu kaynaklı problemlerde karşı karşıya kalınan durum kodu ise 500 durum kodudur. Sunucu ile ilgili bazı problemler olduğunu ve işlerin başarılı bir şekilde ilerlemediğini ifade eder. 500 durum kodu içeren web siteleri sunucudan kaynaklı bu hatayı hemen telafi etmelidir. Çünkü bu ve benzeri durumlarda arama motoru botunun erişemediği web siteleri kaldırılır, kullanıcıya sunulması doğru bulunmaz. 503 Durum Kodu: Bu durum kodunda da sunucu tarafından geçici bir sorun olduğu anlaşılır. 503 durum kodu genellikle sunucuların bakımda olduğu zamanlarda ya da fazla yükleme yapıldığı durumlarda geçici olarak devre dışı kalan sitelerde karşımıza çıkar. 503 durum koduna verilebilecek en güzel örneklerden biri de ÖSYM sitesidir. Sınavların açıklandığı günlerde ÖSYM sitesine ulaşım neredeyse imkansız hale gelir. Çünkü milyonlarca öğrenci aynı anda sınav sonucunu öğrenmek için siteye giriş yapmaya çalışır. Bunun yanı sıra kötü niyetli kişiler tarafından saldırılarda da site geçici süreliğine devre dışı kalabilir. Bu saldırı ve benzeri durumlarda siteyi ziyaret etmek isteyen kullanıcılar 503 durum kodu ile karşı karşıya kalmaktadır.
Nadir Karşılaşılan HTTP Durum Kodları
Yukarıda sıklıkla karşılaşılan durum kodlarını inceledik. Bazı durum kodları ile sıklıkla karşılaşırız fakat sıklıkla karşılaşmasak bile bazen karşımıza çıkan durum kodları da oluyor. Şimdi de ara sıra karşılaştığımız durum kodlarının ne anlama geldiğini inceleyelim!
100 Durum Kodu: Tarayıcının sunucuya gönderdiği istek başlığının sunucuya iletildiğini ve istek gövdesinin hazır olduğunu belirten koddur.
101 Durum Kodu: Tarayıcıların sunucudan istedikleri protokol değişikliğinin kabul edildiğini ve bu isteğin gerçekleşeceğini belirten durum kodudur.
103 Durum Kodu: Son istek iletisinden hemen önce bazı başlıkların döndürüldüğü anlamına gelen durum kodudur.
200 Durum Kodu: Tarayıcıda ve sunucuda herhangi bir sorun ile karşılaşılmadığını belirten durum kodudur. Her şeyin yolunda gittiği anlamına gelir.
201 Durum Kodu: İsteğin sunucu tarafından yerine getirildiğini ifade eder. Bu istek ile yeni bir kaynak oluşturulduğu anlamını taşır.
202 Durum Kodu: Tarayıcı tarafından sunucuya gönderilen isteğin kabul edildiği ve işlemin başladığı anlamına gelen durum kodudur. Bu işlem olumlu ya da olumsuz şekilde sonuçlanabilir.
203 Durum Kodu: Kaynak sunucudan alınan olumlu dönüş olmasına rağmen işlem sırasında sunucu kaynağının yanıt değiştirmesi anlamını taşır. Yani olumlu olarak devam eden iletişimin bir anda olumsuza dönmesi ve erişimin sıkıntılı olmasını ifade eder.
204 Durum Kodu: Sunucuya gönderilen isteğin başarılı bir şekilde iletildiğini fakat herhangi bir içeriği döndüremeyeceğini ifade eder.
205 Durum Kodu: 204 durum kodu ile benzerlik taşır. Burada tek fark tarayıcının belge görünümünü sıfırlaması gerektiğidir.
206 Durum Kodu: Tarayıcının indirilmesi durdurmuş ögeleri indirmeye devam etmesini sağlayan durum kodudur. Bu durum kodu aynı zamanda indirmeleri birden fazla akışa ayırabilir.
300 Durum Kodu: Tarayıcının isteğini yerine getiren sunucunun birden fazla kaynağa sahip olduğunu belirten durum kodudur. Bu durum kodunda seçim yapma gerekliliği doğar.
303 Durum Kodu: POST, PUT ya da DELETE aracılığı ile talep edilen kaynağın bulunduğunu ifade eden durum kodudur.
304 Durum Kodu: Ön bellekte herhangi bir değişim olmadığını tarayıcıya belirten durum kodudur.
307 Durum Kodu: Bir kaynağın geçici olarak başka bir kaynağa taşındığını ifade eder. Fakat 302 durum kodundan farklı olarak HTTP yönetiminin değişmesi gibi bir durum söz konusu değildir.
308 Durum Kodu: Bir kaynağın kalıcı bir şekilde başka bir web sitesine aktarıldığını ifade eder. Fakat bu durum kodu da 301 durum kodundan farklı olarak HTTP yönetiminin değişimine herhangi bir izin sağlamaz.
400 Durum Kodu: Sunucunun tarayıcı hatası sebebiyle isteği işleyemediği durumları ifade eden durum kodudur.
401 Durum Kodu: Ziyaretçilerin bir web sitesini ziyaret etmek istedikleri zaman kaynağın geçerli kimlik doğrulama bilgilerine sahip olmaması durumunda 401 durum kodu ile karşılaşılır.
402 Durum Kodu: Ödeme gereken ve geleceğe dönük rezerve ödeme durumu olduğu zaman karşımıza çıkan durum kodudur.
405 Durum Kodu: Kaynağa erişim için istenen iznin desteklenmediği durumları ifade eder.
407 Durum Kodu: Bir proxy sunucu ile kimlik doğrulaması istenen durumlarda döndürmeyi sağlayan durum kodudur.
408 Durum Kodu: Sunucuya iletilen isteklerde bazen zaman aşımı kavramı karşımıza çıkar. İşte zaman aşımına uğranılan durumlarda karşılaşılan durum kodu 408 durum kodudur.
409 Durum Kodu: Herhangi bir anlaşmazlık ya da uyuşmazlık sebebi ile isteğin tamamlanmaması anlamına gelir.
411 Durum Kodu: İstenen kaynak için bir uzunluğun belirtilmediği durumlarda karşılaşılan durum kodlarıdır.
412 Durum Kodu: Sunucuya gönderilen istekte ön koşulların sunucu tarafından sağlanamadığı durumlarda karşılaşılan durum kodlarıdır.
413 Durum Kodu: İstek boyutunun büyük olması sebebiyle sunucunun isteği karşılayamaması durumlarında 413 durum kodu ile karşılaşılır.
414 Durum Kodu: Sunucu tarafından işlenemeyecek kadar büyük bir sorgu dizini bulunduran GET isteği gibi durumlarda 414 durum kodu ile karşılaşılır.
415 Durum Kodu: Tarayıcı tarafından sunucuya gönderilen isteğin desteklenmeyen bir ortam türü içerdiğini ifade eder.
416 Durum Kodu: Dosyanın herhangi bir bölümünün sunucuya bağlanmaması durumunda karşılaşılan durum kodudur.
417 Durum Kodu: Sunucunun tarayıcıdan gelen istekleri bekleme başlığı alanında karşılayamamasını ifade eder.
422 Durum Kodu: Bu durum kodu da anlamsal hata içeren isteklerin sunucu tarafından işlenmemesini ifade eder.
425 Durum Kodu: Sunucunun yeniden oynatılabilen istekleri işleme riskini almaması durumunda karşılaşılan kodlardır.
426 Durum Kodu: Bazı durumlarda isteklerde yükseltme talep edilebilir. Bu durumda farklı bir protokole geçilmesi gereklidir. Böyle isteklerde karşılaşılan durum kodu 426’dır.
428 Durum Kodu: Sunucuya gönderilen isteğin işlenmesinden önce koşulların belirlenmesi gerektiğini ifade eden durum kodlarıdır.
429 Durum Kodu: Web sayfası kullanıcılarının belirli bir süre içerisinde birden fazla kez istek göndermesi sonucunda hız sınırlayıcı oluşturulduğunu ifade eden durum kodlarıdır.
431 Durum Kodları: Üst bilginin sınırları zorlaması sebebiyle sunucunun isteği işleyememesini ifade eder.
501 Durum Kodu: Sunucunun talep edilen isteği yönetemediğini ya da işlevini gerçekleştiremediğini belirten bir durum kodudur.
502 Durum Kodu: Sunucunun bir başka sunucuya gönderdiği isteğin olumsuz sonuçlanması durumunda ortaya çıkan durum kodudur.
504 Durum Kodu: Bir isteğin işlendiği sırada bir sunucunun bir diğer sunucudan yanıt beklediği sürede isteğin zaman aşımına uğraması durumunu ifade eder.
505 Durum Kodu: HTTP protokol sürümünün desteklenmediğini ifade eder.511 Durum Kodu: Kullanılmak istenen herhangi bir ağın istek öncesinde sunucuya kimlik doğrulaması yoluyla denetim yapması gerektiğini ifade eden durum kodlarıdır.