Anda menggunakan aplikasi web yang dirancang dengan baik. Anda menghapus item dari daftar, memperbarui pengaturan, atau menandai tugas sebagai selesai. Tindakan tersebut terjadi secara instan dan mulus. Tidak ada pesan "Berhasil!" yang mencolok, tidak ada data baru yang dimuat di layar, hanya konfirmasi yang tenang dan meyakinkan bahwa apa yang Anda ingin lakukan telah selesai.
Pengalaman pengguna yang elegan dan minimalis ini sering kali didukung oleh salah satu kode status HTTP yang paling disalahpahami dan kurang dihargai: 204 No Content.
Tidak seperti sepupunya yang cerewet, 200 OK, yang selalu memiliki sesuatu untuk dikatakan, kode status 204 adalah tipe yang kuat dan pendiam di dunia HTTP. Ini adalah cara server memberikan acungan jempol sederhana, sebuah anggukan pengakuan. Ini mengatakan, "Saya berhasil memproses permintaan Anda. Tidak ada yang perlu saya kirimkan kembali kepada Anda, dan memang seharusnya begitu."
Jadi, apa artinya? Mengapa itu ada? Dan yang lebih penting, bagaimana Anda harus menggunakannya dalam API Anda?
Jika Anda seorang pengembang yang membangun API atau aplikasi web, memahami dan mengimplementasikan 204 No Content dengan benar adalah tanda profesionalisme dan kunci untuk menciptakan sistem yang efisien, bersih, dan dapat diprediksi.
Jika Anda ingin bereksperimen dengan bagaimana 204 No Content bekerja di API dunia nyata, Anda tidak perlu menyiapkan server kustom. Sebaliknya, Anda harus mencoba Apidog, alat pengujian dan dokumentasi API gratis. Apidog memudahkan pengujian API Anda dan melihat dengan tepat bagaimana kode status yang berbeda, seperti 204, berperilaku dalam skenario nyata. Ditambah lagi, ini membantu Anda mendokumentasikan dan berkolaborasi dengan tim Anda dengan mulus. Unduh Apidog secara gratis dan dapatkan pemahaman yang lebih jelas dan praktis tentang respons API Anda saat kita menjelajahi kode status 204!
Sekarang, mari kita bedah HTTP 204 No Content dalam bahasa sederhana dan selami mengapa ini penting.
Apa Sebenarnya Arti HTTP 204 No Content?
Kode status 204 No Content memberi tahu klien bahwa permintaan berhasil, tetapi server tidak mengirim konten apa pun dalam badan respons. Ini mungkin tampak aneh pada awalnya—bagaimana permintaan bisa berhasil tanpa mengirim data? Tetapi sebenarnya, ini adalah sinyal yang sangat berguna dan disengaja dalam pengembangan web. Definisi resminya (dari RFC 7231) ringkas:
Mari kita uraikan bagian-bagian kuncinya:
- "Server telah berhasil memenuhi permintaan...": Ini sangat penting. Ini adalah kode keberhasilan penuh. Operasi, baik penghapusan, pembaruan, atau pengalihan, selesai tanpa hambatan.
- "...tidak ada konten tambahan untuk dikirim...": Server tidak punya apa-apa untuk dikatakan. Tidak ada data yang perlu ditransfer kembali ke klien untuk mengomunikasikan keberhasilan ini.
- "...dalam badan payload respons.": Respons akan memiliki header dan baris status, tetapi badannya sengaja kosong. Ini menghemat bandwidth dan waktu pemrosesan.
Dalam praktiknya, respons 204 terlihat seperti ini:
HTTP/1.1 204 No ContentX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999
Itu saja. Tidak ada badan. Tidak ada header Content-Length. Hanya konfirmasi yang bersih dan efisien.
Setiap kali klien mengirim permintaan yang tidak memerlukan badan respons penuh, misalnya, setelah mengirimkan data formulir, menghapus sumber daya, atau melakukan tindakan di mana tidak ada konten lebih lanjut yang diperlukan, server dapat merespons dengan 204. Ini memberi tahu klien, "Permintaan Anda diproses dengan benar, tetapi tidak ada yang baru untuk saya tunjukkan kepada Anda."
Analogi klasik: Bayangkan Anda meminta teman Anda untuk membuang sampah. Mereka melakukannya, kembali, dan tidak mengatakan apa-apa karena pekerjaan sudah selesai, dan tidak ada lagi yang perlu dilaporkan. Itulah 204 dalam tindakan.
Karakteristik Utama 204
Inilah yang membuat 204 unik:
- Ini adalah kode keberhasilan: Permintaan berhasil diselesaikan.
- Tidak ada badan yang diizinkan: Respons tidak boleh menyertakan badan pesan.
- Header masih mungkin: Anda masih dapat mengirim header seperti
Content-TypeatauETag. - Efisien: Menghemat bandwidth karena tidak ada payload.
Mengapa Kode Status 204 Ada?
Anda mungkin bertanya-tanya, tidak bisakah server hanya merespons dengan 200 OK dan badan pesan kosong jika tidak ada konten?
Inilah mengapa kode status 204 penting:
- Efisiensi: Ini mengurangi transmisi data yang tidak perlu, terutama berguna untuk jaringan seluler atau bandwidth terbatas.
- Perilaku Klien: Beberapa klien menginterpretasikan respons 204 secara berbeda dari respons 200 kosong. Misalnya, browser tidak akan mencoba menyegarkan atau memuat ulang halaman berdasarkan respons 204.
- Kejelasan Semantik: 204 dengan jelas mengomunikasikan niat—dikatakan bahwa permintaan berhasil, tetapi tidak ada konten yang perlu dikirim.
- Menghindari Perubahan UI yang Tidak Diinginkan: Di beberapa aplikasi web, pengiriman 204 mencegah pemuatan ulang halaman atau kedipan antarmuka yang tidak diinginkan.
Pada dasarnya, 204 menyederhanakan komunikasi antara server dan klien dengan memberi tahu kedua belah pihak bahwa tidak ada perubahan konten yang diperlukan.
Mengapa Kita Membutuhkan 204 No Content?
Anda mungkin bertanya-tanya: Mengapa tidak menggunakan 200 OK dan mengembalikan badan kosong saja?
Pertanyaan bagus. Jawabannya terletak pada komunikasi yang jelas antara server dan klien.
- 200 OK menyiratkan bahwa mungkin ada badan respons.
- 204 No Content membuatnya eksplisit: "Tidak ada konten di sini, dan itu disengaja."
Perbedaan ini membantu klien seperti browser, aplikasi seluler, atau konsumen API mengetahui bahwa mereka tidak perlu memproses atau mengurai badan.
Kapan Menggunakan 204 No Content: Yang Paling Cocok
Anda harus menggunakan kode status 204 dalam satu skenario utama:
Ketika permintaan klien berhasil, dan klien tidak perlu mengubah status atau tampilannya dengan cara apa pun di luar apa yang sudah tersirat oleh permintaan itu sendiri.
Mari kita lihat beberapa contoh klasik:
1. Kasus Penggunaan Penting: Operasi DELETE
Ini adalah penggunaan 204 yang paling umum dan tepat. Ketika klien menghapus sumber daya, apa yang harus dikirim kembali oleh server? Sumber daya yang dihapus? Itu tidak masuk akal. Pesan yang mengatakan "Itu dihapus"? Kode status 204 adalah pesan itu.
- Permintaan:
DELETE /api/articles/123 - Respons:
204 No Content - Perilaku Klien: Klien tahu artikel itu sudah tidak ada. Ia dapat menghapusnya dari status UI lokalnya. Tidak ada informasi lebih lanjut yang diperlukan.
2. Memperbarui Sumber Daya dengan PUT/PATCH
Ketika klien memperbarui sumber daya menggunakan PUT atau PATCH, ia sudah memiliki representasi lengkap dari sumber daya yang diinginkannya. Jika pembaruan berhasil, server sering kali tidak perlu mengirimkan seluruh sumber daya kembali.
- Permintaan:
PATCH /api/users/me { "theme": "dark" } - Respons:
204 No Content - Perilaku Klien: Klien sudah mengetahui status baru yang diinginkan ("theme": "dark"). Ia dapat menganggap pembaruan berhasil dan segera menerapkan perubahan ke status lokalnya.
204lebih efisien daripada server mengulang seluruh objek pengguna.
3. Tindakan Toggle
Tindakan yang hanya mengubah status sangat cocok untuk 204.
- Permintaan:
POST /api/notifications/456/mark-as-read - Respons:
204 No Content - Perilaku Klien: Klien dapat mengubah status visual notifikasi dari "belum dibaca" menjadi "sudah dibaca" di UI. Tidak ada data lebih lanjut yang diperlukan.
204 vs. 200 OK: Perbedaan Penting
Di sinilah banyak pengembang tersandung. Apakah boleh hanya menggunakan 200 OK dengan badan kosong?
Secara teknis, ya. Tetapi secara semantik, 204 adalah pilihan yang lebih baik, lebih tepat.
200 OKdengan badan kosong mengirimkan pesan yang campur aduk. Ini mengatakan, "Ini adalah respons yang berhasil! (Tapi saya tidak punya apa-apa untuk ditunjukkan kepada Anda)." Ini seperti pelayan yang berkata, "Ini makanan Anda!" dan menyajikan piring kosong.204 No Contentjelas dan tidak ambigu. Ini mengatakan, "Berhasil. Dan saya tidak punya apa-apa untuk ditunjukkan kepada Anda karena Anda sudah memiliki semua yang Anda butuhkan." Ini adalah pelayan yang memberi Anda acungan jempol dari seberang ruangan setelah Anda selesai makan, mengonfirmasi bahwa mereka telah melihat Anda dan tidak perlu tindakan lebih lanjut.
Menggunakan 204 dengan benar adalah tanda API yang dirancang dengan baik dan bijaksana.
Kasus Penggunaan Umum untuk 204 No Content
Mari kita lihat beberapa skenario dunia nyata di mana Anda kemungkinan besar akan melihat atau ingin menggunakan 204 No Content:
- Menghapus sumber daya: Ketika klien menghapus item melalui API (misalnya, DELETE /users/123), server dapat merespons dengan 204 untuk menandakan bahwa sumber daya berhasil dihapus, dan tidak ada yang perlu dikembalikan.
- Memperbarui sumber daya tanpa mengembalikannya: Terkadang permintaan PUT atau PATCH memperbarui sumber daya tetapi tidak perlu mengirimkan kembali data yang diperbarui segera, jadi 204 sesuai.
- Pengiriman formulir: Saat mengirimkan formulir melalui AJAX, 204 memberi tahu klien bahwa pengiriman berhasil tetapi tidak ada konten baru yang perlu dimuat atau ditampilkan.
- Titik akhir ping atau heartbeat: Untuk pemeriksaan kesehatan atau keep-alive, respons 204 menunjukkan keberhasilan tanpa mengirimkan data yang tidak perlu.
- Tidak ada perubahan UI yang diperlukan: Dalam Aplikasi Halaman Tunggal (SPA), panggilan backend yang tidak perlu memperbarui UI dapat memanfaatkan 204.
204 vs 200: Apa Bedanya?
Ini adalah salah satu kebingungan terbesar pengembang.
- 200 OK: Permintaan berhasil, dan respons mungkin berisi konten.
- 204 No Content: Permintaan berhasil, dan respons tidak boleh berisi konten.
Jadi, jika Anda ingin mengembalikan JSON, XML, atau HTML, gunakan 200. Jika tidak, gunakan 204.
204 vs 202: Kebingungan Umum Lainnya
Sepupu dekat lainnya adalah 202 Accepted.
- 202 Accepted: Permintaan diterima tetapi belum ditindaklanjuti. Pemrosesan mungkin terjadi nanti.
- 204 No Content: Permintaan diterima dan diproses segera, dan tidak ada lagi yang perlu dikatakan.
Dengan kata lain, 202 adalah "Saya akan melakukannya", sedangkan 204 adalah "Saya sudah melakukannya".
204 vs. 404 Not Found untuk DELETE
Poin kebingungan umum lainnya: Apa yang harus dikembalikan oleh permintaan DELETE jika sumber daya tidak ada?
- Kembalikan
204 No Contentjika keadaan akhir yang diinginkan tercapai. Jika tujuannya adalah agar sumber daya hilang, dan memang sudah hilang, maka operasi berhasil. Ini idempotent—membuat permintaan yang sama beberapa kali memiliki efek yang sama. - Kembalikan
404 Not Foundhanya jika format ID salah atau sumber daya tidak pernah ada dengan cara yang dapat diharapkan secara wajar oleh klien. Misalnya, menghapus/api/articles/not-a-real-idmungkin mengembalikan404.
Aturan praktis: Jika permintaan DELETE berhasil mencapai tujuannya (sumber daya tidak ada lagi), kembalikan 204.
Tugas Klien: Menangani Respons 204
Klien yang berperilaku baik harus tahu cara menangani respons 204 dengan benar.
- Jangan Mencoba Mengurai Badan: Respons tidak memiliki badan. Setiap upaya untuk mengurai JSON, XML, atau teks dari respons akan menghasilkan kesalahan. Kode Anda harus memeriksa kode status terlebih dahulu dan hanya mencoba mengurai badan untuk kode seperti
200. - Perlakukan sebagai Keberhasilan: Klien harus menginterpretasikan
204sebagai keberhasilan lengkap dan memperbarui status internalnya sesuai (misalnya, menghapus item dari daftar, memperbarui toggle UI). - Hormati Header: Meskipun tidak ada badan, mungkin ada metadata penting di header (seperti info batas tarif). Selalu baca header.
Di browser web, respons 204 tidak memicu pemuatan ulang halaman atau perubahan navigasi, membuatnya berguna untuk panggilan AJAX yang memodifikasi data di latar belakang.
Bagaimana Pengembang Dapat Mengimplementasikan Kode Status 204 dengan Benar
Untuk memastikan Anda memanfaatkan kode status 204 secara maksimal:
- Konfirmasi bahwa klien tidak mengharapkan badan respons.
- Kirim header yang sesuai jika diperlukan (misalnya, Content-Type biasanya dihilangkan karena tidak ada badan).
- Hindari menyertakan badan respons; melakukannya dapat menyebabkan perilaku yang tidak terdefinisi di beberapa klien.
- Dokumentasikan penggunaannya dengan jelas dalam dokumentasi API Anda.
Manfaat Menggunakan 204 dengan Benar
- Menghemat bandwidth: Tidak ada badan respons yang tidak perlu.
- Niat yang jelas: Mengomunikasikan bahwa keheningan disengaja, bukan kebetulan.
- Efisiensi klien: Mencegah klien membuang siklus untuk mengurai badan kosong.
- Sesuai standar: Membantu memastikan API Anda mengikuti praktik terbaik HTTP.
Menguji Respons 204 dengan Apidog

