RFC 2068:Hypertext Transfer Protocol -- HTTP/1.1
RFC-Ref

range


Click on the red underlined text to get to the source

... importance ("weight") of various negotiable parameters. A weight is normalized to a real number in the range 0 through 1, where 0 is the minimum and 1 the maximum value. HTTP/1.1 applications MUST NOT generate more than three digits after ...
... tags in the ETag (section 14.20), If-Match (section 14.25), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. The definition of how they are used and compared as cache ...
... Range Units ...
... HTTP/1.1 allows a client to request that only part (a range of) the response entity be included within the response. HTTP/1.1 ...
... response entity be included within the response. HTTP/1.1 uses range units in the Range (section 14.36) and Content-Range ...
... HTTP/1.1 uses range units in the Range (section 14.36) and Content-Range (section 14.17) header fields ...
... range units in the Range (section 14.36) and Content-Range (section 14.17) header fields. An entity ...
... to various structural units. range-unit = bytes-unit | other-range-unit ...
... range-unit = bytes-unit | other-range-unit bytes-unit = "bytes" ...
... bytes-unit = "bytes" other-range-unit = token ...
... token The only range unit defined by HTTP/1.1 is "bytes". HTTP/1.1 ...
... HTTP/1.1 is "bytes". HTTP/1.1 implementations may ignore ranges specified using other units. HTTP/1.1 has been designed to allow implementations of applications ...
... HTTP/1.1 has been designed to allow implementations of applications that do not depend on knowledge of ranges. ...


... NOT be used unless the sender knows that the recipient can parse it; the presence in a request of a Range header with multiple byte-range ...
... the presence in a request of a Range header with multiple byte-range specifiers implies that the client can parse multipart/byteranges ...


... | If-Match ; Section 14.25 | If-None-Match ; Section 14.26 | If-Range ; Section 14.27 | If-Unmodified-Since ; Section 14.28 | Max-Forwards ; Section 14.31 ...
... Proxy-Authorization ; Section 14.34 | Range ; Section 14.36 | Referer ; Section 14.37 | User-Agent ...


... | Content-MD5 ; Section 14.16 | Content-Range ; Section 14.17 | Content-Type ; Section 14.18 ...


... request message includes an If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. A conditional GET method requests that the entity ...
... GET method change to a "partial GET" if the request message includes a Range header field. A partial GET requests that only part of the entity ...
... problem. The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not understand or implement and MUST return a 501 (Not Implemented) response in such cases. ...


... The server has fulfilled the partial GET request for the resource. The request must have included a Range header field (section 14.36) indicating the desired range ...
... Range header field (section 14.36) indicating the desired range. The response MUST include either a Content-Range header field ...
... indicating the desired range. The response MUST include either a Content-Range header field (section 14.17) indicating the range ...
... Content-Range header field (section 14.17) indicating the range included with this response, or a multipart/byteranges Content-Type ...
... included with this response, or a multipart/byteranges Content-Type including Content-Range fields for each part. If multipart/byteranges is not used, the Content-Length header field ...
... A cache that does not support the Range and Content-Range headers ...
... A cache that does not support the Range and Content-Range headers MUST NOT cache ...


