HTTP Durum Kodları(Status Codes) Nedir?
HTTP Nedir?
HTTP Durum Kodları(Status Codes) Nedir? Bunu öğrenmeden önce HTTP nedir bunu öğrenelim. Hyper Text Transfer Protocol” türkçesi “Hiper Metin Transfer Protokolü“ sunucu(Web Sitelerin Saklandığı Server) ile istemci(Kullanıcı) arasında ki bilgi aktarımının protokolünü belirler. Bu protokol sayesinde rahatlıkla internete erişim sağlayıp, istediğimiz bilgileri elde edebiliriz.
İstemci(Kullanıcı) tarafı web sitesine girmek için bir istekte bulunur. Bunun karşılığı olarak sunucu(Server) tarafından bu isteğe karşılık bir veri gönderilir. Temelde çalışma mantığı bu şekildedir.
HTTP Durum Kodu Nedir?
İstemcinin(Kullanıcı) tarafının talebi üzerine sunucu(Server) tarafından gönderilen verilerin durumunu belirten belirli başlı kodlar bulunmaktadır. Bu kodlara da HTTP durum kodları denir.Durum kodlarının çalışma mantığını etki-tepki ilişkisi ile bağdaştırabilirisiniz. İstemci(Kullanıcı) tarafı olarak bir istekte bulunduk ve bunun karşılığı olarak karşımıza HTTP Durum Kodu geldi.
HTTP Durum Kodları Ne İşe Yarar?
Sunucu ile istemci arasında geçen veri trafiğini yönetmek, yönlendirmek ve durumunu kontrol etmek için kullanılır.
Durum kodları istemci (kullanıcı) tarafını bilgilendirirler.
Sunucu tarafından gönderilen verilerin kullanıcı tarafına aktarımı sürecinde hata mı alındı, alındıysa bu hatanın nereden kaynaklı olduğunu,(Sunucu taraflı bir 5XX hatası mı yoksa web sitesinde aslında bulunmayan ve fazla karakter girişi sonucu oluşan kullanıcı taraflı bir 4XX hatası mı), web sayfası yönlendirmelere uğramış mı ya da her şey istenilen şekilde geçti ve istemci tarafı sunucudan gelen verileri sağlıklı bir şekilde görmeye başladı. Başarılı veri aktarımında kullanılan 200 durum kodu mu gösterildi, bunları HTTP Durum Kodlarına bakarak öğrenebiliriz.
HTTP Durum Kodları Ne Zaman Görülür?
İstemci tarafı çoğu zaman durum kodlarını görmez. Sebebi ise istekte bulunduğu veri sağlıklı şekilde karşısına geldiyse 200(İşlem Başarılı Tamamlandı) durum kodu arka planda işlenir fakat bunu kullanıcıya göstermez.
Durum kodlarından sadece 4XX ve 5XX kodları istemci(Kullanıcı) tarafına gösterilir. Sebebi ise bu kodların hata kodları anlamına gelmesidir. Bir çok kez karşınıza “Web sitesine şu anda ulaşılamıyor”, “Sunucunun yanıt vermesi çok uzun sürdü” gibi hata mesajları çıkmıştır. Özellikle kar tatili dönemlerinde çocukların valilik duyurusunu okumak için aynı anda siteye girmesi gibi normal zamanda trafiğin hiç bu kadar yoğun olmadığı dönemlerde 5XX yani “Sunucu yanıt vermeyi durdurdu” gibi bir hata karşımıza çıkar. Bunun sebebi çok fazla istemcinin(Kullanıcının) sunucudan veri talebinde bulunması ve sunucunun taleplere cevap vermekte zorlanması olarak karşımıza çıkmaktadır.
HTTP Durum Kodları Nasıl Sınıflandırılır?
- 1xx: İstemci (Kullanıcı) tarafından sunucu tarafına isteğin ulaştığını gösteren bilgilendirme amaçlı bir koddur.
- 2xx: İstemci(Kullanıcı) tarafından sunucuya gönderilen isteğin, sunucu tarafından onaylanıp istemci(Kullanıcı) tarafına başarılı şekilde gönderildiğini ifade eden durum kodlarıdır.
- 3xx: Ulaşılması için istemci(kullanıcı) tarafından talepte bulunulan sayfanın başka bir sayfaya taşındığını ve ulaşmak için sayfa yönlendirme işlemi yapıldığını belirten durum kodlarıdır.
- 4xx: İstemci tarafından bulunulan isteğin, sunucu tarafında bir karşılığı olmadığını bu nedenle hata alındığını ifade eden Hata Durum Kodudur.
- 5xx: İstemci tarafından bulunulan isteğin sunucuya ulaştığını fakat sunucu kaynaklı sorunlardan ötürü isteğin gerçekleştirilemediğini belirten hata durum kodudur.
HTTP Durum Kodları ve Anlamları Nelerdir?
- 100: İstemci tarafından gönderilen talebin sunucu tarafından onaylandığını ve talebin işlenmesinin hazır olduğu anlamına gelmektedir.
- 101:İstemcinin sunucudan gönderim protokolünü değiştirmesini istediğini ve sunucu tarafından da onaylandığını gösterir.
- 103: Son istemci talebi sonrasında verilerin döngüye sokulduğunu gösterir.
- 200: İstemci tarafından gönderilen isteğin, sunucu tarafından başarılı şekilde gönderilip, istemci tarafına ulaştığını gösteren Başarılı İşlem Durum Kodudur.
- 201: Sunucu tarafından talep edilen isteğin yerine getirildiği anlamına gelir.
- 202: Sunucunun isteği sıraya aldığı anlamına gelmektedir.
- 203: Başarılı şekilde sunucudan çıkarken, sunucu taraflı kaynak değiştirilmiş.
- 204: Sunucu işlemi onaylandı fakat bir içerik döndürülmeyecektir.
- 205: Sunucu işlemi onayladı fakat bir içerik döndürülmeyecektir. Belge görünümü sıfırlanmalıdır.
- Durdurulmuş indirme işlemlerin devam ettirilmesini ve indirmeleri parçalara ayırması anlamına gelir.
- 300: Sunucunun istemci taraflı işlemi gerçekleştirmesi için birden fazla kaynağa sahip olduğu ve aralarında seçim yapılması gerektiğini belirtir.
- 301 Yönlendirmesi: Sunucu tarafında bir verinin bulunduğu yerin kalıcı olarak değiştirildiği anlamına gelmektedir.
- 302 Yönlendirmesi: Sunucu tarafında bir verinin bulunduğu yerin geçici olarak değiştirildiği anlamına gelir.
- 303:POST metodu kullanılarak istenilen veri kaynağına ulaşıldığını get metodu ile veriyi sunucudan almak için url değiştirilmelidir.
- 304:Tarayıcı önbelleğindeki verilerin değiştirilmediği anlamına gelmektedir.
- 307:Sunucu tarafında ki verinin geçici olarak yer değiştirdiği anlamına gelir. HTTP protokollerinin değişmesini engeller.
- 308:Sunucu tarafında ki verinin kalıcı olarak yer değiştirdiği anlamına gelir. HTTP protokollerinin değişmesini engeller.
- 400: Sunucunun istemci taraflı hatalardan dolayı veriyi kullanamadığı anlamına gelir.
- 401 Hatası: İstemci tarafının görmek istediği veriye ulaşmak için giriş bilgilerinizin doğrulanmadığı anlamına gelmektedir.
- 402: Rezerve edilmiş ve ödeme gerekmektedir.
- 403: Sunucu tarafından talep edilen veri yasaklı olduğunda gösterilmektedir.
- 404 Hatası: Ulaşılmak istenen verinin sunucu tarafından bulunamadığı anlamına gelmektedir.
- 405: Talep edilen veri için talep etme yolu desteklenmediğinde alınan hatadır.
- 406: Sunucu tarafı tarayıcıya veri başlığında talep edilen şekilde veriyi gönderemiyorsa bu hatayı verir.
- 407:Proxy kullanımlarında kimlik doğrulaması veya yetkilendirme gerektiren durumlarda kullanılır.
- 408:Sunucu tarafının isteği beklerken fazla zaman geçmesi durumunda zaman aşımı hatası olarak kullanılır.
- 409: Verilerin uyuşmadığı durumlarda karşılaşılan bir hatadır.
- 410: İstenen verinin sunucusunun kalıcı olarak değiştirildiği anlamına gelmektedir.
- 411:Çağrılan veri için belirli bir uzunluk belirtilmediği durumlarda karşılaşılan hatadır.
- 412: İstemci tarafından talep edilen ön koşulların sunucu tarafından karşılanamadığı anlamına gelmektedir.
- 413: Talep edilen işlemin sunucu tarafından işlenemeyecek kadar büyük olduğu durumlarda karşılaşılan hatadır.
- 414: Sunucunun işlemesini çok zorlaştıracak kadar büyük düzeyde yazılmış sorguların GET metodu kullanılarak istenmesi ile karşılaşılan hata kodudur.
- 415: Gelen talebin sunucu tarafından desteklenmeyen bir dosya biçiminde olması durumunda karşılaşılan hatadır.
- 416:Talep edilen verinin bir kısmının sunucu tarafından karşılanamadığı durumlarda ortaya çıkan bir hatadır.
- 417: Sunucunun istemci taraflı talebin karşılanamadığı durumlarda ortaya çıkan hatadır.
- 422: Mantıksal hata içeren istemci taraflı isteklerde sunucunun cevap veremediği durumlarda ortaya çıkan hatadır.
- 425:Sunucunun döngüye girecek verileri gerçekleştirmemesi durumlarında karşılaşılan hatadır.
- 426: İstemci tarafından gelen talebin istek başlığında ki içeriğin farklı bir protokole geçmesi durumunda ortaya çıkarılan hatadır.
- 428: Sunucunun verileri işlemeden önce koşulların girilmesi gerektiğini belirten hata kodudur.
- 429: İstemci tarafının kısa süre içerisinde çok fazla istek de bulunması durumunda sunucunun kendini güvene almak için kısıtlama uyguladığını anlatan durum kodudur.
- 431: İstemci tarafından gönderilen talebin, Header kısımlarının büyük olması sebebiyle gösterilen hatadır.
- 500: Sunucu kaynaklı sorunlarda gösterilen durum kodudur.
- 501: Sunucunun istenilen veriyi işleyemediği durumlarda gösterilen durum kodudur.
- 502: Sunucular arası bağlantı isteklerinin olumsuz sonuçlanması durumunda gösterilen durum kodudur.
- 503: Sunucunun geçici olarak hizmet vermediği durumlarda gösterilen durum kodudur.
- Sunucular arası işlemlerin uzun sürmesi sonucu zaman aşımına uğraması durumunda ki durum kodudur.
- Kullanılan ağın sunucu ile bağlanması öncesinde kimlik doğrulamasının yapılması gerektiği durumlarda gösterilir.
HTTP Durum Kodları Nasıl Tespit Edilir?
Belirli durum kodları dışında (404, 403,501 vb) durum kodlarının kullanıcılar tarafından ön planda görünmediğini söylemiştik. Çeşitli araçlar kullanarak web siteleri üzerinde uygulanan durum kodlarını görebiliriz. Bu araçlardan bir tanesi httpstatus. Bu aracımız web sayfaları ya da web siteleri üzerinde yapılan yönlendirmeleri görmemizi sağlıyor.
İlk olarak kontrol etmek istediğimiz url adresini kopyalıyoruz sonrasında ise “Check Status” butonuna tıklayarak kontrol işlemini başlatıyoruz. Araç bize url adresinde yönlendirme(3XX), hatalı sayfa(4XX) ya da başarılı(2XX) kodlarından url yapımıza uygun olanı gösteriyor.