Ignore:
Timestamp:
Nov 12, 2008, 4:21:26 PM (11 years ago)
Author:
ylafon@…
Message:

anges relative to issue #85
removed the bias toward byte-ranges only in text that can be applied to other ranges units
fixed the BNF

File:
1 edited

Legend:

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

    r345 r355  
    252252
    253253<section title="Notational Conventions and Generic Grammar" anchor="notation">
     254  <x:anchor-alias value="CHAR"/>
    254255  <x:anchor-alias value="DIGIT"/>
    255256  <x:anchor-alias value="SP"/>
     
    354355</t>
    355356<t>
    356    A cache that does not support the Range and Content-Range headers
    357    &MUST-NOT; cache 206 (Partial Content) responses.
     357   A cache that does not support the Range and Content-Range headers or
     358   the range unit &MUST-NOT; cache 206 (Partial Content) responses.
    358359</t>
    359360</section>
     
    365366   A server &SHOULD; return a response with this status code if a request
    366367   included a Range request-header field (<xref target="header.range"/>), and none of
    367    the range-specifier values in this field overlap the current extent
     368   the ranges-specifier values in this field overlap the current extent
    368369   of the selected resource, and the request did not include an If-Range
    369370   request-header field. (For byte-ranges, this means that the first-byte-pos
     
    380381</section>
    381382
    382 <section title="Combining Byte Ranges" anchor="combining.byte.ranges">
    383 <t>
    384    A response might transfer only a subrange of the bytes of an entity-body,
    385    either because the request included one or more Range
    386    specifications, or because a connection was broken prematurely. After
    387    several such transfers, a cache might have received several ranges of
    388   the same entity-body.
     383<section title="Combining Ranges" anchor="combining.byte.ranges">
     384<t>
     385  A response might transfer only a subrange of an entity-body, either
     386  the request included one or more Range specifications, or because
     387  a connection was broken prematurely.
     388  After several such transfers, a cache might have received several
     389  ranges of the same entity-body.
    389390</t>
    390391<t>
     
    438439</artwork></figure>
    439440<t>
    440       but are not required to do so. Clients &MAY; generate byte-range
    441       requests without having received this header for the resource
    442       involved. Range units are defined in <xref target="range.units"/>.
     441  but are not required to do so. Clients &MAY; generate range
     442  requests without having received this header for the resource
     443  involved. Range units are defined in <xref target="range.units"/>.
    443444</t>
    444445<t>
     
    462463  <x:anchor-alias value="content-range-spec"/>
    463464  <x:anchor-alias value="instance-length"/>
     465  <x:anchor-alias value="other-content-range-spec"/>
     466  <x:anchor-alias value="other-range-resp-spec"/>
    464467<t>
    465468   The Content-Range entity-header is sent with a partial entity-body to
     
    470473  <x:ref>Content-Range</x:ref> = "Content-Range" ":" <x:ref>content-range-spec</x:ref>
    471474 
    472   <x:ref>content-range-spec</x:ref>      = <x:ref>byte-content-range-spec</x:ref>
    473   <x:ref>byte-content-range-spec</x:ref> = <x:ref>bytes-unit</x:ref> <x:ref>SP</x:ref>
    474                             <x:ref>byte-range-resp-spec</x:ref> "/"
    475                             ( <x:ref>instance-length</x:ref> / "*" )
     475  <x:ref>content-range-spec</x:ref>       = <x:ref>byte-content-range-spec</x:ref>
     476                             / <x:ref>other-content-range-spec</x:ref>
     477  <x:ref>byte-content-range-spec</x:ref>  = <x:ref>bytes-unit</x:ref> <x:ref>SP</x:ref>
     478                             <x:ref>byte-range-resp-spec</x:ref> "/"
     479                             ( <x:ref>instance-length</x:ref> / "*" )
    476480 
    477   <x:ref>byte-range-resp-spec</x:ref>    = (<x:ref>first-byte-pos</x:ref> "-" <x:ref>last-byte-pos</x:ref>)
    478                           / "*"
     481  <x:ref>byte-range-resp-spec</x:ref>     = (<x:ref>first-byte-pos</x:ref> "-" <x:ref>last-byte-pos</x:ref>)
     482                             / "*"
    479483                         
    480   <x:ref>instance-length</x:ref>         = 1*<x:ref>DIGIT</x:ref>
     484  <x:ref>instance-length</x:ref>          = 1*<x:ref>DIGIT</x:ref>
     485 
     486  <x:ref>other-content-range-spec</x:ref> = <x:ref>other-range-unit</x:ref> <x:ref>SP</x:ref>
     487                             <x:ref>other-range-resp-spec</x:ref>
     488  <x:ref>other-range-resp-spec</x:ref>    = *<x:ref>CHAR</x:ref>
    481489</artwork></figure>
    482490<t>
     
    500508</t>
    501509<t>
    502    A server sending a response with status code 416 (Requested range not
    503    satisfiable) &SHOULD; include a Content-Range field with a byte-range-resp-spec
    504    of "*". The instance-length specifies the current length of
    505    the selected resource. A response with status code 206 (Partial
    506    Content) &MUST-NOT; include a Content-Range field with a byte-range-resp-spec of "*".
     510  In the case of a byte range request: A server sending a response with
     511  status code 416 (Requested range not satisfiable) &SHOULD; include a
     512  Content-Range field with a byte-range-resp-spec of "*".
     513  The instance-length specifies the current length of the selected resource.
     514  A response with status code 206 (Partial Content) &MUST-NOT; include a
     515  Content-Range field with a byte-range-resp-spec of "*".
    507516</t>
    508517<t>
     
    564573   multipart/byteranges media type with one part. A client that cannot
    565574   decode a multipart/byteranges message &MUST-NOT; ask for multiple
    566    byte-ranges in a single request.
     575   ranges in a single request.
    567576</t>
    568577<t>
     
    657666  <x:anchor-alias value="suffix-byte-range-spec"/>
    658667  <x:anchor-alias value="suffix-length"/>
     668  <x:anchor-alias value="other-ranges-specifier"/>
     669
    659670   A byte range operation &MAY; specify a single range of bytes, or a set
    660671   of ranges within a single entity.
    661672</t>
    662673<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="ranges-specifier"/><iref primary="true" item="Grammar" subitem="byte-ranges-specifier"/><iref primary="true" item="Grammar" subitem="byte-range-set"/><iref primary="true" item="Grammar" subitem="byte-range-spec"/><iref primary="true" item="Grammar" subitem="first-byte-pos"/><iref primary="true" item="Grammar" subitem="last-byte-pos"/>
    663   <x:ref>ranges-specifier</x:ref> = <x:ref>byte-ranges-specifier</x:ref>
    664674  <x:ref>byte-ranges-specifier</x:ref> = <x:ref>bytes-unit</x:ref> "=" <x:ref>byte-range-set</x:ref>
    665675  <x:ref>byte-range-set</x:ref>  = 1#( <x:ref>byte-range-spec</x:ref> / <x:ref>suffix-byte-range-spec</x:ref> )
     
    693703<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="suffix-byte-range-spec"/><iref primary="true" item="Grammar" subitem="suffix-length"/>
    694704  <x:ref>suffix-byte-range-spec</x:ref> = "-" <x:ref>suffix-length</x:ref>
    695   <x:ref>suffix-length</x:ref> = 1*<x:ref>DIGIT</x:ref>
     705  <x:ref>suffix-length</x:ref>          = 1*<x:ref>DIGIT</x:ref>
    696706</artwork></figure>
    697707<t>
     
    748758<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Range"/>
    749759  <x:ref>Range</x:ref> = "Range" ":" <x:ref>ranges-specifier</x:ref>
     760  <x:ref>ranges-specifier</x:ref>       = <x:ref>byte-ranges-specifier</x:ref>
     761                           / <x:ref>other-ranges-specifier</x:ref>
     762  <x:ref>other-ranges-specifier</x:ref> = 1*<x:ref>CHAR</x:ref>
    750763</artwork></figure>
    751764<t>
Note: See TracChangeset for help on using the changeset viewer.