Bu yazımda en sık kullanılan HTTP durum (status) kodlarına değineceğim. Bu kodlardan bahsetmeden önce HTTP protokolünü anlamakta fayda var.
HTTP protokolü client ile server arasında gerçekleşen haberleşmedir. Bu haberleşme;
- Client, servera istekte bulunur. (request).
- Server ise istekleri yorumlayıp bir cevap dönecektir. (response)
Server tarafından gelen cevaplar, HTTP durum kodları ile belirtilir. Bu kodlar 3 hanelidir ve ilk hanelerine göre farklı gruplara ayrılmaktadır.
- 1XX - Bilgi
Bilgilendirme kodlarıdır. Client ile server arasında bir iletişimin başladığını bildiriyor. SEO işlemlerinde sık kullanılan kodlar değildir.
- 2XX - Başarı
İsteğin başarılı olduğunu belirten durum kodlarıdır. Kaydetme, veri getirme gibi durumlarda istek başarılıysa 2XX türünden kod gönderilir.
- 3XX -Yönlendirme
İstek sonucunda bir geçici, kalıcı bir yönlendirme durumu varsa kullanılması gereken durum kodlarıdır.
- 4XX - İstemci - Client Hatası
Client tarafından gönderilen isteklerden kaynaklı oluşan durum kodlarıdır. Bir kaynağa, web sayfasına, servisine ulaşmaya çalışırken istek yerine getirilmemiş olacaktır.
- 5XX - Sunucu - Server Hatası
Client tarafından gönderilen isteklerde bir sorun olmayıp, sunucuya ulaşmasına rağmen sunucu kaynaklı sorunlardan dolayı dönen durum kodlarıdır.
En çok karşılaşılan durum kodları
Bir yazılımcı olarak API kullanırken, web uygulaması geliştirirken ya da bir kullanıcı olarak sık karşılaşılabilecek durum kodları aşağıdaki gibidir.
200 - OK : İsteğin başarı ile tamamlandığını belirten koddur.
201 - Created : İstek başarılı olup, yeni bir kaynak yaratılmıştır. Veri tabanına bir kayıt eklenmesi örnek olarak verilebilir.
301 - Moved Permanently : Bir web sayfası veya kaynağın kalıcı olarak başka bir yere taşındığı anlamına gelir ve taşınan yere yönlendirmesi sağlayan durum kodudur. ASP.NET MVC mimarisinde RedirectToActionPermanent metodu ile 301 durum kodu ile yönlendirme yapılabilir.
Kaynak: Microsoft
302 - Moved Temporarily : Bir web sayfası veya kaynağın geçici olarak başka bir yere taşındığı anlamına gelir ve taşınan yere yönlendirmesi sağlayan durum kodudur. Bu sayfa yapım aşamasındadır uyarısını gördüğünüz sayfalar bu durum kodları ile yapılmaktadır.
400 - Bad Request: Client tarafından istek gönderilirken yanlış bir söz dizimi veya ifadeden (syntax) dolayı sonuç döndürmediğini belirten durum kodudur.
401 - Unauthorized: Yetkisiz işlem anlamına gelen durum kodudur. Bir kaynağa ulaşmak için yetki verilmesi gerekmektedir. Çeşitli kimlik doğrulama entegrasyonları ile doğrulamanın geçilmesi gerekir.
403 - Forbidden: Client tarafından isteğin başarılı bir şekilde yapılmasına rağmen kaynağa erişim hakkının olmadığını belirten durum kodudur. 401 kodu ile karıştırılmasına rağmen 401 de kullanıcı doğrulaması gerektiği için kaynağa erişim olmazken 403'te doğrulama olmasına rağmen kaynağa erişim hakkı olmayacaktır.
404 - Not Found: Client tarafından erişilmek istenen kaynağın, web sayfasının bulunmadığını belirten durum kodudur. En çok bilinen koddur.
405 - Method Not Allowed: İstek gönderilen HTTP metodunun kabul edilmediğini belirtir. Örneğin API'de liste çeken bir metoda GET ile istekte bulunmamız gerekirken POST ile istek yaparsak 405 kodu gelecektir.
415 - Unsupported Media Type: HTTP metoduna desteklenmeyen formatta istek yapıldığını belirten koddur. Örneğin request body üzerinden Json formatında istek yapabilecekken XML olarak veri gönderdiğimizde bu uyarı gelecektir.
429 - Too Many Request: Client tarafından bir seferde maksimum istek sayısını aştığını belirten durum kodudur. Bir web servisinde bulunan bir metotda dakikada 500 istek gönderilecekken 501. istekte bu kod gösterilebilir. (Rate Limiting)
500 - Internal Server Error: Sunucu tarafında veya yazılımımızda bulunan muhtemel bir hatayı belirtir. Bu yüzden sunucu tarafı client tarafından gelen isteği karşılayamamıştır.
502 - Bad Gateway - Geçersiz ağ geçidi: Bir sunucunun proxy olarak hareket edip istekte bulunurken sunucudan geçersiz bir yanıt aldığını gösterir.
503 - Service Unavailable: Sunucunun geçici olarak hizmet veremediği ve istekleri işleyemediğini belirten durum kodudur. Aşırı isteğin olduğu anda veya bir bakım anında bu uyarıyı verebilir. IIS sunucusunda web sitesine ait application pool durmuşsa bu uyarı ile karşılaşılabilir.
504 - Gateway Timeout: Bir sunucunun başka bir sunucuya bulunduğu isteğin zaman aşımına bulunduğunu belirten durum kodudur. Uygulamanın bulunduğu sunucudan veya uygulamaya ait kodların incelenmesi gerekebilir.
Yorumlar
Yorum Gönder