Anda sedang mengunduh file besar — film beresolusi tinggi, pembaruan perangkat lunak, atau kumpulan data. Koneksi internet Anda tersendat sesaat, dan unduhan gagal. Di masa lalu, Anda akan menghela napas frustrasi dan memulai seluruh unduhan dari awal, kehilangan semua kemajuan Anda.
Namun hari ini, Anda mengklik "Lanjutkan," dan sesuatu yang ajaib terjadi. Unduhan dilanjutkan tepat dari tempat terakhir berhenti. Tidak ada waktu yang terbuang, tidak ada bandwidth yang terbuang.
Keajaiban jaringan modern ini dimungkinkan oleh salah satu kode status HTTP yang paling kuat namun diremehkan: 206 Partial Content
.
Kode status ini mungkin tidak sesering dibahas seperti 200 OK
atau 404 Not Found
, tetapi ia memainkan peran penting dalam kinerja web modern dan pengalaman pengguna. Bahkan, tanpanya, layanan streaming favorit Anda, unduhan perangkat lunak, dan API file besar akan terasa sangat tidak efisien.
Kode ini adalah fondasi dari unduhan yang dapat dilanjutkan, streaming video yang efisien, dan transfer file paralel yang cepat. Ini adalah cara protokol untuk memecah sumber daya besar menjadi bagian-bagian yang dapat dikelola, memungkinkan klien untuk meminta tepat apa yang mereka butuhkan, tidak lebih dan tidak kurang.
Jika Anda pernah bertanya-tanya bagaimana Netflix mulai memutar film secara instan atau bagaimana Chrome mengunduh file dengan sangat efisien, 206
adalah bagian penting dari jawabannya.
Dalam postingan blog ini, kita akan menjelajahi kode status 206, menjelaskan cara kerjanya, membagikan kasus penggunaan dunia nyata, dan membahas praktik terbaik untuk bekerja dengannya. Jika Anda ingin meningkatkan pengujian dan dokumentasi API Anda, jangan lupa untuk mengunduh Apidog secara gratis. Ini adalah alat canggih yang membantu Anda menguji dan memahami respons seperti 206 Partial Content, membuat manajemen API Anda lebih lancar dan transparan.
Sekarang, mari kita jelajahi bagaimana HTTP 206 Partial Content mengubah unduhan monolitik menjadi pengalaman modern yang efisien dan bagaimana Anda dapat menggunakannya secara efektif dalam API, unduhan, dan aplikasi.
Masalah: Unduhan Monolitik
Untuk memahami mengapa 206
begitu penting, kita harus terlebih dahulu menghargai masalah yang dipecahkannya.
Cara tradisional, naif untuk mengunduh file menggunakan permintaan GET
sederhana dan respons 200 OK
:
- Klien:
GET /big-video.mp4
- Server:
200 OK
+ seluruh file video 2GB - Klien: Menunggu seluruh file diunduh sebelum dapat digunakan.
Pendekatan ini memiliki beberapa kelemahan kritis:
- Tidak Ada Ketahanan: Setiap gangguan jaringan menghentikan seluruh unduhan.
- Tidak Efisien: Jika Anda sudah memiliki paruh pertama file, Anda tidak punya cara untuk meminta hanya paruh kedua.
- Tidak Ada Kemajuan: Klien tidak dapat dengan mudah mengakses bagian-bagian file sampai transfer 100% selesai.
- Bandwidth Terbuang: Jika pengguna membatalkan unduhan 90% selesai, 90% data yang sudah ditransfer seringkali terbuang.
Kode status 206 Partial Content
, yang digunakan dengan serangkaian header HTTP tertentu, memecahkan semua masalah ini dengan mengaktifkan permintaan rentang (range requests).
Apa Sebenarnya Arti HTTP 206 Partial Content?
Kode status 206 Partial Content termasuk dalam kategori sukses 2xx. Namun tidak seperti 200 OK
, yang menunjukkan respons sukses penuh, 206 secara khusus berarti:
Server berhasil mengembalikan hanya sebagian dari sumber daya yang diminta.
Ini terjadi ketika klien (seperti browser, pemutar media, atau pengunduh) membuat permintaan parsial menggunakan header Range
.
Misalnya, jika file video 100 MB dihosting di server, klien mungkin hanya meminta 10 MB pertama untuk segera memulai pemutaran. Server merespons dengan 206 Partial Content
dan mengirimkan tepat apa yang diminta.
Sederhananya, server berkata: "Oke, Anda tidak menginginkan semuanya. Ini hanya bagian yang Anda minta."
Respons 206
yang khas terlihat seperti ini:
HTTP/1.1 206 Partial ContentContent-Type: video/mp4Content-Range: bytes 1000-1999/5000Content-Length: 1000
[...1000 bytes of video data...]
Mari kita uraikan header baru yang krusial:
Content-Range: bytes 1000-1999/5000
: Ini adalah inti dari respons206
. Ini memberi tahu klien:bytes
: Unit yang digunakan (bytes adalah yang paling umum).1000-1999
: Rentang byte yang dikirim dalam respons spesifik ini.5000
: Ukuran total seluruh sumber daya. Ini adalah informasi yang sangat berguna bagi klien.
Sederhananya, kode status HTTP 206 Partial Content menunjukkan bahwa server berhasil memenuhi permintaan klien hanya untuk sebagian dari sumber daya, bukan seluruhnya. Ini berbeda dari kode status 200 OK yang lebih dikenal, yang mengembalikan konten penuh.
Pengiriman parsial ini penting saat menangani file besar, media streaming, atau permintaan yang ingin melanjutkan unduhan yang terganggu tanpa memulai ulang.
Mengapa Kita Membutuhkan Konten Parsial?
Mari kita hadapi: tidak setiap klien membutuhkan seluruh file sekaligus. Streaming, mengunduh, atau melanjutkan transfer yang terganggu akan jauh kurang efisien tanpa permintaan parsial.
Inilah mengapa kita membutuhkan 206
:
- Efisiensi streaming: Netflix, YouTube, dan Spotify menggunakan konten parsial untuk memuat hanya cukup bagian media untuk pemutaran yang lancar.
- Unduhan yang dapat dilanjutkan: Jika internet Anda terputus pada 90% dari file 5 GB, Anda tidak ingin memulai dari awal. Dengan 206, pengunduh Anda dapat melanjutkan dari tempat terakhir berhenti.
- Optimasi bandwidth: Klien dapat meminta bagian yang lebih kecil dari sumber daya alih-alih menarik seluruhnya secara tidak perlu.
Singkatnya, 206 membuat web modern cepat, efisien, dan ramah pengguna.
Mengapa 206 Partial Content Penting?
Kode status 206 kuat karena memungkinkan:
- Melanjutkan unduhan: Jika unduhan terganggu, klien dapat meminta hanya bagian yang hilang tanpa memulai dari awal.
- Streaming yang efisien: Klien dapat melakukan buffer media dalam potongan-potongan kecil daripada memuat seluruh file di awal.
- Penghematan bandwidth: Server dapat mengirim hanya apa yang dibutuhkan klien, mengurangi transfer data yang berlebihan.
- Pengalaman pengguna yang lebih baik: Pemuatan konten besar yang cepat dan responsif seperti video, PDF, atau pembaruan perangkat lunak.
Tanpa 206 Partial Content, pengguna akan menghadapi pengalaman unduhan dan streaming yang lebih lambat dan lebih rapuh.
Kasus Penggunaan Utama 206 Partial Content
Di sinilah 206 bersinar:
- Streaming video dan audio (Netflix, YouTube, Spotify).
- Unduhan file yang dapat dilanjutkan (misalnya, pengelola unduhan Chrome).
- Respons API besar (paginasi atau unduhan file berpotongan).
- Pratinjau konten (mengambil hanya bagian pertama dari file).
Bagaimana Cara Kerja 206 Partial Content?
Untuk memahami cara kerja 206 Partial Content, Anda perlu mengetahui tentang header HTTP Range. Ketika klien ingin meminta hanya segmen atau rentang tertentu dari suatu sumber daya, ia mengirimkan permintaan HTTP dengan header Range yang menentukan byte yang diinginkan.
Misalnya:
textRange: bytes=0-999
Ini berarti, "Berikan saya 1000 byte pertama dari sumber daya."
Jika server mendukung fungsionalitas ini, ia merespons dengan kode status 206 Partial Content, bersama dengan header Content-Range yang menentukan byte mana yang dikembalikan:
textContent-Range: bytes 0-999/5000
Ini memberi tahu klien bahwa server mengirimkan byte 0 hingga 999 dari total 5000 byte.
Kunci Ajaib: Header Range
Respons 206
tidak terjadi dengan sendirinya. Ini selalu merupakan jawaban atas permintaan klien yang menyertakan header Range
.
Klien menggunakan header Range
untuk menentukan bagian file mana yang diinginkannya.
Contoh 1: Meminta Bagian Tertentu
GET /big-video.mp4 HTTP/1.1Host: example.comRange: bytes=1000-1999
Permintaan ini mengatakan, "Tolong kirimkan saya hanya byte 1000 hingga 1999 (inklusif) dari file."
Contoh 2: Melanjutkan Unduhan (Tombol "Lanjutkan")
Misalnya unduhan 5000-byte gagal setelah 2000 byte diterima. Klien dapat melanjutkan dengan meminta sisanya:
GET /big-video.mp4 HTTP/1.1Host: example.comRange: bytes=2000-
Permintaan ini mengatakan, "Tolong kirimkan saya semuanya mulai dari byte 2000 hingga akhir file."
Contoh 3: Mendapatkan Akhir File
Beberapa format file (seperti MP4) memiliki metadata di akhir. Pemutar video mungkin meminta bagian akhir terlebih dahulu untuk menentukan durasi dan codec video.
GET /big-video.mp4 HTTP/1.1Host: example.comRange: bytes=-500
Permintaan ini mengatakan, "Tolong kirimkan saya 500 byte terakhir dari file."
Bagaimana Ini Mengaktifkan Fitur Modern
1. Unduhan yang Dapat Dilanjutkan
Ini adalah aplikasi yang paling mudah. Klien melacak berapa banyak byte yang telah berhasil diterimanya. Jika koneksi terputus, ia cukup mengirim permintaan baru dengan Range: bytes=<received_so_far>-
dan melanjutkan dengan mulus dari tempat terakhir berhenti.
2. Streaming Video dan Audio
Di sinilah 206
benar-benar bersinar. Saat Anda memutar video:
- Pemutar tidak menunggu seluruh file diunduh.
- Ia segera meminta beberapa detik pertama video (
Range: bytes=0-1000000
). - Saat Anda menonton, ia terus-menerus meminta bagian-bagian berikutnya di latar belakang.
- Jika Anda melompat maju ke tengah video, pemutar menghitung rentang byte yang sesuai dan memintanya secara langsung (
Range: bytes=25000000-26000000
). Inilah mengapa Anda dapat melompat ke akhir video YouTube hampir secara instan—Anda tidak menunggu seluruh file dimuat, hanya bagian spesifik yang Anda minta.
3. Unduhan Paralel (Pengunduhan Multi-thread)
Pengelola unduhan dan browser modern menggunakan ini untuk mempercepat unduhan. Mereka membuka beberapa koneksi ke file yang sama dan meminta rentang yang berbeda secara bersamaan.
Koneksi 1: Range: bytes=0-999999
Koneksi 2: Range: bytes=1000000-1999999
Koneksi 3: Range: bytes=2000000-2999999
Koneksi 4: Range: bytes=3000000-
Setelah semua bagian diunduh, klien menggabungkannya kembali menjadi file lengkap. Ini dapat secara signifikan mengurangi total waktu unduh.
Tugas Server: Dukungan dan Header
Agar ini berfungsi, server harus mengumumkan bahwa ia mendukung permintaan rentang. Ini dilakukan dengan menyertakan header Accept-Ranges
dalam responsnya terhadap permintaan GET
normal.
HTTP/1.1 200 OKAccept-Ranges: bytesContent-Length: 5000
...
Ini memberi tahu klien, "Saya memahami header Range
, dan saya dapat melayani Anda bagian-bagian dari file ini dalam unit byte."
Jika server tidak mendukung rentang, ia cukup mengabaikan header Range
dan mengembalikan seluruh file dengan status 200 OK
.
Cara Mengimplementasikan dan Menguji 206 Partial Content
Bagi pengembang, mengaktifkan pengiriman konten parsial berarti memastikan server Anda mendukung header Range dan menanganinya dengan benar. Sebagian besar server web modern seperti Apache, Nginx, dan IIS mendukung ini secara default.
Jika Anda membangun API atau sistem pengiriman konten, Anda harus:
- Memvalidasi header Range dalam permintaan masuk.
- Merespons dengan 206 Partial Content untuk rentang yang valid.
- Menyertakan header Content-Range dalam respons.
- Menangani rentang yang tidak valid atau tidak dapat dipenuhi dengan 416 Range Not Satisfiable.
- Mengirimkan header Content-Type dan Content-Length yang sesuai.
Untuk menguji penanganan respons 206 oleh API atau server Anda, Apidog adalah alat yang sangat baik. Anda dapat mensimulasikan permintaan dengan header Range dan memeriksa bagaimana server merespons, memastikan permintaan konten parsial berperilaku seperti yang diharapkan. Unduh Apidog secara gratis hari ini untuk memulai!
Bagaimana Klien Seharusnya Menangani Respons 206
Saat menerima respons 206 Partial Content, klien harus:
- Mengurai header Content-Range untuk memahami bagian data mana yang dikirimkan.
- Menggabungkan konten parsial dengan bagian yang diterima sebelumnya untuk merekonstruksi sumber daya penuh.
- Menangani kasus-kasus ekstrem seperti rentang yang tumpang tindih atau hilang dengan anggun.
- Menghormati instruksi server tentang ukuran bagian dan batas konten.
Implementasi klien yang baik meningkatkan ketahanan unduhan dan kualitas streaming.
Bagaimana Browser Menangani 206
Browser modern:
- Secara otomatis mengirim header Range untuk elemen media (
<video>
,<audio>
). - Mendukung unduhan yang dapat dilanjutkan.
- Menghormati header
Content-Range
saat menangani respons.
Inilah mengapa Anda dapat memutar video YouTube atau melanjutkan unduhan yang gagal tanpa masalah.
Contoh Dunia Nyata: Streaming Video
Bayangkan Anda sedang menonton video online. Pemutar tidak mengunduh seluruh file sekaligus; sebaliknya, ia meminta bagian-bagian dalam potongan-potongan. Setiap permintaan potongan menyertakan header Range yang menentukan rentang byte yang diinginkannya. Server membalas dengan 206 Partial Content dan segmen yang sesuai.
Saat Anda mencari titik-titik yang berbeda dalam video, permintaan Range baru mengambil segmen byte yang berbeda. Interaksi ini memungkinkan pemutaran video yang lancar dan berkelanjutan tanpa waktu buffering yang lama.
Menguji Permintaan Rentang dengan Apidog

