The IM HTTP response header is included by the server to indicate the instance-manipulations, if any, that have been applied to the instance represented by the response.
Typical instance manipulations include delta encoding and compression. Acceptable parameters for instance-manipulations are:
vcdiffA delta using the vcdiff encoding format.
diffeThe output of the UNIX diff -e command.
gdiffThe GDIFF encoding format.
gzipSame definition as the HTTP gzip content-coding.
deflateSame definition as the HTTP deflate content-coding.
deflate-rawSame definition as the HTTP deflate-raw content-coding.
rangeA tokenindicating that the result is partial content, as the result of a range selection.
identityA token used only in the A-IM header (not in the IM header), to indicate whether or not the identity instance-manipulation is acceptable.
HTTP responses that include an IM header must response with the HTTP status code 226 IM Used.
Range and instance-manipulation
If the instance-manipulations include both
range parameter and at least one other non-identity instance-manipulation, the IM header field must be used to indicate the order in which all of these instance-manipulations, including
range parameter, are applied. If the IM header lists the
range instance-manipulation parameter, the response must include either a HTTP Content-Range header or a
multipart/byteranges Content-Type in which each part contains a HTTP Content-Range header.
However, if the server only lists the
range instance-manipulation parameter in the HTTP response, then the IM header shall be omitted and the HTTP status code 206 Partial Content is sent instead.
The following example indicates that the entity-body is a delta encoding of the instance, using the
The following example indicates that the instance has first been delta-encoded using the
diffe encoding, then the result of that has been compressed using
deflate, and finally one or more ranges of that compressed encoding have been selected.
IM: diffe, deflate, range
The HTTP IM response header is used to indicate instance-manipulations by the server.