Changeset 2150


Ignore:
Timestamp:
Jan 23, 2013, 2:21:37 AM (7 years ago)
Author:
fielding@…
Message:

(editorial) more cleanup in p5

Location:
draft-ietf-httpbis/latest
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p5-range.html

    r2147 r2150  
    449449  }
    450450  @bottom-center {
    451        content: "Expires July 24, 2013";
     451       content: "Expires July 27, 2013";
    452452  }
    453453  @bottom-right {
     
    492492      <meta name="dct.creator" content="Reschke, J. F.">
    493493      <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p5-range-latest">
    494       <meta name="dct.issued" scheme="ISO8601" content="2013-01-20">
     494      <meta name="dct.issued" scheme="ISO8601" content="2013-01-23">
    495495      <meta name="dct.replaces" content="urn:ietf:rfc:2616">
    496496      <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines range requests and the rules for constructing and combining responses to those requests.">
     
    518518            </tr>
    519519            <tr>
    520                <td class="left">Expires: July 24, 2013</td>
     520               <td class="left">Expires: July 27, 2013</td>
    521521               <td class="right">J. Reschke, Editor</td>
    522522            </tr>
     
    527527            <tr>
    528528               <td class="left"></td>
    529                <td class="right">January 20, 2013</td>
     529               <td class="right">January 23, 2013</td>
    530530            </tr>
    531531         </tbody>
     
    552552         in progress”.
    553553      </p>
    554       <p>This Internet-Draft will expire on July 24, 2013.</p>
     554      <p>This Internet-Draft will expire on July 27, 2013.</p>
    555555      <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1>
    556556      <p>Copyright © 2013 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
     
    670670  <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a>  = 1*<a href="#imported.abnf" class="smpl">DIGIT</a>
    671671  <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a>   = 1*<a href="#imported.abnf" class="smpl">DIGIT</a>
    672 </pre><p id="rfc.section.2.1.p.5">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
    673          gives the byte-offset of the last byte in the range; that is, the byte positions specified are inclusive. Byte offsets start
    674          at zero.
    675       </p>
    676       <p id="rfc.section.2.1.p.6">Examples of byte-ranges-specifier values: </p>
     672</pre><p id="rfc.section.2.1.p.5">The <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a> value in a <a href="#rule.ranges-specifier" class="smpl">byte-range-spec</a> gives the byte-offset of the first byte in a range. The <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> value gives the byte-offset of the last byte in the range; that is, the byte positions specified are inclusive. Byte offsets
     673         start at zero.
     674      </p>
     675      <p id="rfc.section.2.1.p.6">Examples of <a href="#rule.ranges-specifier" class="smpl">byte-ranges-specifier</a> values:
     676      </p>
    677677      <ul>
    678678         <li>The first 500 bytes (byte offsets 0-499, inclusive):
     
    683683</pre> </li>
    684684      </ul>
    685       <p id="rfc.section.2.1.p.7">If the last-byte-pos value is present, it <em class="bcp14">MUST</em> be greater than or equal to the first-byte-pos in that byte-range-spec, or the byte-range-spec is syntactically invalid. The
    686          recipient of a byte-range-set that includes one or more syntactically invalid byte-range-spec values <em class="bcp14">MUST</em> ignore the header field that includes that byte-range-set.
    687       </p>
    688       <p id="rfc.section.2.1.p.8">If the last-byte-pos value is absent, or if the value is greater than or equal to the current length of the representation
    689          data, last-byte-pos is taken to be equal to one less than the current length of the representation in bytes.
    690       </p>
    691       <p id="rfc.section.2.1.p.9">By its choice of last-byte-pos, a client can limit the number of bytes retrieved without knowing the size of the representation.</p>
     685      <p id="rfc.section.2.1.p.7">A <a href="#rule.ranges-specifier" class="smpl">byte-range-spec</a> is invalid if the <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> value is present and less than the <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a>.
     686      </p>
     687      <p id="rfc.section.2.1.p.8">A client can limit the number of bytes requested without knowing the size of the selected representation. If the <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> value is absent, or if the value is greater than or equal to the current length of the representation data, the byte range
     688         is interpreted as the remainder of the representation (i.e., the server replaces the value of <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a> with a value that is one less than the current length of the selected representation).
     689      </p>
     690      <p id="rfc.section.2.1.p.9">A client can request the last N bytes of the selected representation using a <a href="#rule.ranges-specifier" class="smpl">suffix-byte-range-spec</a>.
     691      </p>
    692692      <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.11"></span><span id="rfc.iref.g.12"></span>  <a href="#rule.ranges-specifier" class="smpl">suffix-byte-range-spec</a> = "-" <a href="#rule.ranges-specifier" class="smpl">suffix-length</a>
    693693  <a href="#rule.ranges-specifier" class="smpl">suffix-length</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a>
    694 </pre><p id="rfc.section.2.1.p.11">A suffix-byte-range-spec is used to specify the suffix of the representation data, of a length given by the suffix-length
    695          value. (That is, this form specifies the last N bytes of a representation.) If the representation is shorter than the specified
    696          suffix-length, the entire representation is used. For example (assuming a representation of length 10000):
     694</pre><p id="rfc.section.2.1.p.11">If the selected representation is shorter than the specified <a href="#rule.ranges-specifier" class="smpl">suffix-length</a>, the entire representation is used. For example (assuming a representation of length 10000):
    697695      </p>
    698696      <ul>
     
    709707</pre> </li>
    710708      </ul>
    711       <p id="rfc.section.2.1.p.12">If a syntactically valid byte-range-set includes at least one byte-range-spec whose first-byte-pos is less than the current
    712          length of the representation, or at least one suffix-byte-range-spec with a non-zero suffix-length, then the byte-range-set
    713          is satisfiable. Otherwise, the byte-range-set is unsatisfiable. If the byte-range-set is unsatisfiable, the server <em class="bcp14">SHOULD</em> send a response with a <a href="#status.416" class="smpl">416 (Range Not Satisfiable)</a> status code. Otherwise, the server <em class="bcp14">SHOULD</em> send a response with a <a href="#status.206" class="smpl">206 (Partial Content)</a> status code containing the satisfiable ranges of the representation.
    714       </p>
    715       <p id="rfc.section.2.1.p.13">In the byte range syntax, <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a>, <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a>, and <a href="#rule.ranges-specifier" class="smpl">suffix-length</a> are expressed as decimal number of octets. Since there is no predefined limit to the length of a payload, recipients <em class="bcp14">SHOULD</em> anticipate potentially large decimal numerals and prevent parsing errors due to integer conversion overflows.
     709      <p id="rfc.section.2.1.p.12">If a valid <a href="#rule.ranges-specifier" class="smpl">byte-range-set</a> includes at least one <a href="#rule.ranges-specifier" class="smpl">byte-range-spec</a> with a <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a> that is less than the current length of the representation, or at least one <a href="#rule.ranges-specifier" class="smpl">suffix-byte-range-spec</a> with a non-zero <a href="#rule.ranges-specifier" class="smpl">suffix-length</a>, then the <a href="#rule.ranges-specifier" class="smpl">byte-range-set</a> is satisfiable. Otherwise, the <a href="#rule.ranges-specifier" class="smpl">byte-range-set</a> is unsatisfiable.
     710      </p>
     711      <p id="rfc.section.2.1.p.13">In the byte range syntax, <a href="#rule.ranges-specifier" class="smpl">first-byte-pos</a>, <a href="#rule.ranges-specifier" class="smpl">last-byte-pos</a>, and <a href="#rule.ranges-specifier" class="smpl">suffix-length</a> are expressed as decimal number of octets. Since there is no predefined limit to the length of a payload, recipients ought
     712         to anticipate potentially large decimal numerals and prevent parsing errors due to integer conversion overflows.
    716713      </p>
    717714      <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a>&nbsp;<a id="range.units.other" href="#range.units.other">Other Range Units</a></h2>
     
    721718</pre><div id="rfc.iref.a.1"></div>
    722719      <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a>&nbsp;<a id="header.accept-ranges" href="#header.accept-ranges">Accept-Ranges</a></h2>
    723       <p id="rfc.section.2.3.p.1">The "Accept-Ranges" header field allows a resource to indicate its acceptance of range requests.</p>
     720      <p id="rfc.section.2.3.p.1">The "Accept-Ranges" header field allows a server to indicate that it supports range requests for the target resource.</p>
    724721      <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span>  <a href="#header.accept-ranges" class="smpl">Accept-Ranges</a>     = <a href="#header.accept-ranges" class="smpl">acceptable-ranges</a>
    725722  <a href="#header.accept-ranges" class="smpl">acceptable-ranges</a> = 1#<a href="#range.units" class="smpl">range-unit</a> / "none"
    726 </pre><p id="rfc.section.2.3.p.3">Origin servers that accept byte-range requests <em class="bcp14">MAY</em> send
     723</pre><p id="rfc.section.2.3.p.3">Origin servers that support byte-range requests <em class="bcp14">MAY</em> send
    727724      </p>
    728725      <div id="rfc.figure.u.13"></div><pre class="text">  Accept-Ranges: bytes
    729726</pre><p id="rfc.section.2.3.p.5">but are not required to do so. Clients <em class="bcp14">MAY</em> generate range requests without having received this header field for the resource involved. Range units are defined in <a href="#range.units" title="Range Units">Section&nbsp;2</a>.
    730727      </p>
    731       <p id="rfc.section.2.3.p.6">Servers that do not accept any kind of range request for a resource <em class="bcp14">MAY</em> send
     728      <p id="rfc.section.2.3.p.6">Servers that do not support any kind of range request for the target resource resource <em class="bcp14">MAY</em> send
    732729      </p>
    733730      <div id="rfc.figure.u.14"></div><pre class="text">  Accept-Ranges: none
     
    736733      <div id="rfc.iref.r.1"></div>
    737734      <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a id="header.range" href="#header.range">Range</a></h2>
    738       <p id="rfc.section.3.1.p.1">The "Range" header field on a GET request modifies the method semantics to request transfer of only one or more sub-ranges
    739          of the selected representation data in a successful response, rather than the entire representation data.
     735      <p id="rfc.section.3.1.p.1">The "Range" header field on a GET request modifies the method semantics to request transfer of only one or more subranges
     736         of the selected representation data, rather than the entire selected representation data.
    740737      </p>
    741738      <div id="rfc.figure.u.15"></div><pre class="inline"><span id="rfc.iref.g.16"></span>  <a href="#header.range" class="smpl">Range</a> = <a href="#rule.ranges-specifier" class="smpl">byte-ranges-specifier</a> / <a href="#header.range" class="smpl">other-ranges-specifier</a>
     
    746743         server <em class="bcp14">MUST</em> ignore a Range header field received with a request method other than GET.
    747744      </p>
    748       <p id="rfc.section.3.1.p.4">An origin server <em class="bcp14">MUST</em> ignore a <a href="#header.range" class="smpl">Range</a> header field that contains a range unit it does not understand. A proxy <em class="bcp14">MAY</em> either discard a <a href="#header.range" class="smpl">Range</a> header field that contains a range unit it does not understand or pass it to the next inbound server when forwarding the request.
     745      <p id="rfc.section.3.1.p.4">An origin server <em class="bcp14">MUST</em> ignore a Range header field that contains a range unit it does not understand. A proxy <em class="bcp14">MAY</em> either discard a Range header field that contains a range unit it does not understand or pass it to the next inbound server
     746         when forwarding the request.
    749747      </p>
    750748      <p id="rfc.section.3.1.p.5">The Range header field is evaluated after evaluating the preconditions of <a href="#Part4" id="rfc.xref.Part4.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a> and only if the result of their evaluation is leading toward a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response. In other words, Range is ignored when a conditional GET would result in a <a href="p4-conditional.html#status.304" class="smpl">304 (Not Modified)</a> response.
     
    752750      <p id="rfc.section.3.1.p.6">The If-Range header field (<a href="#header.if-range" id="rfc.xref.header.if-range.1" title="If-Range">Section&nbsp;3.2</a>) can be used as a precondition to applying the Range header field.
    753751      </p>
    754       <p id="rfc.section.3.1.p.7">If all of the preconditions are true, the server supports the Range header field for the target resource, the specified range(s)
    755          are syntactically correct (as defined in <a href="#byte.ranges" title="Byte Ranges">Section&nbsp;2.1</a>), and at least one of the ranges has a non-empty intersection with the current selected representation extent, then the server <em class="bcp14">MAY</em> respond with a status code of <a href="#status.206" class="smpl">206 (Partial Content)</a> and a payload containing one or more partial representations that correspond to those requested, as defined in <a href="#range.response" title="Responses to a Range Request">Section&nbsp;4</a>.
     752      <p id="rfc.section.3.1.p.7">If all of the preconditions are true, the server supports the Range header field for the target resource, and the specified
     753         range(s) are valid and satisfiable (as defined in <a href="#byte.ranges" title="Byte Ranges">Section&nbsp;2.1</a>), the server <em class="bcp14">SHOULD</em> send a <a href="#status.206" class="smpl">206 (Partial Content)</a> response with a payload containing one or more partial representations that correspond to the satisfiable ranges requested,
     754         as defined in <a href="#range.response" title="Responses to a Range Request">Section&nbsp;4</a>.
     755      </p>
     756      <p id="rfc.section.3.1.p.8">If all of the preconditions are true, the server supports the Range header field for the target resource, and the specified
     757         range(s) are invalid or unsatisfiable, the server <em class="bcp14">SHOULD</em> send a <a href="#status.416" class="smpl">416 (Range Not Satisfiable)</a> response.
    756758      </p>
    757759      <div id="rfc.iref.i.1"></div>
     
    771773         validator, if the date value is not strong in the sense defined by <a href="p4-conditional.html#lastmod.comparison" title="Comparison">Section 2.2.2</a> of <a href="#Part4" id="rfc.xref.Part4.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests">[Part4]</cite></a>. (A server can distinguish between a valid HTTP-date and any form of entity-tag by examining the first two characters.)
    772774      </p>
    773       <p id="rfc.section.3.2.p.6">The If-Range header field <em class="bcp14">SHOULD</em> only be sent by clients together with a Range header field. The If-Range header field <em class="bcp14">MUST</em> be ignored if it is received in a request that does not include a Range header field. The If-Range header field <em class="bcp14">MUST</em> be ignored by a server that does not support the sub-range operation.
     775      <p id="rfc.section.3.2.p.6">A client <em class="bcp14">MUST NOT</em> generate an If-Range header field in a request that does not contain a <a href="#header.range" class="smpl">Range</a> header field. A server <em class="bcp14">MUST</em> ignore an If-Range header field received in a request that does not contain a <a href="#header.range" class="smpl">Range</a> header field. An origin server <em class="bcp14">MUST</em> ignore an If-Range header field received in a request for a target resource that does not support Range requests.
    774776      </p>
    775777      <p id="rfc.section.3.2.p.7">If the validator given in the If-Range header field matches the current validator for the selected representation of the target
    776          resource, then the server <em class="bcp14">SHOULD</em> send the specified sub-range of the representation using a <a href="#status.206" class="smpl">206 (Partial Content)</a> response. If the validator does not match, then the server <em class="bcp14">SHOULD</em> send the entire representation using a <a href="p2-semantics.html#status.200" class="smpl">200 (OK)</a> response.
     778         resource, then the server <em class="bcp14">SHOULD</em> process the Range header field as requested. If the validator does not match, then the server <em class="bcp14">MUST</em> ignore the <a href="#header.range" class="smpl">Range</a> header field.
    777779      </p>
    778780      <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a>&nbsp;<a id="range.response" href="#range.response">Responses to a Range Request</a></h1>
  • draft-ietf-httpbis/latest/p5-range.xml

    r2147 r2150  
    229229</artwork></figure>
    230230<t>
    231    The first-byte-pos value in a byte-range-spec gives the byte-offset
    232    of the first byte in a range. The last-byte-pos value gives the
    233    byte-offset of the last byte in the range; that is, the byte
    234    positions specified are inclusive. Byte offsets start at zero.
    235 </t>
    236 <t>
    237    Examples of byte-ranges-specifier values:
     231   The <x:ref>first-byte-pos</x:ref> value in a <x:ref>byte-range-spec</x:ref>
     232   gives the byte-offset of the first byte in a range.
     233   The <x:ref>last-byte-pos</x:ref> value gives the byte-offset of the last
     234   byte in the range; that is, the byte positions specified are inclusive.
     235   Byte offsets start at zero.
     236</t>
     237<t>
     238   Examples of <x:ref>byte-ranges-specifier</x:ref> values:
    238239  <list style="symbols">
    239240     <t>The first 500 bytes (byte offsets 0-499, inclusive):
     
    250251</t>
    251252<t>
    252    If the last-byte-pos value is present, it &MUST; be greater than or
    253    equal to the first-byte-pos in that byte-range-spec, or the byte-range-spec
    254    is syntactically invalid. The recipient of a byte-range-set
    255    that includes one or more syntactically invalid byte-range-spec
    256    values &MUST; ignore the header field that includes that byte-range-set.
    257 </t>
    258 <t>
    259    If the last-byte-pos value is absent, or if the value is greater than
    260    or equal to the current length of the representation data, last-byte-pos is
    261    taken to be equal to one less than the current length of the representation
    262    in bytes.
    263 </t>
    264 <t>
    265    By its choice of last-byte-pos, a client can limit the number of
    266    bytes retrieved without knowing the size of the representation.
     253   A <x:ref>byte-range-spec</x:ref> is invalid if the
     254   <x:ref>last-byte-pos</x:ref> value is present and less than the
     255   <x:ref>first-byte-pos</x:ref>.
     256</t>
     257<t>
     258   A client can limit the number of bytes requested without knowing the size
     259   of the selected representation.
     260   If the <x:ref>last-byte-pos</x:ref> value is absent, or if the value is
     261   greater than or equal to the current length of the representation data, the
     262   byte range is interpreted as the remainder of the representation (i.e., the
     263   server replaces the value of <x:ref>last-byte-pos</x:ref> with a value that
     264   is one less than the current length of the selected representation).
     265</t>
     266<t>
     267   A client can request the last N bytes of the selected representation using
     268   a <x:ref>suffix-byte-range-spec</x:ref>.
    267269</t>
    268270<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="suffix-byte-range-spec"/><iref primary="true" item="Grammar" subitem="suffix-length"/>
     
    271273</artwork></figure>
    272274<t>
    273    A suffix-byte-range-spec is used to specify the suffix of the
    274    representation data, of a length given by the suffix-length value. (That is,
    275    this form specifies the last N bytes of a representation.) If the
    276    representation is shorter than the specified suffix-length, the entire
    277    representation is used. For example (assuming a representation of
    278    length 10000):
     275   If the selected representation is shorter than the specified
     276   <x:ref>suffix-length</x:ref>, the entire representation is used.
     277   For example (assuming a representation of length 10000):
    279278  <list style="symbols">
    280279     <t>The final 500 bytes (byte offsets 9500-9999, inclusive):
     
    302301</t>
    303302<t>
    304    If a syntactically valid byte-range-set includes at least one byte-range-spec
    305    whose first-byte-pos is less than the current length of
    306    the representation, or at least one suffix-byte-range-spec with a non-zero
    307    suffix-length, then the byte-range-set is satisfiable.
    308    Otherwise, the byte-range-set is unsatisfiable. If the byte-range-set
    309    is unsatisfiable, the server &SHOULD; send a response with a
    310    <x:ref>416 (Range Not Satisfiable)</x:ref> status code. Otherwise, the server
    311    &SHOULD; send a response with a <x:ref>206 (Partial Content)</x:ref> status code
    312    containing the satisfiable ranges of the representation.
     303   If a valid <x:ref>byte-range-set</x:ref> includes at least one
     304   <x:ref>byte-range-spec</x:ref> with a <x:ref>first-byte-pos</x:ref> that is
     305   less than the current length of the representation, or at least one
     306   <x:ref>suffix-byte-range-spec</x:ref> with a non-zero
     307   <x:ref>suffix-length</x:ref>, then the <x:ref>byte-range-set</x:ref> is
     308   satisfiable. Otherwise, the <x:ref>byte-range-set</x:ref> is unsatisfiable.
    313309</t>
    314310<t>
    315311   In the byte range syntax, <x:ref>first-byte-pos</x:ref>,
    316312   <x:ref>last-byte-pos</x:ref>, and <x:ref>suffix-length</x:ref> are
    317    expressed as decimal number of octets.  Since there is no predefined limit
    318    to the length of a payload, recipients &SHOULD; anticipate
    319    potentially large decimal numerals and prevent parsing errors due to integer
    320    conversion overflows.
     313   expressed as decimal number of octets. Since there is no predefined limit
     314   to the length of a payload, recipients ought to anticipate potentially
     315   large decimal numerals and prevent parsing errors due to integer conversion
     316   overflows.
    321317</t>
    322318</section>
     
    338334  <x:anchor-alias value="acceptable-ranges"/>
    339335<t>
    340    The "Accept-Ranges" header field allows a resource to indicate
    341    its acceptance of range requests.
     336   The "Accept-Ranges" header field allows a server to indicate that it
     337   supports range requests for the target resource.
    342338</t>
    343339<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Ranges"/><iref primary="true" item="Grammar" subitem="acceptable-ranges"/>
     
    346342</artwork></figure>
    347343<t>
    348    Origin servers that accept byte-range requests &MAY; send
     344   Origin servers that support byte-range requests &MAY; send
    349345</t>
    350346<figure><artwork type="example">
     
    357353</t>
    358354<t>
    359    Servers that do not accept any kind of range request for a
    360    resource &MAY; send
     355   Servers that do not support any kind of range request for the target
     356   resource resource &MAY; send
    361357</t>
    362358<figure><artwork type="example">
     
    378374<t>
    379375   The "Range" header field on a GET request modifies the method semantics to
    380    request transfer of only one or more sub-ranges of the selected
    381    representation data in a successful response, rather than the entire
    382    representation data.
     376   request transfer of only one or more subranges of the selected
     377   representation data, rather than the entire selected representation data.
    383378</t>
    384379<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Range"/>
     
    395390</t>
    396391<t>
    397    An origin server &MUST; ignore a <x:ref>Range</x:ref> header field that
    398    contains a range unit it does not understand. A proxy &MAY; either discard
    399    a <x:ref>Range</x:ref> header field that contains a range unit it does not
    400    understand or pass it to the next inbound server when forwarding the
    401    request.
     392   An origin server &MUST; ignore a Range header field that contains a range
     393   unit it does not understand. A proxy &MAY; either discard a Range header
     394   field that contains a range unit it does not understand or pass it to the
     395   next inbound server when forwarding the request.
    402396</t>
    403397<t>
     
    414408<t>
    415409   If all of the preconditions are true, the server supports the Range header
    416    field for the target resource, the specified range(s) are syntactically
    417    correct (as defined in <xref target="byte.ranges"/>), and at least one of
    418    the ranges has a non-empty intersection with the current selected
    419    representation extent, then the server &MAY; respond with a status code of
    420    <x:ref>206 (Partial Content)</x:ref> and a payload containing one or more
    421    partial representations that correspond to those requested, as defined in
     410   field for the target resource, and the specified range(s) are valid and
     411   satisfiable (as defined in <xref target="byte.ranges"/>), the
     412   server &SHOULD; send a <x:ref>206 (Partial Content)</x:ref> response with a
     413   payload containing one or more partial representations that correspond to
     414   the satisfiable ranges requested, as defined in
    422415   <xref target="range.response"/>.
     416</t>
     417<t>
     418   If all of the preconditions are true, the server supports the Range header
     419   field for the target resource, and the specified range(s) are invalid or
     420   unsatisfiable, the server &SHOULD; send a
     421   <x:ref>416 (Range Not Satisfiable)</x:ref> response.
    423422</t>
    424423</section>
     
    462461</t>
    463462<t>
    464    The If-Range header field &SHOULD; only be sent by clients together with
    465    a Range header field.  The If-Range header field &MUST; be ignored if it
    466    is received in a request that does not include a Range header field.
    467    The If-Range header field &MUST; be ignored by a server that does not
    468    support the sub-range operation.
     463   A client &MUST-NOT; generate an If-Range header field in a request that
     464   does not contain a <x:ref>Range</x:ref> header field.
     465   A server &MUST; ignore an If-Range header field received in a request that
     466   does not contain a <x:ref>Range</x:ref> header field.
     467   An origin server &MUST; ignore an If-Range header field received in a
     468   request for a target resource that does not support Range requests.
    469469</t>
    470470<t>
    471471   If the validator given in the If-Range header field matches the current
    472472   validator for the selected representation of the target resource, then
    473    the server &SHOULD; send the specified sub-range of the representation
    474    using a <x:ref>206 (Partial Content)</x:ref> response. If the validator
    475    does not match, then the server &SHOULD; send the entire representation
    476    using a <x:ref>200 (OK)</x:ref> response.
     473   the server &SHOULD; process the Range header field as requested.
     474   If the validator does not match, then the server &MUST; ignore the
     475   <x:ref>Range</x:ref> header field.
    477476</t>
    478477</section>
Note: See TracChangeset for help on using the changeset viewer.