Menguji titik akhir yang mengembalikan 204 sangat penting. Anda perlu memastikan mereka mengembalikan kode status yang benar dan tidak secara tidak sengaja membocorkan data ke dalam badan respons. Apidog adalah alat yang sempurna untuk ini.
Dengan Apidog, Anda dapat:
- Membuat Permintaan: Dengan mudah menyiapkan permintaan
DELETEatauPUTke titik akhir Anda. - Kirim dan Validasi: Dengan satu klik, kirim permintaan dan segera lihat respons lengkapnya.
- Periksa Detail: Apidog akan dengan jelas menunjukkan kode status (
204) dan semua header. Yang terpenting, ini akan menunjukkan panel badan respons kosong, mengonfirmasi bahwa API Anda berfungsi dengan benar. - Menulis Pernyataan (Assertions): Anda dapat menulis skrip pengujian otomatis di Apidog yang menyatakan bahwa status respons adalah
204dan bahwa badan respons benar-benar kosong. Ini mencegah regresi. - Mendebug Kesalahan: Jika titik akhir Anda secara keliru mengembalikan badan dengan
204, atau mengembalikan200padahal seharusnya mengembalikan204, Apidog akan segera menunjukkan kesalahan ini. - Dokumentasi yang jelas: Apidog memungkinkan Anda mendokumentasikan titik akhir mana yang mengembalikan 204 dan dalam kondisi apa, membantu tim Anda dan konsumen API.
- Kolaborasi: Bagikan spesifikasi API dengan tim Anda untuk alur kerja pengembangan dan debugging yang lebih baik.
Tingkat pengujian ini sangat penting untuk membangun API yang profesional dan andal. Dengan mengintegrasikan Apidog ke dalam proses pengembangan Anda, penanganan kode status seperti 204 menjadi transparan dan mudah dikelola.
Apidog vs Alat API Lain untuk Simulasi 204