Menguji respons 206
secara manual bisa jadi rumit. Anda perlu membuat permintaan dengan header Range
tertentu dan menafsirkan header Content-Range
yang dihasilkan. Di sinilah Apidog menjadi alat yang sangat diperlukan.
Dengan Apidog, Anda dapat:
- Membuat Permintaan yang Tepat: Mudah menambahkan header
Range
ke permintaanGET
apa pun dengan rentang byte yang ingin Anda uji. - Memeriksa Respons: Apidog akan dengan jelas menunjukkan status
206 Partial Content
, headerContent-Range
, dan konten aktual (seringkali biner) dari respons. Anda dapat memverifikasi bahwa panjang badan respons cocok dengan rentang yang Anda minta. - Menguji Dukungan Server: Kirim permintaan
GET
normal dan periksa headerAccept-Ranges
dalam respons untuk melihat apakah server mendukung fitur ini. - Mensimulasikan Pelanjutan Unduhan: Buat urutan permintaan di mana permintaan kedua menggunakan header
Range
untuk mensimulasikan unduhan yang dilanjutkan.
Tingkat kontrol dan visibilitas ini sangat penting bagi pengembang yang mengerjakan aplikasi yang menangani transfer file besar. Tidak seperti Swagger atau Postman, Apidog bukan hanya tentang permintaan dan respons, tetapi juga tentang merancang dan mendokumentasikan alur kerja. Untuk 206, itu membuat perbedaan besar.
Manfaat Menggunakan 206 dengan Benar
- Meningkatkan UX: Pengguna tidak perlu menunggu unduhan penuh.
- Menghemat bandwidth: Hanya bagian yang diperlukan yang ditransfer.
- Mendukung sesi yang dapat dilanjutkan: Tidak perlu lagi memulai dari awal.
- Mengoptimalkan kinerja: Sempurna untuk sumber daya besar.
Potensi Jebakan dan Praktik Terbaik
- Dukungan Server adalah Kunci: Selalu periksa header
Accept-Ranges
sebelum mencoba permintaan rentang. Klien Anda harus dapat kembali ke unduhan200
penuh jika permintaan rentang tidak didukung. - Unit Rentang: Meskipun
bytes
adalah satu-satunya unit yang banyak digunakan dan didukung, spesifikasi memungkinkan unit lain (misalnya,pages
untuk printer). Dalam praktiknya, Anda akan hampir secara eksklusif berurusan dengan byte. - Beberapa Rentang: Spesifikasi memungkinkan klien untuk meminta beberapa rentang yang tidak berdekatan dalam satu permintaan (misalnya,
Range: bytes=0-99, 500-599
). Server kemudian akan merespons dengan tipe kontenmultipart/byteranges
. Namun, ini rumit dan jarang digunakan dalam praktik; biasanya lebih efisien untuk membuat beberapa permintaan. - Rentang Tidak Valid: Jika klien meminta rentang yang tidak dapat dipenuhi (misalnya,
Range: bytes=10000-
pada file 5000-byte), server harus merespons dengan kode status416 Range Not Satisfiable
dan menyertakan headerContent-Range: bytes */5000
untuk memberi tahu klien tentang rentang yang valid.
206 dalam Perbandingan: 204, 205, dan 304
- 204 No Content → Berhasil, tetapi tidak ada badan.
- 205 Reset Content → Berhasil, tetapi atur ulang UI.
- 206 Partial Content → Berhasil, tetapi hanya sebagian badan yang dikembalikan.
- 304 Not Modified → Tidak ada data baru, gunakan versi yang di-cache.
Setiap kode memiliki tempatnya, tetapi 206 adalah tentang pengiriman parsial.
Bagaimana 206 Partial Content Berperan dalam RESTful API
Dalam desain API RESTful, 206 dapat menjadi berharga untuk menangani unduhan sumber daya besar atau mengekspor data dalam potongan-potongan. Misalnya, titik akhir API yang mengirimkan file CSV atau JSON besar mungkin menerima permintaan Range, memungkinkan klien mengambil data sedikit demi sedikit.
Kesimpulan: Mengapa Anda Harus Peduli tentang 206 Partial Content
Kode status HTTP 206 Partial Content
adalah mahakarya desain protokol. Ini adalah solusi sederhana dan elegan yang membuka dunia peningkatan kinerja dan pengalaman pengguna. Ini mengubah sifat kaku, semua-atau-tidak sama sekali dari HTTP awal menjadi sistem yang fleksibel, efisien, dan tangguh untuk mentransfer data.
Kode status 206 Partial Content adalah salah satu alat paling ampuh dalam HTTP. Ini memungkinkan streaming, unduhan yang dapat dilanjutkan, optimasi bandwidth, dan pengalaman pengguna yang lebih lancar. Kode status HTTP 206 Partial Content adalah landasan transfer data yang efisien di web. Dari media streaming hingga melanjutkan unduhan dan transmisi data besar, 206 memungkinkan komunikasi yang cerdas dan fleksibel antara klien dan server.
Meskipun tidak sesederhana 200 OK
, mempelajari cara menggunakan dan mengimplementasikan 206 dengan benar dapat membuat API dan aplikasi Anda jauh lebih kuat. Dari tombol "Lanjutkan" yang menyelamatkan kesabaran Anda hingga lompatan instan dalam video streaming yang menyenangkan Anda, 206
bekerja di balik layar, membuat web modern terasa cepat dan responsif.
Jika Anda mengembangkan atau mengonsumsi API, menguasai cara kerja 206 dan menguji titik akhir Anda dalam kondisi ini sangat penting. Meskipun sebagian besar pengembang tidak akan pernah secara manual membuat header Range
dalam pekerjaan sehari-hari mereka, memahami cara kerjanya sangat penting untuk membangun aplikasi tangguh yang menangani data besar secara efisien. Itulah mengapa mengunduh Apidog secara gratis adalah langkah cerdas. Apidog memberi Anda cara langsung untuk menguji respons konten parsial, memastikan aplikasi Anda berkinerja tanpa cela. Anda dapat merancang, membuat mock, dan mendokumentasikan respons parsial, membuat hidup lebih mudah bagi pengembang, penguji, dan bahkan manajer produk.
Jadi, lain kali Anda memutar video atau melanjutkan unduhan yang terputus, ingatlah: itu adalah 206 Partial Content
yang bekerja di balik layar.