HTTP Durum Kodu
- İngilizcesi
- HTTP Status Code
- Okunuşu
- eyç-ti-ti-pi steytıs kod
Günlük kullanımda iki ad da yaygın.
Kısaca
HTTP durum kodu, sunucunun her yanıtla gönderdiği ve isteğin başarılı mı, başarısız mı olduğunu ya da ek işlem mi gerektirdiğini bildiren üç haneli sayıdır.
HTTP durum kodu (status code) nedir?
Her HTTP yanıtı, isteğe ne olduğunu özetleyen üç haneli bir sayı olan durum koduyla başlar. Tarayıcı, uygulama ya da betik, sayfayı göstermek, bir yönlendirmeyi izlemek veya bir hata görüntülemek gibi sonraki adıma karar vermek için bu sayıyı okur. Kodun yanında, insanlar için onu tanımlayan 404 Not Found gibi kısa bir açıklama ifadesi (reason phrase) de bulunur.
İlk hane her kodu beş sınıftan birine yerleştirir: 1xx bilgilendirme, 2xx başarı, 3xx yönlendirme, 4xx istemci hatası ve 5xx sunucu hatası. Yaygın örnekler arasında 200 OK, 201 Created, 301 Moved Permanently, 304 Not Modified, 400 Bad Request, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error ve 503 Service Unavailable bulunur. Kodlar HTTP spesifikasyonunda (RFC 9110) tanımlıdır; böylece her istemci ve sunucu onları aynı şekilde yorumlar.
Durum kodları, kargo şirketinin bıraktığı kısa notlara benzer: teslim edildi, yeni adrese taşındı, adres yanlış ya da depo kapalı. En yararlı ayrım son iki sınıf arasındadır: 4xx kodu istemcinin yanlış bir şey gönderdiği ve isteği değiştirmesi gerektiği anlamına gelir; 5xx kodu ise istek doğru olsa bile sunucunun başarısız olduğunu gösterir.
Sık karıştırılan iki kod 401 Unauthorized ve 403 Forbidden'dır. Adına rağmen 401, örneğin bir oturum token'ı eksik veya süresi dolmuş olduğu için istemcinin kimliğinin doğrulanmadığı anlamına gelir; 403 ise sunucunun istemcinin kim olduğunu bildiği ama eyleme izin vermediği anlamına gelir. Bir diğer yaygın hata, gövdede hata mesajı olan bir 200 OK döndürmektir; bu, hataları istemcilerden, izleme araçlarından ve önbelleklerden gizler.
Önemli noktalar
- Her HTTP yanıtı üç haneli bir durum kodu içerir.
- İlk hane sınıfı verir:
1xxbilgi,2xxbaşarı,3xxyönlendirme,4xxistemci hatası,5xxsunucu hatası. 4xxhatası isteğin değişmesi gerektiği;5xxhatası ise sunucunun başarısız olduğu anlamına gelir.401kimliğin doğrulanmadığını,403ise doğrulandığı ama izin verilmediğini gösterir.- API'ler her yanıt için
200 OKyerine doğru kodları döndürmelidir.
Örnek
// Check the status code before using the response
const response = await fetch("https://api.example.com/users/42");
if (response.ok) { // true for any 2xx status
const user = await response.json();
console.log(user.name);
} else if (response.status === 404) {
console.log("User not found");
} else if (response.status >= 500) {
console.log("Server error, try again later");
} else {
console.log(`Request failed with status ${response.status}`);
}Sık sorulan sorular
401 ile 403 arasındaki fark nedir?
401 Unauthorized, isteğin geçerli bir kimlik doğrulaması içermediği anlamına gelir; istemci oturum açmalı ya da geçerli bir token göndermelidir. 403 Forbidden ise sunucunun istemcinin kim olduğunu bildiği ama o kullanıcının eylemi gerçekleştirmesine izin verilmediği anlamına gelir.
301 ile 302 yönlendirmesi arasındaki fark nedir?
301 Moved Permanently, tarayıcılara ve arama motorlarına kaynağın kalıcı olarak taşındığını, dolayısıyla bundan sonra yeni URL'yi kullanmaları gerektiğini bildirir. 302 Found ise geçici bir yönlendirmedir; istemciler ileride özgün URL'yi kullanmaya devam etmelidir.
500 hatası ne anlama gelir?
500 Internal Server Error, sunucunun kodundaki yakalanmamış bir istisna gibi sunucuda bir şeylerin ters gittiğini bildiren genel bir koddur. Sorun sunucu tarafındadır; bu yüzden düzeltme genellikle kullanıcı tarafından değil, orada yapılmalıdır.
İlgili sayfalar
- HTTPWeb Geliştirme, s. 20HTTP, tarayıcıların, uygulamaların ve sunucuların basit bir istek-yanıt döngüsüyle web sayfaları ve veri alışverişi yapmasını sağlayan protokoldür.
- REST APIBackend ve API'ler, s. 38REST API, verileri URL'lerle tanımlanan kaynaklar olarak sunan ve istemcilerin onları standart HTTP metotlarıyla okuyup değiştirmesini sağlayan web API'sidir.
- APIBackend ve API'ler, s. 2API, bir yazılımın başka bir yazılımdan veri ya da işlem talep etmesini sağlayan, belgelenmiş ve öngörülebilir kurallar bütünüdür.
- Web TarayıcısıWeb Geliştirme, s. 57Web tarayıcısı, sunuculardan web sayfalarını alıp HTML, CSS ve JavaScript'i ekranda gördüğünüz etkileşimli sayfalara dönüştüren uygulamadır.
- Rate LimitingBackend ve API'ler, s. 37Rate limiting, istemcinin belli bir sürede yapabileceği istek sayısını sınırlayıp sunucuyu ya da API'yi kötüye kullanımdan ve aşırı yükten koruyan tekniktir.
- SEOWeb Geliştirme, s. 40SEO, arama motorlarının bir sitenin sayfalarını bulup anlaması ve ilgili aramalarda sıralaması için içeriği ve teknik altyapıyı iyileştirme pratiğidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin