Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
HTTP 204, isteğin başarıyla tamamlandığını ancak istemciye gönderilecek bir yanıt gövdesi bulunmadığını belirten başarılı HTTP durum kodudur. Açılımı 204 No Content şeklindedir. Sunucu işlemi gerçekleştirmiştir; yanıt yeni bir belge içeriği taşımaz. API istemcisi gerekiyorsa kendi arayüzünü günceller; 204 tek başına bir arayüz işlemini otomatik yapmaz.

Bu kod özellikle bir kaydın silinmesi, mevcut verinin güncellenmesi veya bir işlemin sonucunun ayrıca içerik gerektirmediği API yanıtlarında kullanılır. Örneğin bir kullanıcı profilini güncelleyen PUT isteği başarılı olduğunda sunucu 204 döndürebilir. İstemcinin güncel profil verisini tekrar yanıt gövdesinde almasına gerek yoksa bu tercih uygundur.

204 yanıtı nasıl çalışır?​


İstemci bir HTTP isteği gönderir. Sunucu isteği işler, işlem başarılıysa durum satırında 204 No Content döner ve yanıt gövdesi göndermez. Yanıt başlıkları yine kullanılabilir; örneğin güncellenen kaydın önbellek bilgileri veya ETag değeri başlıklarda bulunabilir.

204, işlemin başarısız olduğu veya sunucunun yanıt vermediği anlamına gelmez. Tam tersine, sunucu istemciye aktarılacak ek içerik olmadığını bildirir. Bu nedenle 204 yanıtından sonra JavaScript kodunun yanıt gövdesini JSON olarak ayrıştırmaya çalışması hataya neden olabilir.

Aşağıdaki örnekte silme isteğinin sonucunu kontrol edebilirsiniz:

Bash:
curl -i -X DELETE https://example.com/image/123

Bu, yalnızca temsili bir API adresidir; gerçek uygulamada kimlik doğrulama ve ilgili kaydı silme yetkisi gerekir. Sözleşmesi 204 döndüren başarılı bir işlemde beklenen durum satırı şuna benzer:

Kod:
HTTP/1.1 204 No Content

Bu çıktıyı aldıktan sonra istemci tarafında yapılacak işlem genellikle yanıt gövdesi okumadan arayüzü güncellemek, silinen öğeyi listeden kaldırmak veya başarı mesajı göstermektir.

Benzer durum kodlarından farkı​


204 seçiminin doğru olup olmadığını anlamak için yanıtın istemciye veri taşıyıp taşımadığını kontrol edin:
KodAnlamıUygun kullanım
200İstek başarılı, yanıt içeriği olabilirVeri veya JSON döndürülecekse
201Yeni kaynak oluşturulduKayıt veya dosya oluşturma sonrası
202İstek alındı, işlem henüz tamamlanmamış olabilirArka plan veya uzun süren işlemler
204İstek başarılı, yanıt gövdesi yokSilme veya içerik gerektirmeyen güncelleme sonrası
Örneğin silme işlemi tamamlandıysa 204 uygundur. Ancak sunucunun istemciye silinen kaydın ayrıntılarını veya yeni listeyi göndermesi gerekiyorsa 200 daha uygun olabilir. Yeni bir kaynak oluşturulduysa 201, işlem yalnızca kuyruğa alındıysa ve sonucu henüz belli değilse 202 değerlendirilmelidir.

Sunucuda ve istemcide kontrol edilmesi gerekenler​

  1. İşlem gerçekten tamamlandığında 204 döndürün; yalnızca işlemi başlatıp sonucu daha sonra belirleyecekseniz 202 kullanmayı değerlendirin.
  2. 204 yanıtına HTML, JSON veya başka bir gövde eklemeyin. Content-Length başlığını da göndermeyin; değeri 0 olsa bile 204 için bu başlık kullanılmaz.
  3. İstemci kodunda 204 durumunu özel olarak ele alın; yanıt gövdesi olmadığı için doğrudan response.json() çağırmayın.
  4. Sorun teşhisinde curl -i, tarayıcı geliştirici araçları veya sunucu erişim günlükleriyle durum kodunu ve başlıkları kontrol edin.
  5. 204 beklenirken 200 dönüyorsa işlem yine başarılı olabilir; ancak API sözleşmesinin istemcinin beklediği yanıt biçimiyle uyumlu olup olmadığını kontrol edin.

Sık yapılan hatalar​


En yaygın hata, 204 yanıtına JSON hata veya başarı mesajı eklemektir. Yanıt gövdesi gerekiyorsa 200 tercih edilmelidir. İkinci hata, 204'ü 202 ile karıştırmaktır: 204 işlem tamamlandı demektir; 202 ise isteğin kabul edildiğini fakat işlemin tamamlanmasının daha sonra gerçekleşebileceğini ifade eder.

Ayrıca 204'ü web sayfasının boş görünmesini gizlemek için kullanmak doğru değildir. Bir GET isteğiyle sayfa içeriği bekleniyor ancak 204 dönüyorsa sorun genellikle yanlış yönlendirme, eksik uygulama yanıtı, hatalı önbellek veya API sözleşmesindeki uyumsuzluktur. 204 kodu sezgisel önbellekleme için uygundur; fakat isteğin metodu ve açık önbellek kuralları da geçerlidir. Örneğin DELETE yanıtı bu yüzden kendiliğinden önbelleğe alınmaz. Gereken Cache-Control politikasını belirleyin.

Sık sorulan sorular​


HTTP 204 SEO açısından hata mıdır?​


Bir API isteğinde kullanılıyorsa hata değildir. Ancak tarayıcıda açılan normal bir sayfanın HTML içeriği yerine sürekli 204 dönmesi, ziyaretçiye gösterilecek içerik olmadığı anlamına gelir ve uygulama yapılandırması incelenmelidir.

204 ile 205 aynı davranışı mı ister?​


Hayır. 204 mevcut belge görünümünü koruyarak başarı bildirebilir. 205 Reset Content ise istemciden form gibi belge görünümünü başlangıç durumuna döndürmesini ister. Uygulamanın arayüz davranışını bu farkı dikkate alarak tasarlayın.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic