HTTPQUERY
Bahasa Indonesia

Range

Penggunaan

Header Range memungkinkan pengambilan sebagian dari sebuah sumber daya. Klien menyertakan header ini untuk meminta rentang byte tertentu alih-alih mengunduh seluruh sumber daya. Hal ini sangat penting untuk melanjutkan unduhan yang terputus, streaming media dengan dukungan pencarian posisi, serta memuat berkas besar dalam beberapa segmen secara paralel.

Sebelum mengirim permintaan range, klien memverifikasi dukungan server dengan memeriksa header Accept-Ranges pada response sebelumnya. Nilai bytes menegaskan bahwa server menangani permintaan rentang byte. Nilai none menunjukkan bahwa server tidak menerima permintaan range.

Ketika permintaan range berhasil, server merespons dengan 206 Partial Content dan menyertakan header Content-Range yang menunjukkan posisi byte dan ukuran total sumber daya. Beberapa rentang dalam satu permintaan menghasilkan response multipart dengan setiap bagian membawa header Content-Range dan Content-Type miliknya sendiri.

Jika rentang yang diminta berada di luar batas sumber daya, server mengembalikan 416 Range Not Satisfiable. Dalam beberapa kasus, server mengabaikan header Range sepenuhnya dan menyajikan sumber daya utuh dengan status 200.

unit

unit menetapkan satuan pengukuran untuk rentang. bytes adalah satuan standar yang didefinisikan dalam spesifikasi HTTP. Satuan rentang kustom diizinkan, tetapi jarang digunakan.

range-start dan range-end

Nilai range-start adalah offset byte berbasis nol tempat rentang dimulai (wajib). Nilai range-end adalah offset byte berbasis nol tempat rentang berakhir (opsional). Menghilangkan range-end berarti meminta seluruh byte dari range-start sampai akhir sumber daya.

suffix-length

Bentuk suffix-length meminta N byte terakhir dari sebuah sumber daya. Format -N mengambil N byte terakhir tanpa perlu mengetahui ukuran total sumber daya.

Contoh

Klien meminta 1.000 byte pertama dari sebuah berkas gambar berukuran besar. Server merespons dengan 206 Partial Content dan menetapkan rentang byte serta ukuran total berkas pada header Content-Range.

GET /photo.jpg HTTP/1.1
Host: cdn.example.re
Range: bytes=0-999
HTTP/1.1 206 Partial Content
Content-Type: image/jpeg
Content-Length: 1000
Content-Range: bytes 0-999/250000

Klien melanjutkan unduhan mulai dari byte ke-50.000. Menghilangkan nilai akhir berarti meminta semua data dari offset yang diberikan sampai akhir sumber daya.

Range: bytes=50000-

Klien meminta 500 byte terakhir dari sebuah berkas. Bentuk sufiks ini berguna ketika ukuran total berkas tidak diketahui oleh klien.

Range: bytes=-500

Klien meminta dua rentang byte terpisah dalam satu permintaan. Server mengembalikan response multipart dengan setiap segmen sebagai bagian body tersendiri.

Range: bytes=0-499, 1000-1499