HTTP Response Status Codes

HTTP Response Status Codes

Kadir Demirel
5 min readDec 3, 2022

--

Herkese merhaba, bugün sizlerle HTTP Response Status Codes(HTTP Yanıt Durum Kodları) konusunu inceleyeceğiz. Bu yazımı okumadan önce Web Servis Nedir? yazısını okumanızı tavsiye ederim.

HTTP Yanıt Durum Kodları Nedir?

HTTP yanıt durum kodları bir istemciden gelen isteğe karşılık olarak sunucu tarafından verilen üç basamaklı kodlardır. Bu durum kodları, sunucunun istemciden gelen istek üzerinde nasıl çalıştığı, davrandığı ve yanıt verdiği konusunda hızlı bir iletişim aracı olarak hizmet sağlar.

Bu kodlar aynı zamanda IETF Yorum İsteği’nden (RFC’ler) gelen kodları, diğer belirtimleri ve HTTP’nin yaygın uygulamalarında kullanılan bazı ek kodları içerir.

İnternet Tahsisli Numaralar Kurumu (IANA), HTTP durum kodlarının resmi kaydını tutar. Bir HTTP durum kodunun 3 hanesinde, ilk hane durum kodunun kategorisini tanımlarken, son iki hane belirli bir kategori altında belirli bir yanıt türü için atanır. Beş farklı HTTP durum kodu kategorisi vardır ve sunucunun istemciye ilettiği yanıt türüne göre sınıflandırılırlar.

1xx Informational

Bu kategori, talebin alındığını ve anlaşıldığını gösterir. Talep işleme devam ederken geçici olarak verilir. Müşteriyi son bir yanıt beklemesi konusunda uyarır. Mesaj, yalnızca durum satırından ve isteğe bağlı başlık alanlarından oluşur ve boş bir satırla sonlandırılır.

100 Continue

Bu durum kodu, her şeyin yolunda olduğunu ve tarayıcının mevcut istekle devam etmesi gerektiğini şayet bitmişse de yok sayması gerektiğini belirtir.

101 Switching Protocols

Bu durum kodu, bir sunucudan protokolleri ayarlamasının istendiğini gösterir hem de bu eylemin tamamlanacağını onaylar. Kod, isteği onaylar ve bağlantıda kullanılan uygulama protokülünü değiştirmek için yükseltme ileti başlığı alanını kullanarak sunucunun isteği izlemeye hazır olduğunu gösterir.

103 Early Hints

Bu durum kodu, istemcinin atılan istek sonucunda sunucu bir yanıt hazırlarken kaynakları önceden yüklemeye başlamasına izin vermek için bağlantı başlığıyla birlikte kullanılır.

2xx Success

Bu kategoride ki durum kodu bize istemciden gelen isteğin alındığını, anlaşıldığını ve başarıyla işlendiğini söyler.

200 OK

Bu durum kodu, işlemin başarılı olduğunu gösterir.

201 Created

Bu durum kodu, isteğin başarılı olduğunu ve yeni bir kaynağın oluşturulmasıyla sonuçlandığını gösterir.

202 Accepted

Bu durum kodu, istemciden gelen isteğin işleme alınmak üzere kabul edildiğini ancak işlemin tamamlanmadığını veya henüz başlamadığını gösterir.

203 Non-Authoritative Information

Bu durum kodu, istemciden gelen isteğin başarılı olduğunu ancak ekteki yükün, kaynak sunucunun 200 OK yanıtından dönüşen bir proxy tarafından değiştirildiğini gösterir. Başlıkta döndürülen meta bilgi, kaynak sunucudan elde edilen kesin bilgi değildir, yerel veya üçüncü taraf bir yerden toplanır. 203 yanıtı varsayılan olarak önbelleğe alınabilir.

204 No Content

Bu durum kodu, istemciden gelen isteğin başarılı olduğunu, ancak bir gövde döndürmesi gerekmediğini gösterir. 204 yanıtı bir gövde içermez ve bu nedenle her zaman başlık alanından sonraki ilk boş satır tarafından sonlandırılır.

3xx Redirection Codes

Bu kategoride ki durum kodu, istemcinin kaynak için her biri ayrı bir konuma sahip birden çok seçeneği izleyebileceğini gösterir.

300 Multiple Choices

Bu durum kodu, istemcinin kaynak için her biri ayrı bir konuma sahip birden çok seçeneği izleyebileceğini gösterir.

301 Moved Permanently

Bu durum kodu, istenen kaynağın kesin olarak yeni kalıcı URI’ye taşındığını gösterir.

302 Found

Bu durum kodu, istenen kaynağın geçici olarak URI’ye taşındığını gösterir.

303 See Other

Bu durum kodu, yönlendirmelerin yeni yüklenen kaynaklara değil, özel bir sayfaya bağlandığını gösterir.

304 Not Modified

Bu durum kodu, istemci tarafından koşullu bir GET isteği gerçekleştirildiyse ve erişime izin verildiyse ancak belge değiştirilmemişse, sunucunun bu durum koduyla yanıt vermesi gerekir.

307 Temporary Redirect

Bu durum kodu, istenen kaynağın geçici olarak URI’ye taşındığını gösterir. Geçici URI, yanıttaki Konum alanı tarafından verilir. 307 ile 302 Found arasındaki tek fark, 307'nin yeniden yönlendirme isteği yapıldığında method ve body’nin değişmeyeceğini garanti etmesidir.

308 Permanent Redirect

