19/01/13 21:56:25 (9 years ago)

(editorial) fixes for p5 feedback and simpler prose

1 edited


  • draft-ietf-httpbis/latest/p5-range.xml

    r2126 r2134  
    327 <section title="Responses to a Range Request">
     327<section title="Responses to a Range Request" anchor="range.response">
    328328<section title="Response to a Single and Multiple Ranges Request">
    564564   </list>
    566 <t>
    567    If the server ignores a byte-range-spec (for example if it is
    568    syntactically invalid, or if it might be seen as a denial-of-service
    569    attack), the server &SHOULD; treat the request as if the invalid <x:ref>Range</x:ref>
    570    header field did not exist. (Normally, this means send a <x:ref>200 (OK)</x:ref>
    571    response containing the full representation).
    572 </t>
    588581   The "If-Range" header field allows a client to "short-circuit" the second
    589    request. Informally, its meaning is "if the representation is unchanged, send
    590    me the part(s) that I am missing; otherwise, send me the entire new
    591    representation".
     582   request. Informally, its meaning is: if the representation is unchanged,
     583   send me the part(s) that I am requesting in Range; otherwise, send me the
     584   entire representation.
    593586<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Range"/>
    621614   validator for the selected representation of the target resource, then
    622615   the server &SHOULD; send the specified sub-range of the representation
    623    using a <x:ref>206 (Partial Content)</x:ref> response. If the validator does not match,
    624    then the server &SHOULD; send the entire representation using a <x:ref>200 (OK)</x:ref>
    625    response.
     616   using a <x:ref>206 (Partial Content)</x:ref> response. If the validator
     617   does not match, then the server &SHOULD; send the entire representation
     618   using a <x:ref>200 (OK)</x:ref> response.
    757750  <x:anchor-alias value="other-range-set"/>
    759    The "Range" header field defines the GET method (conditional or
    760    not) to request one or more sub-ranges of the response representation data, instead
    761    of the entire representation data.
     752   The "Range" header field on a GET request modifies the method semantics to
     753   request transfer of only one or more sub-ranges of the selected
     754   representation data in a successful response, rather than the entire
     755   representation data.
    763757<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Range"/>
    769    A server &MAY; ignore the Range header field. However, origin
    770    servers and intermediate caches ought to support byte ranges when
    771    possible, since Range supports efficient recovery from partially
    772    failed transfers, and supports efficient partial retrieval of large
    773    representations.
    774 </t>
    775 <t>
    776    If the server supports the Range header field and the specified range or
    777    ranges are appropriate for the representation:
    778   <list style="symbols">
    779      <t>The presence of a Range header field in an unconditional GET modifies
    780         what is sent if the GET is otherwise successful. In other
    781         words, the response carries a status code of <x:ref>206 (Partial Content)</x:ref>
    782         instead of <x:ref>200 (OK)</x:ref>.</t>
    784      <t>The presence of a Range header field in a conditional GET (a request
    785         using one or both of <x:ref>If-Modified-Since</x:ref> and
    786         <x:ref>If-None-Match</x:ref>, or one or both of
    787         <x:ref>If-Unmodified-Since</x:ref> and <x:ref>If-Match</x:ref>) modifies
    788         what is sent if the GET is otherwise successful and the
    789         condition is true. It does not affect the <x:ref>304 (Not Modified)</x:ref>
    790         response sent if the conditional is false.</t>
    791   </list>
    792 </t>
    793 <t>
    794    In some cases, it might be more appropriate to use the If-Range
    795    header field (see <xref target="header.if-range"/>) in addition to the Range
    796    header field.
    797 </t>
    798 <t>
    799    If a proxy that supports ranges receives a Range request, forwards
    800    the request to an inbound server, and receives an entire representation in
    801    reply, it &MAY; only send the requested range to its client.
     763   A server &MAY; ignore the Range header field. However, origin servers and
     764   intermediate caches ought to support byte ranges when possible, since Range
     765   supports efficient recovery from partially failed transfers and partial
     766   retrieval of large representations. A server &MUST; ignore a Range header
     767   field received with a request method other than GET.
     770   The Range header field is evaluated after evaluating the preconditions of
     771   <xref target="Part4"/> and only if the result of their evaluation is
     772   leading toward a <x:ref>200 (OK)</x:ref> response. In other words, Range
     773   is ignored when a conditional GET would result in a
     774   <x:ref>304 (Not Modified)</x:ref> response.
     777   The If-Range header field (<xref target="header.if-range"/>) can be used as
     778   a precondition to applying the Range header field.
     781   If all of the preconditions are true, the server supports the Range header
     782   field for the target resource, the specified range(s) are syntactically
     783   correct (as defined in <xref target="byte.ranges"/>), and at least one of
     784   the ranges has a non-empty intersection with the current selected
     785   representation extent, then the server &MAY; respond with a status code of
     786   <x:ref>206 (Partial Content)</x:ref> and a payload containing one or more
     787   partial representations that correspond to those requested, as defined in
     788   <xref target="range.response"/>.
    12521239  Date: Wed, 15 Nov 1995 06:25:24 GMT
    12531240  Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
    1254   Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
     1241  Content-Length: 1741
     1242  Content-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
    1257   Content-type: application/pdf
    1258   Content-range: bytes 500-999/8000
     1245  Content-Type: application/pdf
     1246  Content-Range: bytes 500-999/8000
    12601248  ...the first range...
    1262   Content-type: application/pdf
    1263   Content-range: bytes 7000-7999/8000
     1250  Content-Type: application/pdf
     1251  Content-Range: bytes 7000-7999/8000
    12651253  ...the second range
    12731261  Date: Tue, 14 Nov 1995 06:25:24 GMT
    12741262  Last-Modified: Tue, 14 July 04:58:08 GMT
    1275   Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
     1263  Content-Length: 2331785
     1264  Content-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
    1278   Content-type: video/example
    1279   Content-range: exampleunit 1.2-4.3/25
     1267  Content-Type: video/example
     1268  Content-Range: exampleunit 1.2-4.3/25
    12811270  ...the first range...
    1283   Content-type: video/example
    1284   Content-range: exampleunit 11.2-14.3/25
     1272  Content-Type: video/example
     1273  Content-Range: exampleunit 11.2-14.3/25
    12861275  ...the second range
Note: See TracChangeset for help on using the changeset viewer.