DevBento logoDevBento
Araçlar/HTTP Durum Kodları/Hangi HTTP Durum Kodunu Kullanmalıyım? Karar

Hangi HTTP Durum Kodunu Kullanmalıyım? Karar

API'niz için doğru HTTP durum kodunu seçmeye yönelik interaktif karar kılavuzu. Gerçek dünya örnekleriyle başarı, hata ve yönlendirme yanıtlarını kapsar.

1xx Bilgilendirme

(4)

2xx Başarılı

(10)

3xx Yönlendirme

(7)

4xx İstemci Hatası

(29)

5xx Sunucu Hatası

(11)
61 / 61 durum kodu
İlgili Araçlar
%20URL Kodlayıcı ve HTML Varlık Dönüştürücü
Metinleri encodeURIComponent veya encodeURI ile kodlayın, HTML özel karakterlerini varlıklara dönüştürün. İşlemler tarayıcınızda gerçekleşir.
jwtJWT Çözücü
Decode auth headers on error responses
shaHash Oluşturucu
Metin veya dosyalardan MD5, SHA-1, SHA-256 ve SHA-512 hashleri üretin. Web Crypto API ile hesaplanır. Tüm işlemler tarayıcınızda istemci tarafında çalışır.
{}JSON Formatlayıcı ve Doğrulayıcı
JSON verilerini güzel yazdırma, küçültme ve doğrulama aracı. Sözdizimi vurgulama, interaktif ağaç görünümü ve satır numaraları ile anlık hata tespiti.
+/-Metin Karşılaştırma Aracı (Diff Checker)
İki metin bloğunu yan yana veya satır içi görünümde karakter düzeyinde vurgulama ile karşılaştırın. Eklemeleri, silmeleri ve değişiklikleri anında bulun.
/re/Regex Test Aracı
Match error message patterns

Karar Ağacı

Buradan başlayın ve durumunuza uyan yolu izleyin.

İstek başarılı oldu mu?

Evet ve veri döndürüyorum -> 200 OK Varsayılan başarı yanıtı. Veri döndüren GET istekleri, eylem gerçekleştiren POST istekleri ve sonucu güncelleyip döndüren PUT/PATCH istekleri için kullanın.

Evet ve yeni bir kaynak oluşturdum -> 201 Created POST veya PUT yeni bir şey oluşturduktan sonra kullanın. Yeni kaynağın URL’si ile bir Location başlığı ekleyin.

Evet ancak döndürülecek gövde yok -> 204 No Content Başarılı DELETE istekleri veya istemcinin güncellenmiş kaynağa ihtiyacı olmadığı PUT/PATCH için kullanın. Yanıtın gövdesi yoktur.

Evet ancak bunu zaten yaptım -> 200 OK veya 204 No Content Kaç kez çağrıldığına bakılmaksızın son durumun aynı olduğu idempotent işlemler (PUT, DELETE) için, ilk çağrıda döndüreceğiniz aynı başarı kodunu döndürün.

Kabul edildi ancak henüz bitmedi -> 202 Accepted Sunucu isteği eşzamansız işleme için kuyruğa aldığında kullanın. İstemci daha sonra yoklamalı veya bir geri arama almalıdır. Uzun süren işler, toplu işlemler veya webhook teslimatları için iyidir.


İstemcinin başka bir yere gitmesi gerekiyor mu?

Kalıcı olarak taşındı -> 301 Moved Permanently Kaynağın kalıcı olarak yeni bir URL’si var. Tarayıcılar ve arama motorları kayıtlarını günceller. GET istekleri için güvenlidir. Not: bazı eski istemciler yönlendirmede POST’u GET’e değiştirir.

Kalıcı olarak taşındı, yöntemi koru -> 308 Permanent Redirect 301 gibi, ancak HTTP yönteminin korunmasını garanti eder. Bir POST, POST olarak kalır. Yöntem korumanın önemli olduğu durumlarda kullanın (API yönlendirmeleri).

Geçici olarak taşındı -> 302 Found Kaynak geçici olarak farklı bir URL’de. Tarayıcılar bunu oturum için önbelleğe alır ancak daha sonra tekrar kontrol eder. Pratikte en yaygın geçici yönlendirme.

Geçici olarak taşındı, yöntemi koru -> 307 Temporary Redirect 302 gibi, ancak HTTP yöntemini korur. Bir POST’un POST olarak kalması gereken geçici API yönlendirmeleri için kullanın.

Diğerine bak -> 303 See Other Bir POST’tan sonra istemciyi bir GET uç noktasına yönlendirmek için kullanın. Yaygın desen: POST /orders, Location: /orders/123 ile 303 döndürür, ardından istemci yeni siparişi GET’ler.


Sorun istemci tarafında mı?

Hatalı istek -> 400 Bad Request İstek sözdizimi yanlış. Geçersiz JSON, eksik Content-Type, kodu çözülemeyen gövde. İstemcinin yeniden denemeden önce isteği düzeltmesi gerekir.

Kimlik doğrulanmamış -> 401 Unauthorized Kimlik bilgisi sağlanmamış veya kimlik bilgilerinin süresi dolmuş/geçersiz. İstemci kimlik doğrulamalı (giriş, token yenileme) ve yeniden denemelidir.

Kimlik doğrulanmış ancak izin yok -> 403 Forbidden Sunucu istemcinin kim olduğunu biliyor ancak izni yok. Yeniden kimlik doğrulama işe yaramaz. Rolleri/izinleri kontrol edin.

Kaynak mevcut değil -> 404 Not Found URL herhangi bir kaynakla eşleşmiyor. Ayrıca, istemcinin bilmesine izin verilmeyen kaynakların varlığını gizlemek için yaygın olarak kullanılır (403 yerine).