... For example, either kind is usable for a conditional GET of a full entity. However, only a strong validator is usable for a sub-range retrieval, since otherwise the client may end up with an internally ...
... If a client wishes to perform a sub-range retrieval on a value for which it has only a Last-Modified time and no opaque validator, it ...
... caches and clients to safely perform sub- range retrievals on values that have been obtained from HTTP/1.0 servers. ...
... directive prohibits caching. However, a cache that does not support the Range and Content-Range headers MUST NOT cache ...
... cache that does not support the Range and Content-Range headers MUST NOT cache 206 (Partial ...
... o Content-Length o Content-Range o Content-Type ...
... Combining Byte Ranges ...
... A response may transfer only a subrange of the bytes of an entity- body, either because the request included one or more Range specifications, or because a connection was broken prematurely. After ...
... connection was broken prematurely. After several such transfers, a cache may have received several ranges of the same entity-body. ...
... tag SHOULD NOT be included in the If-None-Match header unless the request is for a range that would be fully satisfied by that entry. ...


... Accept = "Accept" ":" #( media-range [ accept-params ] ) media-range ...
... range [ accept-params ] ) media-range = ( "*/*" | ( type "/" "*" ) | ( type "/" subtype ) ...
... The asterisk "*" character is used to group media types into ranges, with "*/*" indicating all media types and "type/*" indicating all ...
... with "*/*" indicating all media types and "type/*" indicating all subtypes of that type. The media-range MAY include media type parameters that are applicable to that range. ...
... subtypes of that type. The media-range MAY include media type parameters that are applicable to that range. Each media-range ...
... range. Each media-range MAY be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative quality factor. The first "q" parameter (if any) separates the media-range ...
... range MAY be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative quality factor. The first "q" parameter (if any) separates the media-range parameter(s) from the accept-params. Quality factors allow the user or user agent ...
... or user agent to indicate the relative degree of preference for that media-range, using the qvalue scale from 0 to 1 (section 3.9). The default value is q=1. ...
... practice. Although this prevents any media type parameter named "q" from being used with a media range, such an event is believed to be unlikely given the lack of any "q" parameters in the IANA ...
... entity." Media ranges can be overridden by more specific media ranges or specific media types ...
... Media ranges can be overridden by more specific media ranges or specific media types. If more than one media range ...
... ranges or specific media types. If more than one media range applies to a given type, the most specific reference has precedence. For example, ...
... The media type quality factor associated with a given type is determined by finding the media range with the highest precedence which matches that type. For example, ...
... Note: A user agent may be provided with a default set of quality values for certain media ranges. However, unless the user agent is a closed system which cannot interact with other rendering agents ...
... Language" ":" 1#( language-range [ ";" "q" "=" qvalue ] ) language ...
... language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" ) Each language ...
... Each language-range MAY be given an associated quality value which represents an estimate of the user's preference for the languages ...
... represents an estimate of the user's preference for the languages specified by that range. The quality value defaults to "q=1". For example, ...
... would mean: "I prefer Danish, but will accept British English and other types of English." A language-range matches a language-tag if ...
... tag character following the prefix is "-". The special range "*", if present in the Accept-Language field, matches every tag ...
... Language field, matches every tag not matched by any other range present in the Accept-Language field. ...
... Language field is the quality value of the longest language- range in the field that matches the language-tag. If no language ...
... tag. If no language- range in the field matches the tag, the language quality factor ...
... Accept-Ranges ...
... The Accept-Ranges response-header field allows the server to indicate its acceptance of range ...
... Ranges response-header field allows the server to indicate its acceptance of range requests for a resource: Accept-Ranges ...
... range requests for a resource: Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges ...
... Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges ...
... Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges acceptable-ranges ...
... ranges acceptable-ranges = 1#range-unit | "none" ...
... acceptable-ranges = 1#range-unit | "none" Origin servers that accept byte-range ...
... range-unit | "none" Origin servers that accept byte-range requests MAY send Accept-Ranges ...
... range requests MAY send Accept-Ranges: bytes but are not required to do so. Clients ...
... but are not required to do so. Clients MAY generate byte-range requests without having received this header for the resource ...
... involved. Servers that do not accept any kind of range request for a resource MAY send ...
... MAY send Accept-Ranges: none to advise the client ...
... to advise the client not to attempt a range request. ...
... Caches SHOULD use an arithmetic type of at least 31 bits of range. ...
... Content-Range ...
... The Content-Range entity-header is sent with a partial entity ...
... When a server returns a partial response to a client, it must describe both the extent of the range covered by the response, and the length of the entire entity-body. ...
... entity-body. Content-Range = "Content-Range" ":" content-range-spec ...
... Content-Range = "Content-Range" ":" content-range-spec ...
... Content-Range = "Content-Range" ":" content-range-spec content-range ...
... range-spec content-range-spec = byte-content-range-spec ...
... content-range-spec = byte-content-range-spec byte-content-range ...
... range-spec byte-content-range-spec = bytes-unit SP first-byte-pos "-" last-byte-pos "/" entity ...
... DIGIT Unlike byte-ranges-specifier values, a byte-content-range-spec may only specify one range ...
... Unlike byte-ranges-specifier values, a byte-content-range-spec may only specify one range, and must contain absolute byte positions for ...
... ranges-specifier values, a byte-content-range-spec may only specify one range, and must contain absolute byte positions for both the first and last byte of the range. ...
... only specify one range, and must contain absolute byte positions for both the first and last byte of the range. A byte-content-range ...
... range. A byte-content-range-spec whose last-byte-pos value is less than its first-byte-pos value, or whose entity-length value is less than or ...
... entity-length value is less than or equal to its last-byte-pos value, is invalid. The recipient of an invalid byte-content-range-spec MUST ignore it and any content transferred along with it. ...
... transferred along with it. Examples of byte-content-range-spec values, assuming that the entity contains a total of 1234 bytes: ...
... When an HTTP message includes the content of a single range (for example, a response to a request for a single range, or to a request ...
... HTTP message includes the content of a single range (for example, a response to a request for a single range, or to a request for a set of ranges that overlap without any holes), this content is ...
... example, a response to a request for a single range, or to a request for a set of ranges that overlap without any holes), this content is transmitted with a Content-Range header ...
... for a set of ranges that overlap without any holes), this content is transmitted with a Content-Range header, and a Content-Length header ...
... Last-modified: Wed, 15 Nov 1995 04:58:08 GMT Content-Range: bytes 21010-47021/47022 Content-Length: 26012 ...
... When an HTTP message includes the content of multiple ranges (for example, a response to a request for multiple non-overlapping ranges ...
... ranges (for example, a response to a request for multiple non-overlapping ranges), these are transmitted as a multipart MIME message. The multipart MIME content ...
... client that cannot decode a MIME multipart/byteranges message should not ask for multiple byte-ranges in a single request. When a client requests ...
... When a client requests multiple byte-ranges in one request, the server SHOULD return them in the order that they appeared in the request. ...
... request. If the server ignores a byte-range-spec because it is invalid, the server should treat the request as if the invalid Range header field ...
... If the server ignores a byte-range-spec because it is invalid, the server should treat the request as if the invalid Range header field ...
... A GET method with an If-Modified-Since header and no Range header requests that the identified entity ...
... overhead. Note that the Range request-header field modifies the meaning of If-Modified-Since; see section 14.36 for full details. ...
... If-Range ...
... entity in its cache, it could use the Range request-header with a conditional GET (using either or both of If-Unmodified-Since and If-Match.) However, if the ...
... entity-body. The If-Range header allows a client to "short-circuit ...
... entity.' If-Range = "If-Range" ":" ( entity-tag ...
... If-Range = "If-Range" ":" ( entity-tag | HTTP ...
... tag for an entity, but does have a Last- Modified date, it may use that date in a If-Range header. (The server can distinguish between a valid ...
... entity-tag by examining no more than two characters.) The If-Range header should only be used together with a Range ...
... Range header should only be used together with a Range header, and must be ignored if the request does not include a Range ...
... Range header, and must be ignored if the request does not include a Range header, or if the server does not support the sub-range ...
... Range header, or if the server does not support the sub-range operation. If the entity ...
... If the entity tag given in the If-Range header matches the current entity ...
... tag for the entity, then the server should provide the specified sub-range of the entity using a 206 (Partial content) response. If the entity ...
... Range ...
... Byte Ranges ...
... HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity ...
... entity. (However, not all clients and servers need to support byte- range operations.) Byte range ...
... range operations.) Byte range specifications in HTTP apply to the sequence of bytes in ...
... message-body). A byte range operation may specify a single range of bytes, or a set of ranges ...
... A byte range operation may specify a single range of bytes, or a set of ranges within a single entity ...
... range operation may specify a single range of bytes, or a set of ranges within a single entity. ...
... single entity. ranges-specifier = byte-ranges-specifier ...
... ranges-specifier = byte-ranges-specifier byte-ranges ...
... ranges-specifier byte-ranges-specifier = bytes-unit "=" byte-range-set ...
... byte-ranges-specifier = bytes-unit "=" byte-range-set byte-range ...
... range-set byte-range-set = 1#( byte-range-spec | suffix-byte-range ...
... byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec ) ...
... range-set = 1#( byte-range-spec | suffix-byte-range-spec ) byte-range ...
... range-spec ) byte-range-spec = first-byte-pos "-" [last-byte-pos] ...
... DIGIT The first-byte-pos value in a byte-range-spec gives the byte-offset of the first byte in a range. The last-byte-pos value gives the ...
... The first-byte-pos value in a byte-range-spec gives the byte-offset of the first byte in a range. The last-byte-pos value gives the byte-offset of the last byte in the range; that is, the byte ...
... of the first byte in a range. The last-byte-pos value gives the byte-offset of the last byte in the range; that is, the byte positions specified are inclusive. Byte offsets start at zero. ...
... If the last-byte-pos value is present, it must be greater than or equal to the first-byte-pos in that byte-range-spec, or the byte- range-spec is invalid. The recipient of an invalid byte-range ...
... equal to the first-byte-pos in that byte-range-spec, or the byte- range-spec is invalid. The recipient of an invalid byte-range-spec must ignore it. ...
... range-spec, or the byte- range-spec is invalid. The recipient of an invalid byte-range-spec must ignore it. ...
... suffix-byte-range-spec = "-" suffix-length ...
... A suffix-byte-range-spec is used to specify the suffix of the entity ...
... entity-body is used. Examples of byte-ranges-specifier values (assuming an entity-body of length 10000): ...
... Range Retrieval Requests ...
... unconditional GET methods may request one or more sub-ranges of the entity, instead of the entire entity ...
... entity, instead of the entire entity, using the Range request header, which applies to the entity ...
... entity returned as the result of the request: Range = "Range" ":" ranges-specifier ...
... Range = "Range" ":" ranges-specifier ...
... Range = "Range" ":" ranges-specifier A server MAY ignore the Range ...
... ranges-specifier A server MAY ignore the Range header. However, HTTP/1.1 origin ...
... HTTP/1.1 origin servers and intermediate caches SHOULD support byte ranges when possible, since Range supports efficient recovery from partially ...
... caches SHOULD support byte ranges when possible, since Range supports efficient recovery from partially failed transfers, and supports efficient partial retrieval of large entities. ...
... entities. If the server supports the Range header and the specified range or ...
... If the server supports the Range header and the specified range or ranges are appropriate for the entity ...
... header and the specified range or ranges are appropriate for the entity: ...
... entity: o The presence of a Range header in an unconditional GET modifies ...
... Content) instead of 200 (OK). o The presence of a Range header in a conditional GET (a request using one or both of If-Modified-Since and If-None-Match, or ...
... returned if the conditional is false. In some cases, it may be more appropriate to use the If-Range header (see section 14.27) in addition to the Range ...
... Range header (see section 14.27) in addition to the Range header. ...
... If a proxy that supports ranges receives a Range request, forwards the request to an inbound server, and receives an entire entity ...
... If a proxy that supports ranges receives a Range request, forwards the request to an inbound server, and receives an entire entity in ...
... the request to an inbound server, and receives an entire entity in reply, it SHOULD only return the requested range to its client. It SHOULD store the entire received response in its cache ...


... Paul Leach, Koen Holtman, David Morris, and Larry Masinter. Most of the specification of ranges is based on work originally done by Ari Luotonen and John Franks, with additional input from Steve Zilles. ...


... When an HTTP message includes the content of multiple ranges (for example, a response to a request for multiple non-overlapping ranges ...
... ranges (for example, a response to a request for multiple non-overlapping ranges), these are transmitted as a multipart MIME message. The multipart media type ...
... media type includes two or more parts, each with its own Content-Type and Content-Range fields. The parts are separated using a MIME boundary parameter. ...
... Content-type: application/pdf Content-range: bytes 500-999/8000 ...the first range ...
... range: bytes 500-999/8000 ...the first range... --THIS_STRING_SEPARATES Content-type ...
... Content-type: application/pdf Content-range: bytes 7000-7999/8000 ...the second range ...
... range: bytes 7000-7999/8000 ...the second range --THIS_STRING_SEPARATES-- ...



Google
Web
RFC-Ref