226 IM Used
The server applied a delta encoding and is returning the difference from a version the client already has, rather than the whole resource.
At a glance
- Status code
- 226 IM Used
- Class
- 2xx, success, the request was received and accepted
- Defined in
- RFC 3229
- Cacheable by default
- yes
- Response body
- The result of applying instance manipulations, not the full resource.
In detail
Delta encoding in HTTP lets a client say which version it holds and receive only the changes. 226 signals that the body is that delta, described by the IM header.
Almost nothing implements it. Modern deployments get the same benefit from conditional requests plus compression, which every intermediary already understands.
If you meet 226 in the wild it is usually a specialised replication protocol. General HTTP clients will not decode the body correctly.
Examples
HTTP/1.1 226 IM Used
IM: vcdiff
Delta-Base: "e0023aa4e"
ETag: "e0023aa4f"Things that catch people out
- A cache that does not understand the IM header will store the delta as if it were the full resource.
- Delta-Base identifies which version the delta applies to. Without it the body is unusable.
Try it: HTTP Request Builder
Build a request with any method, headers and body, send it, and read the status line the server returns.
HTTP Request Builder
LOCAL · Browser-OnlyBuild and test HTTP requests with custom headers and body
Authentication
Headers
Generate Code
curl -X GET 'https://api.example.com/endpoint' \
-H 'Content-Type: application/json'Showing a sample URL. Enter your endpoint above to update the snippet.
Related HTTP status codes
All http status codes →200 OK
The request succeeded. What the body contains depends on the method: a GET returns the resource, a POST returns the result of the action.
304 Not Modified
The cached copy the client already holds is still current, so the server sent no body. This is what makes conditional requests cheap.
206 Partial Content
The server is returning part of the resource because the request carried a Range header. This is what makes resumable downloads and video seeking work.
300 Multiple Choices
The request matched more than one representation and the server is asking the client to pick, rather than choosing for it.
301 Moved Permanently
The resource has a new permanent URL, given in Location. Search engines transfer ranking signals to the target and clients may cache the redirect.
302 Found
The resource is temporarily at a different URL. The original URL stays authoritative and should keep being used for future requests.
Tools for this
- HTTP Request Builder Free online HTTP request builder - build and test HTTP requests with custom headers and body
- HTTP Headers Checker Free online HTTP headers checker - view HTTP response headers for any URL