Yanlış HTTP yöntemi -> 405 Method Not Allowed Uç nokta mevcut ancak bu yöntemi desteklemiyor. Örnek: salt okunur bir uç noktada DELETE denemesi. Geçerli yöntemleri listeleyen bir Allow başlığı ekleyin.

Geçerli durumla çakışma -> 409 Conflict İstek, kaynağın mevcut durumuyla çakışıyor. Yaygın kullanımlar: yinelenen oluşturma denemeleri, iyimser kilitleme hataları (sürüm uyuşmazlığı), durum makinesi ihlalleri (zaten yayınlanmış bir gönderiyi yayınlamaya çalışmak).

Kaynak silindi -> 410 Gone 404 gibi, ancak sunucu bu kaynağın eskiden var olduğunu ve kasıtlı olarak kaldırıldığını bilir. Arama motorları ve önbellekleme için 404’ten daha güçlü sinyal.

Doğrulama hatası -> 422 Unprocessable Entity Sözdizimi geçerli (düzgün JSON) ancak içerik yanlış. Eksik gerekli alanlar, yanlış veri türleri, aralık dışı değerler. İş mantığı doğrulama hataları için kullanın.

Çok fazla istek -> 429 Too Many Requests Hız sınırlaması. İstemciye ne zaman tekrar deneyeceğini söyleyen bir Retry-After başlığı ekleyin.


Sorun sunucu tarafında mı?

Beklenmeyen sunucu hatası -> 500 Internal Server Error Bir şey bozuldu. İşlenmeyen istisna, null pointer, yapılandırma hatası. “Bu bizim hatamız” için genel yakalama. Hatayı günlüğe kaydedin, dahili bilgileri istemciye ifşa etmeyin.

Uygulanmadı -> 501 Not Implemented Sunucu bu işlevselliği desteklemiyor. Tanımlanmış ancak henüz oluşturulmamış uç noktalar veya sunucunun tanımadığı HTTP yöntemleri için kullanın.

Üst hizmet başarısız oldu -> 502 Bad Gateway Sunucu bir proxy/ağ geçidi olarak hareket ediyor ve üst hizmetten geçersiz bir yanıt aldı. Bir arka uç çöktüğünde yük dengeleyiciler ve ters proxyler ile yaygındır.

Hizmet aşırı yüklü veya bakımda -> 503 Service Unavailable Sunucu şu anda isteği işleyemiyor. Aşırı yüklenmiş, bakımda veya başlatılıyor olabilir. Ne zaman geri döneceğini biliyorsanız bir Retry-After başlığı ekleyin.

Üst hizmet zaman aşımı -> 504 Gateway Timeout Sunucu bir proxy olarak hareket ediyor ve üst hizmet zamanında yanıt vermedi. 408’den (istemci zaman aşımı) farklıdır: 504, sunucunun kendi üst hizmetinin zaman aşımına uğradığı anlamına gelir.


Hızlı Başvuru Tablosu

Başarı (2xx)

Kod Adı Ne zaman kullanılır
200 OK Varsayılan başarı, veri döndürme
201 Created Yeni kaynak oluşturuldu (Location başlığı ekleyin)
202 Accepted Eşzamansız işleme başlatıldı
204 No Content Başarılı, gövde yok (DELETE, unut ve yürüt PUT)

Yönlendirme (3xx)

Kod Adı Yöntemi korur? Kalıcı?
301 Moved Permanently Hayır (GET’e geçebilir) Evet
302 Found Hayır (GET’e geçebilir) Hayır
303 See Other Her zaman GET’e geçer Yok
307 Temporary Redirect Evet Hayır
308 Permanent Redirect Evet Evet

İstemci Hatası (4xx)

Kod Adı Ne zaman kullanılır
400 Bad Request Hatalı sözdizimi
401 Unauthorized Eksik veya geçersiz kimlik bilgileri
403 Forbidden Kimlik doğrulandı ancak izin yok
404 Not Found Kaynak mevcut değil
405 Method Not Allowed Yanlış HTTP yöntemi
409 Conflict Durum çakışması (yinelenenler, sürüm uyuşmazlığı)
410 Gone Kaynak kalıcı olarak kaldırıldı
422 Unprocessable Entity Geçerli sözdizimi, geçersiz veri
429 Too Many Requests Hız sınırlaması

Sunucu Hatası (5xx)

Kod Adı Ne zaman kullanılır
500 Internal Server Error İşlenmeyen sunucu hatası
502 Bad Gateway Üst hizmet geçersiz yanıt döndürdü
503 Service Unavailable Aşırı yüklü veya bakımda
504 Gateway Timeout Üst hizmet zamanında yanıt vermedi

Yaygın API Desenleri

REST CRUD işlemleri

İşlem Yöntem Başarı kodu Hata kodları
Kaynakları listele GET 200 401, 403
Bir kaynağı getir GET 200 401, 403, 404
Kaynak oluştur POST 201 400, 401, 403, 409, 422
Tam güncelle PUT 200 veya 204 400, 401, 403, 404, 422
Kısmi güncelle PATCH 200 veya 204 400, 401, 403, 404, 422
Kaynak sil DELETE 204 401, 403, 404

Eklemeye değer başlıklar

Durum kodu Önerilen başlık
201 Location: /resource/id
301, 302, 307, 308 Location: https://new-url
405 Allow: GET, POST
429 Retry-After: 60
503 Retry-After: 300
🔒

Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.

© 2026 devbento.dev · yerel olarak geliştirildiChangelog