# HTTP Durum Kodu

Adres: https://softwaredictionary.org/tr/terimler/http-status-code
Kategori: Web Geliştirme
Son güncelleme: 2026-09-30
İngilizcesi: HTTP Status Code
Okunuşu: eyç-ti-ti-pi steytıs kod

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: `1xx` bilgi, `2xx` başarı, `3xx` yönlendirme, `4xx` istemci hatası, `5xx` sunucu hatası.
- `4xx` hatası isteğin değişmesi gerektiği; `5xx` hatası ise sunucunun başarısız olduğu anlamına gelir.
- `401` kimliğin doğrulanmadığını, `403` ise doğrulandığı ama izin verilmediğini gösterir.
- API'ler her yanıt için `200 OK` yerine doğru kodları döndürmelidir.

## Örnek: fetch ile durum kodlarını işlemek

```javascript
// 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.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
