HTTPQUERY
Bahasa Indonesia

226 IM Used

Penggunaan

Response 226 IM Used memberi tahu klien bahwa body berisi versi sumber daya yang telah dimodifikasi, bukan representasi utuhnya. Salah satu pemanfaatan yang umum adalah delta encoding, yaitu hanya perbedaan antara versi yang di-cache dan versi saat ini yang dikirimkan, sehingga menghemat bandwidth.

Server menerapkan instance manipulation yang dukungannya dinyatakan klien melalui header request A-IM. Manipulasi yang diterima dicantumkan dalam satu baris yang dipisahkan koma atau tersebar di beberapa baris.

Caching

Response 226 IM Used mengikuti aturan delta caching yang didefinisikan dalam spesifikasinya sendiri, bukan daftar caching heuristik standar. Response tersebut dapat digunakan bersama instance dasar yang tersimpan di cache untuk menyusun entri cache bagi instance saat ini, dan direktif Cache-Control standar tetap berlaku jika ada.

Instance saat ini dalam bentuk belum termodifikasi tidak selalu tersedia secara langsung. Merekonstruksi sumber daya utuh menuntut penggabungan response 226 dengan instance dasar yang sebelumnya di-cache, dengan berpedoman pada instance manipulation yang diterapkan server.

Contoh

Klien memulai dengan cache kosong dan meminta sebuah berkas PDF. Header Accept-Encoding menandakan dukungan terhadap kompresi gzip. Server merespons dengan berkas berenkode gzip secara utuh dan status 200.

Pada permintaan berikutnya, klien memeriksa apakah dokumen itu berubah dengan mengirimkan nilai ETag dari response pertama di dalam header If-None-Match. Klien juga menyatakan dukungan terhadap delta encoding vcdiff melalui header A-IM.

Server mendeteksi bahwa sumber daya telah berubah sejak ETag awal dan menghasilkan sebuah berkas delta. Sumber daya yang tidak berubah menghasilkan 304 sebagai gantinya. Header Delta-Base pada response mengidentifikasi versi cache mana yang menjadi dasar perhitungan delta tersebut. Header IM mencantumkan instance manipulation yang diterapkan.

Permintaan

GET /livingdocs/current_specs.pdf HTTP/1.1
Host: example.com
Accept-Encoding: gzip

Respons

HTTP/1.1 200 OK
ETag: "1234-000"
Content-Encoding: gzip

<gzip-compressed file>

Permintaan (berikutnya)

GET /livingdocs/current_specs.pdf HTTP/1.1
Host: example.com
If-None-Match: "1234-000"
Accept-Encoding: gzip
A-IM: vcdiff

Respons (delta)

HTTP/1.1 226 IM Used
ETag: "1234-111"
Delta-Base: "1234-000"
Content-Encoding: gzip
IM: vcdiff

<gzip-compressed delta file>

Referensi kode

.NET

HttpStatusCode.IMUsed

Rust

http::StatusCode::IM_USED

Rails

:im_used

Go

http.StatusIMUsed

Symfony

Response::HTTP_IM_USED

Python3.5+

http.HTTPStatus.IM_USED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_IM_USED

Angular

@angular/common/http/HttpStatusCode.ImUsed