Anda menggunakan aplikasi web yang dirancang dengan baik. Anda menghapus item dari daftar Anda, 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 maksudkan 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 saudaranya yang banyak bicara, 200 OK, yang selalu punya sesuatu untuk disampaikan, kode status 204 adalah tipe yang kuat dan pendiam di dunia HTTP. Ini adalah cara server memberikan acungan jempol sederhana, 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 ini 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 cara kerja 204 No Content di API dunia nyata, Anda tidak perlu membuat server kustom. Sebaliknya, Anda harus mencoba Apidog, alat pengujian dan dokumentasi API gratis. Apidog memudahkan Anda untuk menguji 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 lancar. 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 dengan bahasa sederhana dan mendalami mengapa ini penting.
Apa Sebenarnya Arti HTTP 204 No Content?
Kode status 204 No Content memberitahu klien bahwa permintaan berhasil, tetapi server tidak mengirimkan konten apa pun di badan respons. Ini mungkin terlihat aneh pada awalnya—bagaimana permintaan bisa berhasil tanpa mengirimkan data? Namun sebenarnya, ini adalah sinyal yang sangat berguna dan disengaja dalam pengembangan web. Definisi resminya (dari RFC 7231) ringkas:
Mari kita bedah bagian-bagian pentingnya:
- "Server telah berhasil memenuhi permintaan...": Ini krusial. Ini adalah kode keberhasilan penuh. Operasi, baik penghapusan, pembaruan, atau pengalihan, selesai tanpa hambatan.
- "...tidak ada konten tambahan untuk dikirim...": Server tidak memiliki apa-apa untuk dikatakan. Tidak ada data yang perlu ditransfer kembali ke klien untuk mengkomunikasikan keberhasilan ini.
- "...dalam badan payload respons.": Respons akan memiliki header dan baris status, tetapi badannya akan 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. Tanpa badan. Tanpa header `Content-Length`. Hanya konfirmasi yang bersih dan efisien.
Setiap kali klien mengirim permintaan yang tidak memerlukan badan respons lengkap, 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 memberitahu klien, "Permintaan Anda diproses dengan benar, tetapi tidak ada hal baru yang perlu saya tunjukkan kepada Anda."
Analogi klasik: Bayangkan Anda meminta teman Anda 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 dari 204
Berikut adalah apa yang membuat 204 unik:
- Ini adalah kode keberhasilan: Permintaan berhasil diselesaikan.
- Badan tidak 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 merespons dengan 200 OK dan badan pesan kosong jika tidak ada konten?
Berikut adalah 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 yang kosong. Misalnya, browser tidak akan mencoba menyegarkan atau memuat ulang halaman berdasarkan respons 204.
- Kejelasan Semantik: 204 secara jelas mengkomunikasikan maksud—ini mengatakan bahwa permintaan berhasil, tetapi tidak ada konten yang perlu dikirim.
- Menghindari Perubahan UI yang Tidak Diinginkan: Dalam beberapa aplikasi web, mengirim 204 mencegah pemuatan ulang halaman atau kedipan antarmuka yang tidak diinginkan.
Pada dasarnya, 204 menyederhanakan komunikasi antara server dan klien dengan memberitahu 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 saja dan mengembalikan badan kosong?
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: Kecocokan Sempurna
Anda harus menggunakan kode status `204` dalam satu skenario utama:
Ketika permintaan klien berhasil, dan klien tidak perlu mengubah status atau tampilan 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 yang paling umum dan sesuai untuk `204`. Ketika klien menghapus sumber daya, apa yang harus dikirim kembali oleh server? Sumber daya yang dihapus? Itu tidak masuk akal. Pesan yang mengatakan "Sudah dihapus"? Kode status `204` adalah pesan itu.
- Permintaan:
DELETE /api/articles/123 - Respons:
204 No Content - Perilaku Klien: Klien tahu artikel tersebut sudah tidak ada. Klien 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`, klien sudah memiliki representasi lengkap dari sumber daya yang diinginkannya. Jika pembaruan berhasil, server seringkali 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"). Klien dapat mengasumsikan pembaruan berhasil dan segera menerapkan perubahan ke status lokalnya. `204` lebih efisien daripada server mengembalikan seluruh objek pengguna.
3. Tindakan Pengalihan (Toggle Actions)
Tindakan yang hanya mengalihkan 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 Krusial
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 dan lebih tepat.
200 OKdengan badan kosong mengirimkan pesan yang campur aduk. Ini mengatakan, "Ini respons yang berhasil! (Tapi saya tidak punya apa-apa untuk ditunjukkan kepada Anda)." Ini seperti seorang 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 seperti pelayan yang memberikan acungan jempol dari seberang ruangan setelah Anda selesai makan, mengkonfirmasi bahwa mereka telah melihat Anda dan tidak perlu tindakan lebih lanjut.
Menggunakan `204` dengan benar adalah tanda API yang dirancang dengan baik dan cermat.
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 segera mengirimkan kembali data yang diperbarui, jadi 204 adalah pilihan yang tepat.
- Pengiriman formulir: Saat mengirimkan formulir melalui AJAX, 204 memberitahu klien bahwa pengiriman berhasil tetapi tidak ada konten baru yang perlu dimuat atau ditampilkan.
- Endpoint 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 di kalangan 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
Kerabat dekat lainnya adalah `202 Accepted`.
- 202 Accepted: Permintaan diterima tetapi belum ditindaklanjuti. Pemrosesan mungkin terjadi nanti.
- 204 No Content: Permintaan diterima dan segera diproses, dan tidak ada lagi yang perlu dikatakan.
Dengan kata lain, 202 adalah "Saya akan mengerjakannya", sedangkan 204 adalah "Saya sudah mengerjakannya".
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 status akhir yang diinginkan tercapai. Jika tujuannya adalah agar sumber daya hilang, dan sumber daya tersebut sudah hilang, maka operasi berhasil. Ini adalah idempoten—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 praktisnya: Jika permintaan DELETE berhasil mencapai tujuannya (sumber daya sudah tidak ada), kembalikan 204.
Tugas Klien: Menangani Respons 204
Klien yang 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 penuh dan memperbarui status internalnya sesuai (misalnya, menghapus item dari daftar, memperbarui pengalihan 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, sehingga 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 sebaik-baiknya:
- 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 pada 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: Mengkomunikasikan bahwa keheningan itu disengaja, bukan tidak disengaja.
- 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 endpoint yang mengembalikan `204` sangat penting. Anda perlu memastikan bahwa 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:
- Buat Permintaan: Atur permintaan
DELETEatauPUTke endpoint Anda dengan mudah. - 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 sebagai kosong, mengkonfirmasi bahwa API Anda berfungsi dengan benar. - Tulis Asersi: Anda dapat menulis skrip pengujian otomatis di Apidog yang menegaskan bahwa status respons adalah
204dan bahwa badan respons benar-benar kosong. Ini mencegah regresi. - Debug Kesalahan: Jika endpoint Anda secara keliru mengembalikan badan dengan
204, atau mengembalikan200padahal seharusnya mengembalikan204, Apidog akan segera membuat kesalahan ini terlihat. - Dokumentasi yang jelas: Apidog memungkinkan Anda mendokumentasikan endpoint 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, mocking, 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 mengartikan 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 mengizinkan badan pesan: Menurut spesifikasi HTTP, 204 tidak boleh menyertakan badan pesan.
- 204 berarti tidak ada respons sama sekali: Server masih mengirimkan 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 dibandingkan204yang sederhana. 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 spesifik 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 → GETs hampir selalu harus mengembalikan konten.
Apa yang Terjadi Jika 204 Disalahgunakan?
Menyalahgunakan 204 dapat menyebabkan perilaku klien yang aneh:
- Menyertakan badan dengan 204 mungkin menyebabkan klien macet atau memunculkan kesalahan.
- Mengirim 204 ketika sumber daya sebenarnya hilang harus dihindari; 404 lebih baik.
- Miskomunikasi 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 perilakunya 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 "tidak ada konten" terkadang dicerminkan dengan
OKditambah tanpa payload. - SOAP API: Secara historis, 204 tidak umum, karena pesan SOAP biasanya selalu menyertakan amplop.
Pendalaman: 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 mengkonfirmasi penghapusan tanpa konten.
Filosofi desain ini selaras dengan API web modern yang efisien.
Kesimpulan: Rangkul 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 berlebihan, penggunaan `204` yang benar adalah tanda seorang pengembang yang memahami nuansa protokol HTTP dan menghargai sumber daya klien dan server.
Ini bukan kode ketidakhadiran; ini adalah kode penyelesaian. Ini adalah bunyi klik yang memuaskan dari pintu yang tertutup rapat, 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:
- Sangat baik 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 endpoint untuk tindakan `DELETE`, `PUT`, atau pengalihan, jangan hanya menggunakan `200 OK` secara default. Rangkul keanggunan `204 No Content`.
Dan ingat, cara terbaik untuk belajar adalah dengan melakukannya. 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 membuat pengujian, pendokumentasian, dan bekerja dengan berbagai kode status HTTP seperti 204 menjadi mudah dan efektif, memastikan perilaku API Anda jelas dan konsisten.
