İyi tasarlanmış bir web uygulaması kullanıyorsunuz. Listenizden bir öğeyi siliyorsunuz, bir ayarı güncelliyorsunuz veya bir görevi tamamlandı olarak işaretliyorsunuz. Eylem anında ve sorunsuz bir şekilde gerçekleşiyor. Gösterişli bir "Başarılı!" mesajı yok, ekranda yeni veri yüklenmiyor, sadece yapmayı amaçladığınız şeyin yapıldığına dair sessiz, kendinden emin bir onay var.
Bu zarif, minimalist kullanıcı deneyimi genellikle en çok yanlış anlaşılan ve değeri bilinmeyen HTTP durum kodlarından biri tarafından desteklenir: 204 İçerik Yok
.
Her zaman söyleyecek bir şeyi olan geveze kuzeni 200 Tamam
'ın aksine, 204
durum kodu HTTP dünyasının güçlü, sessiz tipidir. Bu, sunucunun basit bir onay, bir baş sallama şeklidir. Der ki: "İsteğinizi başarıyla işledim. Size geri gönderecek hiçbir şeyim yok ve tam da böyle olması gerekiyor."
Peki, ne anlama geliyor? Neden var? Ve daha da önemlisi, API'lerinizde nasıl kullanmalısınız?
API'ler veya web uygulamaları geliştiren bir geliştiriciyseniz, 204 İçerik Yok
'u anlamak ve doğru bir şekilde uygulamak, profesyonelliğin bir işaretidir ve verimli, temiz ve öngörülebilir sistemler oluşturmanın anahtarıdır.
204 İçerik Yok
'un gerçek dünya API'lerinde nasıl çalıştığını denemek isterseniz, özel bir sunucu kurmanıza gerek yok. Bunun yerine, ücretsiz bir API test ve dokümantasyon aracı olan Apidog'a kesinlikle göz atmalısınız. Apidog, API'lerinizi test etmeyi ve 204 gibi farklı durum kodlarının gerçek senaryolarda nasıl davrandığını tam olarak görmeyi kolaylaştırır. Ayrıca, ekibinizle sorunsuz bir şekilde belge oluşturmanıza ve işbirliği yapmanıza yardımcı olur. Apidog'u ücretsiz indirin ve 204 durum kodunu keşfederken API yanıtlarınız hakkında daha net, uygulamalı bir anlayış edinin!
Şimdi, HTTP 204 İçerik Yok'u basit bir dille açıklayalım ve neden önemli olduğuna derinlemesine bakalım.
HTTP 204 İçerik Yok Gerçekte Ne Anlama Geliyor?
204 İçerik Yok durum kodu, istemciye isteğin başarılı olduğunu, ancak sunucunun yanıt gövdesinde herhangi bir içerik göndermediğini bildirir. Bu ilk başta garip gelebilir — veri göndermeden bir istek nasıl başarılı olabilir? Ancak aslında, bu web geliştirmede çok kullanışlı ve kasıtlı bir sinyaldir. Resmi tanım (RFC 7231'den) kısadır:
Anahtar kısımları inceleyelim:
- "Sunucu isteği başarıyla yerine getirdi...": Bu çok önemli. Bu tam bir başarı kodu. Silme, güncelleme veya geçiş gibi işlem sorunsuz bir şekilde tamamlandı.
- "...gönderilecek ek içerik yok...": Sunucunun söyleyecek bir şeyi yok. Bu başarıyı iletmek için istemciye geri aktarılması gereken hiçbir veri yok.
- "...yanıt yükü gövdesinde.": Yanıtın başlıkları ve bir durum satırı olacak, ancak gövde kasıtlı olarak boş olacaktır. Bu, bant genişliğinden ve işlem süresinden tasarruf sağlar.
Uygulamada, bir 204
yanıtı şöyle görünür:
HTTP/1.1 204 No ContentX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999
Hepsi bu. Gövde yok. Content-Length
başlığı yok. Sadece temiz, verimli bir onay.
Bir istemci, örneğin form verilerini gönderdikten, bir kaynağı sildikten veya başka içeriğin gerekli olmadığı bir eylemi gerçekleştirdikten sonra, tam bir yanıt gövdesine ihtiyaç duymayan bir istek gönderdiğinde, sunucu 204 ile yanıt verebilir. Bu, istemciye "İsteğiniz doğru şekilde işlendi, ancak size gösterecek yeni bir şey yok" der.
Klasik bir benzetme: Arkadaşınızdan çöpü dışarı çıkarmasını istediğinizi hayal edin. Yapar, geri gelir ve hiçbir şey söylemez çünkü iş bitti ve rapor edilecek başka bir şey yok. İşte 204 tam olarak budur.
204'ün Temel Özellikleri
İşte 204'ü benzersiz kılan şeyler:
- Bu bir başarı kodudur: İstek başarıyla tamamlandı.
- Gövdeye izin verilmez: Yanıt bir mesaj gövdesi içermemelidir.
- Başlıklar hala mümkün:
Content-Type
veyaETag
gibi başlıklar göndermeye devam edebilirsiniz. - Verimli: Yük olmadığından bant genişliğinden tasarruf sağlar.
204 Durum Kodu Neden Var?
Şunu merak edebilirsiniz: Sunucular, içerik yoksa 200 OK ve boş bir mesaj gövdesi ile yanıt veremez miydi?
İşte 204 durum kodunun neden önemli olduğu:
- Verimlilik: Özellikle mobil veya sınırlı bant genişliğine sahip ağlar için gereksiz veri iletimini azaltır.
- İstemci Davranışı: Bazı istemciler 204 yanıtını boş bir 200 yanıtından farklı yorumlar. Örneğin, tarayıcılar 204 yanıtına göre sayfayı yenilemeye veya yeniden yüklemeye çalışmaz.
- Semantik Netlik: 204, amacı açıkça iletir — istek başarılı oldu, ancak gönderilecek hiçbir içerik yok.
- İstenmeyen UI Değişikliklerinden Kaçınma: Bazı web uygulamalarında, 204 göndermek istenmeyen sayfa yeniden yüklemelerini veya arayüz titremelerini önler.
Özünde, 204, hiçbir içerik değişikliğine gerek olmadığını her iki tarafa da bildirerek sunucu ve istemci arasındaki iletişimi kolaylaştırır.
Neden 204 İçerik Yok'a İhtiyacımız Var?
Şunu merak ediyor olabilirsiniz: Neden sadece 200 OK kullanıp boş bir gövde döndürmeyelim?
Harika bir soru. Cevap, sunucular ve istemciler arasındaki net iletişimde yatıyor.
- 200 OK, bir yanıt gövdesi olabileceğini ima eder.
- 204 İçerik Yok, bunu açıkça belirtir: "Burada içerik yok ve bu kasıtlı."
Bu ayrım, tarayıcılar, mobil uygulamalar veya API tüketicileri gibi istemcilerin bir gövdeyi işlemesi veya ayrıştırması gerekmediğini bilmelerine yardımcı olur.
204 İçerik Yok Ne Zaman Kullanılmalı: Mükemmel Uyum
204
durum kodunu birincil bir senaryoda kullanmalısınız:
İstemcinin isteği başarılı olduğunda ve istemcinin durumunu veya görünümünü, isteğin kendisi tarafından zaten ima edilenin ötesinde herhangi bir şekilde değiştirmesi gerekmediğinde.
Bazı klasik örneklere bakalım:
1. Temel Kullanım Durumu: DELETE İşlemleri
Bu, 204
için en yaygın ve uygun kullanımdır. Bir istemci bir kaynağı sildiğinde, sunucu ne göndermelidir? Silinen kaynak mı? Bu mantıklı değil. "Silindi" diyen bir mesaj mı? 204
durum kodu o mesajdır.
- İstek:
DELETE /api/articles/123
- Yanıt:
204 İçerik Yok
- İstemci Davranışı: İstemci makalenin gittiğini bilir. Yerel UI durumundan kaldırabilir. Başka bilgiye gerek yoktur.
2. PUT/PATCH ile Kaynakları Güncelleme
Bir istemci PUT
veya PATCH
kullanarak bir kaynağı güncellediğinde, zaten istediği kaynağın tam temsiline sahiptir. Güncelleme başarılı olursa, sunucunun genellikle tüm kaynağı geri göndermesine gerek yoktur.
- İstek:
PATCH /api/users/me { "theme": "dark" }
- Yanıt:
204 İçerik Yok
- İstemci Davranışı: İstemci zaten istenen yeni durumu ("theme": "dark") bilir. Güncellemenin başarılı olduğunu varsayabilir ve değişikliği yerel durumuna hemen uygulayabilir. Bir
204
, sunucunun tüm kullanıcı nesnesini geri yansıtmasından daha verimlidir.
3. Geçiş Eylemleri
Bir durumu basitçe değiştiren eylemler 204
için mükemmeldir.
- İstek:
POST /api/notifications/456/mark-as-read
- Yanıt:
204 İçerik Yok
- İstemci Davranışı: İstemci, bildirimin görsel durumunu "okunmadı"dan "okundu"ya UI'da değiştirebilir. Başka veri gerekmez.
204 vs. 200 OK: Kritik Bir Ayrım
Birçok geliştiricinin takıldığı nokta burasıdır. Boş bir gövdeyle sadece 200 OK
kullanmak her zaman uygun mudur?
Teknik olarak evet. Ancak anlamsal olarak, 204
daha iyi, daha kesin bir seçimdir.
- Boş bir gövdeyle
200 OK
karmaşık bir mesaj gönderir. Der ki: "İşte başarılı bir yanıt! (Ama size gösterecek hiçbir şeyim yok)." Bu, bir garsonun "İşte yemeğiniz!" deyip boş bir tabak sunması gibidir. 204 İçerik Yok
açık ve net bir şekilde ifade eder. Der ki: "Başarılı. Ve size gösterecek hiçbir şeyim yok çünkü zaten ihtiyacınız olan her şeye sahipsiniz." Bu, yemeğinizi bitirdikten sonra garsonun odanın karşısından size başparmak işaretini yapması gibidir, sizi gördüğünü ve başka bir eyleme gerek olmadığını onaylar.
204
'ü doğru kullanmak, iyi tasarlanmış, düşünceli bir API'nin işaretidir.
204 İçerik Yok İçin Yaygın Kullanım Durumları
204 İçerik Yok'u muhtemelen göreceğiniz veya kullanmak isteyeceğiniz bazı gerçek dünya senaryolarına bakalım:
- Bir kaynağı silme: Bir istemci bir API aracılığıyla bir öğeyi sildiğinde (örn. DELETE /users/123), sunucu kaynağın başarıyla silindiğini ve döndürülecek hiçbir şey olmadığını belirtmek için 204 ile yanıt verebilir.
- Bir kaynağı geri döndürmeden güncelleme: Bazen PUT veya PATCH istekleri bir kaynağı günceller ancak güncellenmiş verileri hemen geri göndermeye ihtiyaç duymaz, bu nedenle 204 uygun bir seçenektir.
- Form gönderimleri: AJAX aracılığıyla bir form gönderirken, 204 istemciye gönderimin başarılı olduğunu ancak yüklenecek veya görüntülenecek yeni bir içerik olmadığını bildirir.
- Ping veya heartbeat uç noktaları: Sağlık kontrolleri veya bağlantı devamlılığı için, 204 yanıtı gereksiz veri göndermeden başarıyı gösterir.
- UI değişikliğine gerek yok: Tek Sayfa Uygulamalarında (SPA), UI'yi güncellemeye ihtiyaç duymayan arka uç çağrıları 204'ten faydalanabilir.
204 vs 200: Fark Nedir?
Bu, geliştiriciler arasındaki en büyük karışıklıklardan biridir.
- 200 OK: İstek başarılı oldu ve yanıt içerik içerebilir.
- 204 İçerik Yok: İstek başarılı oldu ve yanıt içerik içermemelidir.
Bu nedenle, JSON, XML veya HTML döndürmek istiyorsanız 200 kullanın. İstemiyorsanız 204 kullanın.
204 vs 202: Başka Bir Yaygın Karışıklık
Başka bir yakın akraba da 202 Kabul Edildi
'dir.
- 202 Kabul Edildi: İstek alındı ancak henüz üzerinde işlem yapılmadı. İşlem daha sonra gerçekleşebilir.
- 204 İçerik Yok: İstek alındı ve hemen işlendi, ve söylenecek başka bir şey yok.
Başka bir deyişle, 202 "Hallederim" iken, 204 "Zaten hallettim"dir.
204 vs. 404 Bulunamadı (DELETE için)
Başka bir yaygın karışıklık noktası: Kaynak mevcut değilse bir DELETE
isteği ne döndürmelidir?
- İstenen son durum elde edilirse
204 İçerik Yok
döndürün. Amaç kaynağın yok olmasıysa ve zaten yoksa, işlem başarılı olmuştur. Bu idempotent'tir — aynı isteği birden çok kez yapmak aynı etkiyi yaratır. 404 Bulunamadı
döndürün yalnızca kimlik biçimi yanlışsa veya kaynak, istemcinin makul bir şekilde bekleyebileceği bir şekilde hiç var olmamışsa. Örneğin,/api/articles/not-a-real-id
silmek bir404
döndürebilir.
Genel kural: DELETE
isteği amacına ulaşmada başarılıysa (kaynak artık yoksa), 204
döndürün.
İstemcinin İşi: 204 Yanıtını İşleme
İyi davranışlı bir istemci, bir 204
yanıtını doğru bir şekilde nasıl işleyeceğini bilmelidir.
- Gövdeyi Ayrıştırmaya Çalışmayın: Yanıtın gövdesi yoktur. Yanıttan JSON, XML veya metin ayrıştırmaya yönelik herhangi bir girişim hatayla sonuçlanacaktır. Kodunuz önce durum kodunu kontrol etmeli ve yalnızca
200
gibi kodlar için gövdeyi ayrıştırmaya çalışmalıdır. - Başarı Olarak Kabul Edin: İstemci
204
'ü tam bir başarı olarak yorumlamalı ve dahili durumunu buna göre güncellemelidir (örn. bir öğeyi listeden kaldırma, bir UI geçişini güncelleme). - Başlıklara Saygı Gösterin: Gövde olmasa bile, başlıklarda önemli meta veriler (oran sınırı bilgileri gibi) olabilir. Başlıkları her zaman okuyun.
Web tarayıcılarında, 204 yanıtı bir sayfa yeniden yüklemesini veya navigasyon değişikliğini tetiklemez, bu da arka planda verileri değiştiren AJAX çağrıları için kullanışlı hale getirir.
Geliştiriciler 204 Durum Kodunu Nasıl Doğru Uygulayabilir?
204 durum kodundan en iyi şekilde yararlandığınızdan emin olmak için:
- İstemcinin yanıt gövdesi beklemediğini onaylayın.
- Gerekirse uygun başlıkları gönderin (örn. Content-Type genellikle gövde olmadığı için atlanır).
- Yanıt gövdesi eklemekten kaçının; bunu yapmak bazı istemcilerde tanımsız davranışa neden olabilir.
- Kullanımı API dokümantasyonunuzda açıkça belgeleyin.
204'ü Doğru Kullanmanın Faydaları
- Bant genişliğinden tasarruf sağlar: Gereksiz yanıt gövdesi yok.
- Net amaç: Sessizliğin kasıtlı olduğunu, kazara olmadığını iletir.
- İstemci verimliliği: İstemcilerin boş gövdeleri ayrıştırmak için döngüleri boşa harcamasını önler.
- Standartlara uygun: API'nizin HTTP en iyi uygulamalarına uymasını sağlamaya yardımcı olur.
Apidog ile 204 Yanıtlarını Test Etme

204
döndüren uç noktaları test etmek çok önemlidir. Doğru durum kodunu döndürdüklerinden ve yanlışlıkla yanıt gövdesine veri sızdırmadıklarından emin olmanız gerekir. Apidog bunun için mükemmel bir araçtır.
Apidog ile şunları yapabilirsiniz:
- İsteği Oluşturun: Uç noktanıza kolayca bir
DELETE
veyaPUT
isteği ayarlayın. - Gönder ve Doğrula: Tek bir tıklamayla isteği gönderin ve tam yanıtı anında görün.
- Ayrıntıları İncele: Apidog size durum kodunu (
204
) ve tüm başlıkları açıkça gösterecektir. En önemlisi, yanıt gövdesi bölmesini boş olarak gösterecek ve API'nizin doğru çalıştığını onaylayacaktır. - İddialar Yazın: Yanıt durumunun
204
olduğunu ve yanıt gövdesinin gerçekten boş olduğunu iddia eden otomatik test komut dosyaları Apidog'da yazabilirsiniz. Bu, regresyonları önler. - Hataları Ayıkla: Uç noktanız yanlışlıkla bir
204
ile bir gövde döndürürse veya204
döndürmesi gerekirken200
döndürürse, Apidog bu hatayı anında görünür hale getirecektir. - Net dokümantasyon: Apidog, hangi uç noktaların 204 döndürdüğünü ve hangi koşullar altında döndürdüğünü belgelemenize olanak tanır, bu da ekibinize ve API tüketicilerinize yardımcı olur.
- İşbirliği: Daha iyi geliştirme ve hata ayıklama iş akışları için API özelliklerini ekibinizle paylaşın.
Bu test seviyesi, profesyonel, güvenilir API'ler oluşturmak için çok önemlidir. Apidog'u geliştirme sürecinize entegre ederek, 204 gibi durum kodlarını ele almak şeffaf ve yönetilebilir hale gelir.
204 Simülasyonu için Apidog vs Diğer API Araçları

Karşılaştıralım:
- Postman: Manuel test için harika, ancak 204 davranışını taklit etmek hantal gelebilir.
- Swagger UI: Dokümantasyon için kullanışlıdır ancak yanıtları iyi simüle etmez.
- Apidog: Test, taklit ve dokümantasyonu tek bir platformda birleştirir. 204 gibi uç durumlarla deneme yapmak için mükemmeldir.
204 İçerik Yok Hakkında Yaygın Yanlış Anlamalar
204'ü diğer durum kodlarıyla karıştırmak veya kullanımını yanlış yorumlamak kolaydır:
- 204 hata veya başarısızlık anlamına gelir: Doğru değil! İçeriksiz bir başarı durumudur.
- 204 yalnızca boş yanıtlar içindir: Kasıtlı olarak boş yanıtlarla başarılı işleme için tasarlanmıştır, hatalar için değil.
- 204 bir mesaj gövdesine izin verir: HTTP özelliklerine göre, 204 bir mesaj gövdesi içermemelidir.
- 204 hiç yanıt yok anlamına gelir: Sunucu hala başlıklar ve durum satırı gönderir, sadece mesaj gövdesi göndermez.
Yaygın Hatalar ve Anti-Desenler
{ "success": true }
ile200 OK
döndürmek: Bu israf ve basit bir204
'ten daha az anlamlıdır. Durum kodu başarı göstergesidir.204
ile bir Gövde Döndürmek: Bu, HTTP spesifikasyonunu ihlal eder. Bir204
yanıtı bir mesaj gövdesi İÇERMEMELİDİR.- Bir
GET
İsteği için204
Kullanmak: BirGET
isteği her zaman bir kaynağın temsilini döndürmelidir. Döndürülecek hiçbir şey yoksa, boş bir dizi[]
veya boş bir nesne{}
ile200 OK
döndürmek veya belirli kaynak bulunamazsa belki bir404
döndürmek daha uygun olabilir.
204 İçerik Yok'un Yaygın Yanlış Kullanımları
Ne yazık ki, geliştiriciler genellikle 204'ü yanlış kullanır. İşte birkaç tuzak:
- Gövde ile 204 döndürmek → Bu HTTP spesifikasyonunu bozar.
- Yanıt gövdesi beklendiğinde 200 yerine 204 kullanmak.
- GET istekleri için 204 döndürmek → GET'ler neredeyse her zaman içerik döndürmelidir.
204 Yanlış Kullanılırsa Ne Olur?
204'ü yanlış kullanmak garip istemci davranışlarına yol açabilir:
- 204 ile bir gövde eklemek, istemcilerin takılmasına veya hata vermesine neden olabilir.
- Bir kaynak gerçekten eksikken 204 göndermekten kaçınılmalıdır; 404 daha iyidir.
- Yanlış iletişim, kafa karıştırıcı UI durumlarına veya yanlış önbelleğe almaya yol açabilir.
Bu nedenle, 204'ün amaçlanan kullanımını anlamak ve buna uymak çok önemlidir.
REST API'lerinde 204 Uygulamak İçin En İyi Uygulamalar
- 204'ü öncelikle DELETE ve güncelleme işlemleri için kullanın.
- Yanıt gövdesi eklemeyin.
- Gerekirse anlamlı başlıklar ekleyin (
Location
veyaETag
gibi). - Davranışı belgeleyin, böylece API tüketicileri ne bekleyeceklerini bilirler.
GraphQL, gRPC ve Diğer Protokollerde 204
- GraphQL: Nadiren 204 kullanır, çünkü her sorgu bir yanıt yükü bekler.
- gRPC: HTTP durum kodları yerine, gRPC'nin kendi hata kodları vardır, ancak "içerik yok" kavramı bazen
OK
artı yük olmadan yansıtılır. - SOAP API'leri: Tarihsel olarak, 204 yaygın değildi, çünkü SOAP mesajları tipik olarak her zaman bir zarf içerir.
Derinlemesine İnceleme: 204 RESTful API'lerle Nasıl Çalışır?
RESTful tasarımda, yanıtlar istemci davranışını yönlendirmek için kritiktir. Birçok eylem tüm güncellenmiş kaynağı veya herhangi bir içeriği döndürmeyi gerektirmediğinden, 204 bant genişliğinden tasarruf etmenin ve yanıt verme hızını artırmanın zarif bir yoludur.
Örneğin, RESTful CRUD işlemlerinde:
- GET: 200 ve kaynak verilerini döndürür.
- POST: Yeni kaynak verileriyle 201 Oluşturuldu döndürür.
- PUT: Güncellenmiş veri geri gönderilmezse 204 döndürebilir.
- DELETE: Genellikle silme işlemini içeriksiz onaylamak için 204 döndürür.
Bu tasarım felsefesi, modern, verimli web API'leriyle uyumludur.
Sonuç: 204 İçerik Yok'un Gücünü Kucaklayın
204 İçerik Yok durum kodu basit görünebilir, ancak gereksiz veri aktarımı olmadan başarıyı sinyalleyerek HTTP iletişiminde önemli bir yere sahiptir. Bant genişliğinden tasarruf sağlar, kullanıcı arayüzü deneyimini iyileştirir ve sunucu-istemci iletişimini netleştirir.
HTTP 204 İçerik Yok
durum kodu, minimalist tasarımın bir başyapıtıdır. En verimli iletişimin genellikle yeterince ve başka hiçbir şey söylemediği ilkesini somutlaştırır.
Şişirilmiş JSON yanıtları ve aşırı mühendislik ürünü API'ler dünyasında, 204
'ün doğru kullanımı, HTTP protokolünün inceliklerini anlayan ve hem istemcinin hem de sunucunun kaynaklarına saygı duyan bir geliştiricinin işaretidir.
Bu bir yokluk kodu değil; bir tamamlama kodudur. İyi yapılmış bir kapının tatmin edici kapanma sesi, bir yapbozun son parçasının yerine oturmasıdır. Bu, başarının sesidir ve bu ses sessizliktir. API'ler geliştiriyorsanız, 204'ü dikkatli kullanın:
- DELETE ve güncelleme eylemleri için harikadır.
- GET'ler için kaçının.
- İyi belgeleyin.
API geliştiriyor veya tüketiyorsanız, 204'ü nasıl kullanacağınızı ve yanıt vereceğinizi öğrenmek, uygulamalarınızı daha verimli ve kullanıcı dostu hale getirecektir. Bu nedenle, bir DELETE
, PUT
veya geçiş eylemi için bir uç nokta oluştururken, sadece varsayılan olarak 200 OK
kullanmayın. 204 İçerik Yok
'un zarafetini kucaklayın.
Ve unutmayın, öğrenmenin en iyi yolu yapmaktır. Apidog'u ücretsiz indirmeyi unutmayın. Uygulamanızın hassas, verimli ve tamamen uyumlu olduğundan emin olmak için Apidog gibi bir araç kullanın, API'lerinizi kullanmaktan zevk alınan ve kalitenin bir ölçütü haline getirin. Apidog, 204 gibi çeşitli HTTP durum kodlarıyla test yapmayı, belgelemeyi ve çalışmayı kolay ve etkili hale getirerek API'nizin davranışının net ve tutarlı olmasını sağlar.