only for RuBoard - do not distribute or recompile Previous Section Next Section

1.9 Retrieving Content

The Content-length header specifies the length of the data (in bytes) that is returned by the server. Due to the dynamic nature of some requests, the Content-length is sometimes unknown, and this header might be omitted.

There are three common ways that a client can retrieve data from the entity-body of the server's response:

1.9.1 Byte Ranges

In HTTP 1.1, the client does not have to retrieve the entire entity-body at once, but can get it in pieces, if the server allows it to do so. If the server declares that it supports byte ranges using the Accept-Ranges header:

HTTP/1.1 200 OK
[Other headers here]
Accept-Ranges: bytes

The client can then request the data in pieces. For example:

GET /largefile.html HTTP/1.1
[Other headers here]
Range: 0-65535

When the server returns the specified range, it includes a Content-range header to indicate which portion of the document is being sent, and also to tell the client how long the file is:

HTTP/1.1 200 OK
[Other headers here]
Content-range: 0-65535/83028576

For caching purposes, a client can use the If-Range header along with Range to request an updated portion of the document only if the document has been changed. Here is an example:

GET /largefile.html HTTP/1.1
[Other headers here]
If-Range: Mon, 02 May 1996 04:51:00 GMT
Range: 0-65535

The If-Range header can use either a last modified date or an entity tag to verify that the document is still the same.

only for RuBoard - do not distribute or recompile Previous Section Next Section