Mari kita bandingkan:
- Postman: Bagus untuk pengujian manual, tetapi memalsukan perilaku 204 bisa terasa canggung.
- Swagger UI: Berguna untuk dokumentasi tetapi tidak mensimulasikan respons dengan baik.
- Apidog: Menggabungkan pengujian, pemalsuan, dan dokumentasi dalam satu platform. Sempurna untuk bereksperimen dengan kasus-kasus ekstrem seperti 204.
Kesalahpahaman Umum tentang 204 No Content
Mudah untuk mengacaukan 204 dengan kode status lain atau salah menginterpretasikan penggunaannya:
- 204 berarti kesalahan atau kegagalan: Tidak benar! Ini adalah status keberhasilan tanpa konten.
- 204 hanya untuk respons kosong: Ini dimaksudkan untuk pemrosesan yang berhasil dengan respons yang sengaja kosong, bukan kesalahan.
- 204 memungkinkan badan pesan: Menurut spesifikasi HTTP, 204 tidak boleh menyertakan badan pesan.
- 204 berarti tidak ada respons sama sekali: Server masih mengirim header dan baris status, hanya saja tidak ada badan pesan.
Kesalahan Umum dan Anti-Pola
- Mengembalikan
200 OKdengan{ "success": true }: Ini boros dan kurang semantik daripada204sederhana. Kode status adalah indikator keberhasilan. - Mengembalikan Badan dengan
204: Ini melanggar spesifikasi HTTP. Respons204TIDAK BOLEH menyertakan badan pesan. - Menggunakan
204untuk PermintaanGET: PermintaanGETharus selalu mengembalikan representasi sumber daya. Jika tidak ada yang perlu dikembalikan, mungkin lebih tepat untuk mengembalikan200 OKdengan array kosong[]atau objek kosong{}, atau mungkin404jika sumber daya tertentu tidak ditemukan.
Penyalahgunaan Umum 204 No Content
Sayangnya, pengembang sering menyalahgunakan 204. Berikut adalah beberapa jebakan:
- Mengembalikan 204 dengan badan → Ini melanggar spesifikasi HTTP.
- Menggunakan 204 alih-alih 200 ketika badan respons diharapkan.
- Mengembalikan 204 untuk permintaan GET → GET hampir selalu harus mengembalikan konten.
Apa yang Terjadi Jika 204 Disalahgunakan?
Menyalahgunakan 204 dapat menyebabkan perilaku klien yang aneh:
- Menyertakan badan dengan 204 dapat menyebabkan klien macet atau mengeluarkan kesalahan.
- Mengirim 204 ketika sumber daya sebenarnya hilang harus dihindari; 404 lebih baik.
- Kesalahpahaman dapat menyebabkan status UI yang membingungkan atau caching yang tidak tepat.
Oleh karena itu, memahami dan mematuhi penggunaan 204 yang dimaksudkan sangat penting.
Praktik Terbaik untuk Mengimplementasikan 204 dalam REST API
- Gunakan 204 terutama untuk operasi DELETE dan pembaruan.
- Jangan menyertakan badan respons.
- Tambahkan header yang bermakna jika diperlukan (seperti
LocationatauETag). - Dokumentasikan perilaku agar konsumen API tahu apa yang diharapkan.
204 dalam GraphQL, gRPC, dan Protokol Lainnya
- GraphQL: Jarang menggunakan 204, karena setiap kueri mengharapkan payload respons.
- gRPC: Alih-alih kode status HTTP, gRPC memiliki kode kesalahannya sendiri, tetapi konsep "tanpa konten" terkadang dicerminkan dengan
OKditambah tanpa payload. - SOAP API: Secara historis, 204 tidak umum, karena pesan SOAP biasanya selalu menyertakan amplop.
Pembahasan Mendalam: Bagaimana 204 Bekerja dengan RESTful API
Dalam desain RESTful, respons sangat penting untuk memandu perilaku klien. Karena banyak tindakan mungkin tidak memerlukan pengembalian seluruh sumber daya yang diperbarui atau konten apa pun, 204 adalah cara yang elegan untuk menghemat bandwidth dan meningkatkan responsivitas.
Misalnya, dalam operasi CRUD RESTful:
- GET: Mengembalikan 200 dan data sumber daya.
- POST: Mengembalikan 201 Created dengan data sumber daya baru.
- PUT: Mungkin mengembalikan 204 jika tidak ada data yang diperbarui yang dikirim kembali.
- DELETE: Biasanya mengembalikan 204 untuk mengonfirmasi penghapusan tanpa konten.
Filosofi desain ini selaras dengan API web modern yang efisien.
Kesimpulan: Rangkullah Kekuatan 204 No Content
Kode status 204 No Content mungkin terlihat sederhana, tetapi memegang tempat penting dalam komunikasi HTTP dengan menandakan keberhasilan tanpa transfer data yang tidak perlu. Ini menghemat bandwidth, meningkatkan pengalaman UI, dan memperjelas komunikasi server-klien.
Kode status HTTP 204 No Content adalah mahakarya desain minimalis. Ini mewujudkan prinsip bahwa komunikasi yang paling efisien seringkali hanya mengatakan secukupnya dan tidak lebih.
Dalam dunia respons JSON yang membengkak dan API yang dirancang secara berlebihan, penggunaan 204 yang benar adalah tanda pengembang yang memahami nuansa protokol HTTP dan menghormati sumber daya klien dan server.
Ini bukan kode ketiadaan; ini adalah kode penyelesaian. Ini adalah bunyi klik yang memuaskan dari pintu yang dibuat dengan baik yang tertutup, bagian terakhir dari teka-teki yang pas pada tempatnya. Ini adalah suara keberhasilan, dan suara itu adalah keheningan. Jika Anda membangun API, gunakan 204 dengan hati-hati:
- Bagus untuk tindakan DELETE dan pembaruan.
- Hindari untuk GET.
- Dokumentasikan dengan baik.
Jika Anda mengembangkan atau mengonsumsi API, menguasai cara menggunakan dan merespons 204 akan membuat aplikasi Anda lebih efisien dan ramah pengguna. Jadi, lain kali Anda membangun titik akhir untuk tindakan DELETE, PUT, atau toggle, jangan hanya menggunakan 200 OK secara default. Rangkullah keanggunan 204 No Content.
Dan ingat, cara terbaik untuk belajar adalah dengan melakukan. Jangan lupa untuk mengunduh Apidog secara gratis. Gunakan alat seperti Apidog untuk memastikan implementasi Anda tepat, efisien, dan sepenuhnya sesuai, menjadikan API Anda menyenangkan untuk digunakan dan tolok ukur kualitas. Apidog memudahkan pengujian, pendokumentasian, dan bekerja dengan berbagai kode status HTTP seperti 204 secara mudah dan efektif, memastikan perilaku API Anda jelas dan konsisten.