Bu durum kodu, istenen kaynağın kesin olarak URI’ye taşındığını gösterir. Kalıcı URI, yanıttaki Konum alanı tarafından verilir. İstek yöntemi ve gövde değiştirilmeyecek, oysa 301 bazen yanlışlıkla bir GET yöntemine dönüştürülebilir.

4xx Client Error Codes

Bu kategoride ki durum kodu, istemcinin bir hata yapmış gibi göründüğü durumlar için tasarlanmıştır.

400 Bad Request

Bu durum kodu, istemci tarafında yapılan bir hata sebebiyle sunucunun isteği işleyemediğini gösterir.

401 Unauthorized

Bu durum kodu, hedef kaynak için geçerli kimlik doğrulama bilgilerinden yoksun yani yetkisi olmadığını ve bu yüzden isteğin uygulanmadığını gösterir.

402 Payment Required

Bu durum kodu, ileride kullanılmak üzere ayrılmıştır. İlk etapya ödeme sistemlerini etkinleştirmek için oluşturulmuştur ve müşteri ödeme yapana kadar talebin işlenemeyeceğini belirtir.

403 Forbidden

Bu durum kodu, sunucunun isteği anladığını ancak yetkilendirmeyi reddettiğini gösterir. 401 Unauthorized durum koduna benzeyebilir fakat kimlik doğrulama herhangi bir değişim göstermez bundan dolayı yeniden istek atmaya gerek yoktur.

404 Not Found

Bu durum kodu, sunucunun istek URI’si ile eşleşen bir şey bulamadığını gösterir. 404 sayfasına yönlendiren bağlantılara genellikle bozuk(Yanlış Bağlantı) veya ölü bağlantılar denebilir.

405 Method Not Allowed

Bu durum kodu, istemci tarafaındaki istek yönteminin sunucu tarafından bilindiğini ancak hedef sunucu tarafından desteklenmediğini gösterir.

408 Request Timeout

Bu durum kodu, istek sunucunun beklemeye hazır olduğu süreyi aştığı için sunucunun bu kullanılmayan bağlantıyı kapatmak istediğini belirtir.

409 Conflict

Bu durum kodu, hedef kaynağın mevcut durumuyla bir çakışma nedeniyle bir isteğin tamamlanamayacağını gösterir.

410 Gone

Bu durum kodu, hedef kaynağa erişimin artık kaynak sunucuda kalıcı olarak mevcut olmadığını ve hiçbir yönlendirme adresinin bilinmediğini gösterir. Hedef sunucu tarafından kaldırılmış olma ihtimali yüksektir. Bu tarz durumlarda hedef kaynağın kaldırığı veya yönlendirme adresinin değiştiği fark edilirse 404 durum kodu döndürmek en mantıklısı olacaktır.

414 URI Too Long

Bu durum kodu, istemci tarafından sağlanan istek URI’si sunucunun yorumlayabileceğinden daha uzun URI’si olduğu için sunucunun isteği işlemeyi reddettiğini gösterir.

415 Unsupported Media Type

Bu durum kodu, ortam tipinin desteklenmeyen bir biçimde olduğu için sunucunun isteği kabul etmeyi reddettiğini gösterir.

429 Too Many Requests

Bu durum kodu, kullanıcının belirli bir süre içinde hedef kaynağa çok fazla istek gönderdiğini gösterir.

5xx Sunucu hata kodları

Bu kategorideki durum kodları, “5” ile başladığında sunucunun hata yaptığını bildiği veya görevi tamamlayamadığı anlamına gelir.

500 Internal Server Error

Bu durum kodu, sunucunun beklenmeyen bir koşulla karşılaştığı ve isteği gerçekleştirmesini engellediği anlamına gelen bir koddur. Genel bir hata mesajı olarak verilir. Sorunun sunucuyla ilgili olduğu her durumu kapsayabilen genel bir hata mesajıdır

501 Not Implemented

Sunucu, isteği gerçekleştirmek için gereken işlevsellikten yoksundur. Bu yanıt, sunucu istenen yöntemi anlamadığında veya herhangi bir kaynak için destekleyemediğinde döndürülür.

502 Bad Gateway

Bu durum kodu, sunucunun bir ağ geçidi veya proxy olarak çalışırken, isteği yerine getirmeye çalışırken yukarı akış sunucusundan geçersiz bir yanıt aldığını gösterir. 502 kodu, düzeltebileceğiniz bir durum kodu değildir ancak hedef kaynağa bu durumu bildirdiğinizde onların düzeltebileceği bir durumdur.

503 Service Unavailable

Bu durum kodu, sunucunun mevcut anda kullanılmadığını, kapatıldığını veya bakımda olduğunu gösterir. Hedef kaynağın tekrar açılana dek beklemeniz gerekir.

504 Gateway Timeout

Bu durum kodu, sunucunun bir ağ geçidi veya proxy olarak çalışırken URI veya başka bir yardımcı sunucu tarafından belirtilen yukarı akış sunucusundan zamanında yanıt alamadığını gösterir.

Sonuç

Bugün sizlerle beraber istemci sunucu arasında ki iletişimin sonucunda dönen durum yanıt kodlarını inceledik. Bu kodların tabi ki tamamını akılda tutmak oldukça zordur ancak belli başlı kodların bilinmesi ve ihtiyaç halinde diğer kodların ne işe yaradığını araştırıp öğrenmek hepimize oldukça fayda sağlayacaktır. Umarım okuyan herkes için faydalı olmuştur, bir sonra ki yazımda görüşmek üzere.

--

--

Kadir Demirel

Java Software Engineer at Anadolu Sigorta via OdeonTech | Java Developer and Lifetime Learner