1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
---|
2 | <!-- Generated by rfcdiff 1.38: rfcdiff --> |
---|
3 | <!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > --> |
---|
4 | <html> |
---|
5 | <head> |
---|
6 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
---|
7 | <meta http-equiv="Content-Style-Type" content="text/css" /> |
---|
8 | <title>Diff: p5-range.unpg.txt - rfc7233-to-be.unpg.txt</title> |
---|
9 | <style type="text/css"> |
---|
10 | body { margin: 0.4ex; margin-right: auto; } |
---|
11 | tr { } |
---|
12 | td { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} |
---|
13 | th { font-size: 0.86em; } |
---|
14 | .small { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } |
---|
15 | .left { background-color: #EEE; } |
---|
16 | .right { background-color: #FFF; } |
---|
17 | .diff { background-color: #CCF; } |
---|
18 | .lblock { background-color: #BFB; } |
---|
19 | .rblock { background-color: #FF8; } |
---|
20 | .insert { background-color: #8FF; } |
---|
21 | .delete { background-color: #ACF; } |
---|
22 | .void { background-color: #FFB; } |
---|
23 | .cont { background-color: #EEE; } |
---|
24 | .linebr { background-color: #AAA; } |
---|
25 | .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } |
---|
26 | .elipsis{ background-color: #AAA; } |
---|
27 | .left .cont { background-color: #DDD; } |
---|
28 | .right .cont { background-color: #EEE; } |
---|
29 | .lblock .cont { background-color: #9D9; } |
---|
30 | .rblock .cont { background-color: #DD6; } |
---|
31 | .insert .cont { background-color: #0DD; } |
---|
32 | .delete .cont { background-color: #8AD; } |
---|
33 | .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } |
---|
34 | </style> |
---|
35 | </head> |
---|
36 | <body > |
---|
37 | <table border="0" cellpadding="0" cellspacing="0"> |
---|
38 | <tr bgcolor="orange"><th></th><th> p5-range.unpg.txt </th><th> </th><th> rfc7233-to-be.unpg.txt </th><th></th></tr> |
---|
39 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
40 | <tr><td><a name="diff0001" /></td></tr> |
---|
41 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">HTTPbis Working Group</span> R. Fielding, Ed.</td><td> </td><td class="rblock"><span class="insert">Internet Engineering Task Force (IETF)</span> R. Fielding, Ed.</td><td class="lineno" valign="top"></td></tr> |
---|
42 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">Internet-Draft</span> Adobe</td><td> </td><td class="rblock"><span class="insert">Request for Comments: 7233</span> Adobe</td><td class="lineno" valign="top"></td></tr> |
---|
43 | <tr><td class="lineno" valign="top"></td><td class="lblock">Obsoletes: 2616 <span class="delete">(if approved)</span> Y. Lafon, Ed.</td><td> </td><td class="rblock">Obsoletes: 2616 Y. Lafon, Ed.</td><td class="lineno" valign="top"></td></tr> |
---|
44 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">Intended status:</span> Standards Track W3C</td><td> </td><td class="rblock"><span class="insert">Category:</span> Standards Track W3C</td><td class="lineno" valign="top"></td></tr> |
---|
45 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">Expires: November 16, 2014</span> J. Reschke, Ed.</td><td> </td><td class="rblock"><span class="insert">ISSN: 2070-1721</span> J. Reschke, Ed.</td><td class="lineno" valign="top"></td></tr> |
---|
46 | <tr><td class="lineno" valign="top"></td><td class="left"> greenbytes</td><td> </td><td class="right"> greenbytes</td><td class="lineno" valign="top"></td></tr> |
---|
47 | <tr><td><a name="diff0002" /></td></tr> |
---|
48 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">May 15,</span> 2014</td><td> </td><td class="rblock"> <span class="insert"> May</span> 2014</td><td class="lineno" valign="top"></td></tr> |
---|
49 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
50 | <tr><td class="lineno" valign="top"></td><td class="left"> Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td><td> </td><td class="right"> Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td><td class="lineno" valign="top"></td></tr> |
---|
51 | <tr><td><a name="diff0003" /></td></tr> |
---|
52 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> draft-ietf-httpbis-p5-range-latest</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
53 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
54 | <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr> |
---|
55 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
56 | <tr><td class="lineno" valign="top"></td><td class="left"> The Hypertext Transfer Protocol (HTTP) is a stateless application-</td><td> </td><td class="right"> The Hypertext Transfer Protocol (HTTP) is a stateless application-</td><td class="lineno" valign="top"></td></tr> |
---|
57 | <tr><td class="lineno" valign="top"></td><td class="left"> level protocol for distributed, collaborative, hypertext information</td><td> </td><td class="right"> level protocol for distributed, collaborative, hypertext information</td><td class="lineno" valign="top"></td></tr> |
---|
58 | <tr><td class="lineno" valign="top"></td><td class="left"> systems. This document defines range requests and the rules for</td><td> </td><td class="right"> systems. This document defines range requests and the rules for</td><td class="lineno" valign="top"></td></tr> |
---|
59 | <tr><td class="lineno" valign="top"></td><td class="left"> constructing and combining responses to those requests.</td><td> </td><td class="right"> constructing and combining responses to those requests.</td><td class="lineno" valign="top"></td></tr> |
---|
60 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
61 | <tr><td><a name="diff0004" /></td></tr> |
---|
62 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">Editorial Note (To be removed by RFC Editor)</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
63 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
64 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Discussion of this draft takes place on the HTTPBIS working group</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
65 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> mailing list (ietf-http-wg@w3.org), which is archived at</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
66 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> <http://lists.w3.org/Archives/Public/ietf-http-wg/>.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
67 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
68 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> The current issues list is at</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
69 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> <http://tools.ietf.org/wg/httpbis/trac/report/3> and related</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
70 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> documents (including fancy diffs) can be found at</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
71 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> <http://tools.ietf.org/wg/httpbis/>.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
72 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
73 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> _This is a temporary document for the purpose of tracking the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
74 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> editorial changes made during the AUTH48 (RFC publication) phase._</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
75 | <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
76 | <tr><td class="lineno" valign="top"></td><td class="left">Status of This Memo</td><td> </td><td class="right">Status of This Memo</td><td class="lineno" valign="top"></td></tr> |
---|
77 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
78 | <tr><td><a name="diff0005" /></td></tr> |
---|
79 | <tr><td class="lineno" valign="top"></td><td class="lblock"> This <span class="delete">Internet-Draft</span> is <span class="delete">submitted in full conformance with the</span></td><td> </td><td class="rblock"> This is <span class="insert">an Internet Standards Track document.</span></td><td class="lineno" valign="top"></td></tr> |
---|
80 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> provisions of BCP 78 and BCP 79.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
81 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
82 | <tr><td><a name="diff0006" /></td></tr> |
---|
83 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Internet-Drafts are working documents</span> of the Internet Engineering</td><td> </td><td class="rblock"> <span class="insert">This document is a product</span> of the Internet Engineering Task Force</td><td class="lineno" valign="top"></td></tr> |
---|
84 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Task Force (IETF). <span class="delete">Note that other groups may also distribute</span></td><td> </td><td class="rblock"> (IETF). <span class="insert">It represents the consensus</span> of <span class="insert">the IETF community. It has</span></td><td class="lineno" valign="top"></td></tr> |
---|
85 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> working documents as Internet-Drafts. The list</span> of <span class="delete">current Internet-</span></td><td> </td><td class="rblock"><span class="insert"> received public review and has been approved for publication by the</span></td><td class="lineno" valign="top"></td></tr> |
---|
86 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Drafts</span> is <span class="delete">at http://datatracker.ietf.org/drafts/current/.</span></td><td> </td><td class="rblock"><span class="insert"> Internet Engineering Steering Group (IESG). Further information on</span></td><td class="lineno" valign="top"></td></tr> |
---|
87 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Internet Standards</span> is <span class="insert">available in Section 2 of RFC 5741.</span></td><td class="lineno" valign="top"></td></tr> |
---|
88 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
89 | <tr><td><a name="diff0007" /></td></tr> |
---|
90 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">Internet-Drafts are draft documents valid for a maximum</span> of <span class="delete">six months</span></td><td> </td><td class="rblock"> <span class="insert">Information about the current status</span> of <span class="insert">this document, any errata,</span></td><td class="lineno" valign="top"></td></tr> |
---|
91 | <tr><td class="lineno" valign="top"></td><td class="lblock"> and may be <span class="delete">updated, replaced, or obsoleted by other documents</span> at <span class="delete">any</span></td><td> </td><td class="rblock"> and <span class="insert">how to provide feedback on it</span> may be <span class="insert">obtained</span> at</td><td class="lineno" valign="top"></td></tr> |
---|
92 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> time. It is inappropriate to use Internet-Drafts as reference</span></td><td> </td><td class="rblock"> <span class="insert">http://www.rfc-editor.org/info/rfc7233.</span></td><td class="lineno" valign="top"></td></tr> |
---|
93 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> material or to cite them other than as "work in progress."</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
94 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> This Internet-Draft will expire on November 16, 2014.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
95 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
96 | <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr> |
---|
97 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
98 | <tr><td class="lineno" valign="top"></td><td class="left"> Copyright (c) 2014 IETF Trust and the persons identified as the</td><td> </td><td class="right"> Copyright (c) 2014 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr> |
---|
99 | <tr><td class="lineno" valign="top"></td><td class="left"> document authors. All rights reserved.</td><td> </td><td class="right"> document authors. All rights reserved.</td><td class="lineno" valign="top"></td></tr> |
---|
100 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
101 | <tr><td class="lineno" valign="top"></td><td class="left"> This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right"> This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr> |
---|
102 | <tr><td class="lineno" valign="top"></td><td class="left"> Provisions Relating to IETF Documents</td><td> </td><td class="right"> Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr> |
---|
103 | <tr><td class="lineno" valign="top"></td><td class="left"> (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right"> (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr> |
---|
104 | <tr><td class="lineno" valign="top"></td><td class="left"> publication of this document. Please review these documents</td><td> </td><td class="right"> publication of this document. Please review these documents</td><td class="lineno" valign="top"></td></tr> |
---|
105 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
106 | <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 3, line 7</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 2, line 17</em></th><td></td></tr> |
---|
107 | <tr><td class="lineno" valign="top"></td><td class="left"> modifications of such material outside the IETF Standards Process.</td><td> </td><td class="right"> modifications of such material outside the IETF Standards Process.</td><td class="lineno" valign="top"></td></tr> |
---|
108 | <tr><td class="lineno" valign="top"></td><td class="left"> Without obtaining an adequate license from the person(s) controlling</td><td> </td><td class="right"> Without obtaining an adequate license from the person(s) controlling</td><td class="lineno" valign="top"></td></tr> |
---|
109 | <tr><td class="lineno" valign="top"></td><td class="left"> the copyright in such materials, this document may not be modified</td><td> </td><td class="right"> the copyright in such materials, this document may not be modified</td><td class="lineno" valign="top"></td></tr> |
---|
110 | <tr><td class="lineno" valign="top"></td><td class="left"> outside the IETF Standards Process, and derivative works of it may</td><td> </td><td class="right"> outside the IETF Standards Process, and derivative works of it may</td><td class="lineno" valign="top"></td></tr> |
---|
111 | <tr><td class="lineno" valign="top"></td><td class="left"> not be created outside the IETF Standards Process, except to format</td><td> </td><td class="right"> not be created outside the IETF Standards Process, except to format</td><td class="lineno" valign="top"></td></tr> |
---|
112 | <tr><td class="lineno" valign="top"></td><td class="left"> it for publication as an RFC or to translate it into languages other</td><td> </td><td class="right"> it for publication as an RFC or to translate it into languages other</td><td class="lineno" valign="top"></td></tr> |
---|
113 | <tr><td class="lineno" valign="top"></td><td class="left"> than English.</td><td> </td><td class="right"> than English.</td><td class="lineno" valign="top"></td></tr> |
---|
114 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
115 | <tr><td class="lineno" valign="top"></td><td class="left">Table of Contents</td><td> </td><td class="right">Table of Contents</td><td class="lineno" valign="top"></td></tr> |
---|
116 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
117 | <tr><td><a name="diff0008" /></td></tr> |
---|
118 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">4</span></td><td> </td><td class="rblock"> 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">3</span></td><td class="lineno" valign="top"></td></tr> |
---|
119 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.1. Conformance and Error Handling . . . . . . . . . . . . . . <span class="delete">4</span></td><td> </td><td class="rblock"> 1.1. Conformance and Error Handling . . . . . . . . . . . . . . <span class="insert">3</span></td><td class="lineno" valign="top"></td></tr> |
---|
120 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . <span class="delete">4</span></td><td> </td><td class="rblock"> 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . <span class="insert">3</span></td><td class="lineno" valign="top"></td></tr> |
---|
121 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2. Range Units . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">4</span></td><td> </td><td class="rblock"> 2. Range Units . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">3</span></td><td class="lineno" valign="top"></td></tr> |
---|
122 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.1. Byte Ranges . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">5</span></td><td> </td><td class="rblock"> 2.1. Byte Ranges . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
123 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.2. Other Range Units . . . . . . . . . . . . . . . . . . . . <span class="delete">7</span></td><td> </td><td class="rblock"> 2.2. Other Range Units . . . . . . . . . . . . . . . . . . . . <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
124 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 2.3. Accept-Ranges . . . . . . . . . . . . . . . . . . . . . . <span class="delete">7</span></td><td> </td><td class="rblock"> 2.3. Accept-Ranges . . . . . . . . . . . . . . . . . . . . . . <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
125 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3. Range Requests . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">7</span></td><td> </td><td class="rblock"> 3. Range Requests . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
126 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.1. Range . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">7</span></td><td> </td><td class="rblock"> 3.1. Range . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
127 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3.2. If-Range . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">9</span></td><td> </td><td class="rblock"> 3.2. If-Range . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> |
---|
128 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4. Responses to a Range Request . . . . . . . . . . . . . . . . . <span class="delete">10</span></td><td> </td><td class="rblock"> 4. Responses to a Range Request . . . . . . . . . . . . . . . . . <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr> |
---|
129 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4.1. 206 Partial Content . . . . . . . . . . . . . . . . . . . <span class="delete">10</span></td><td> </td><td class="rblock"> 4.1. 206 Partial Content . . . . . . . . . . . . . . . . . . . <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr> |
---|
130 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4.2. Content-Range . . . . . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock"> 4.2. Content-Range . . . . . . . . . . . . . . . . . . . . . . <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
131 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4.3. Combining Ranges . . . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock"> 4.3. Combining Ranges . . . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr> |
---|
132 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 4.4. 416 Range Not Satisfiable . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock"> 4.4. 416 Range Not Satisfiable . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr> |
---|
133 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock"> 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr> |
---|
134 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.1. Range Unit Registry . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock"> 5.1. Range Unit Registry . . . . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr> |
---|
135 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.1.1. Procedure . . . . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock"> 5.1.1. Procedure . . . . . . . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr> |
---|
136 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.1.2. Registrations . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock"> 5.1.2. Registrations . . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr> |
---|
137 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.2. Status Code Registration . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock"> 5.2. Status Code Registration . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr> |
---|
138 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.3. Header Field Registration . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock"> 5.3. Header Field Registration . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr> |
---|
139 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.4. Internet Media Type Registration . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock"> 5.4. Internet Media Type Registration . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr> |
---|
140 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 5.4.1. Internet Media Type multipart/byteranges . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock"> 5.4.1. Internet Media Type multipart/byteranges . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr> |
---|
141 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 6. Security Considerations . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock"> 6. Security Considerations . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr> |
---|
142 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 6.1. <span class="delete">Denial of Service</span> Attacks <span class="delete">using</span> Range . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock"> 6.1. <span class="insert">Denial-of-Service</span> Attacks <span class="insert">Using</span> Range . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr> |
---|
143 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock"> 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr> |
---|
144 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock"> 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr> |
---|
145 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 8.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock"> 8.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr> |
---|
146 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 8.2. Informative References . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock"> 8.2. Informative References . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr> |
---|
147 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix A. Internet Media Type multipart/byteranges . . . . . . <span class="delete">20</span></td><td> </td><td class="rblock"> Appendix A. Internet Media Type multipart/byteranges . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr> |
---|
148 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix B. Changes from RFC 2616 . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"> Appendix B. Changes from RFC 2616 . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> |
---|
149 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix C. Imported ABNF . . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"> Appendix C. Imported ABNF . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> |
---|
150 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Appendix D. Collected ABNF . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock"> Appendix D. Collected ABNF . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr> |
---|
151 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">23</span></td><td> </td><td class="rblock"> Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">22</span></td><td class="lineno" valign="top"></td></tr> |
---|
152 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
153 | <tr><td class="lineno" valign="top"></td><td class="left">1. Introduction</td><td> </td><td class="right">1. Introduction</td><td class="lineno" valign="top"></td></tr> |
---|
154 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
155 | <tr><td class="lineno" valign="top"></td><td class="left"> Hypertext Transfer Protocol (HTTP) clients often encounter</td><td> </td><td class="right"> Hypertext Transfer Protocol (HTTP) clients often encounter</td><td class="lineno" valign="top"></td></tr> |
---|
156 | <tr><td class="lineno" valign="top"></td><td class="left"> interrupted data transfers as a result of canceled requests or</td><td> </td><td class="right"> interrupted data transfers as a result of canceled requests or</td><td class="lineno" valign="top"></td></tr> |
---|
157 | <tr><td class="lineno" valign="top"></td><td class="left"> dropped connections. When a client has stored a partial</td><td> </td><td class="right"> dropped connections. When a client has stored a partial</td><td class="lineno" valign="top"></td></tr> |
---|
158 | <tr><td class="lineno" valign="top"></td><td class="left"> representation, it is desirable to request the remainder of that</td><td> </td><td class="right"> representation, it is desirable to request the remainder of that</td><td class="lineno" valign="top"></td></tr> |
---|
159 | <tr><td class="lineno" valign="top"></td><td class="left"> representation in a subsequent request rather than transfer the</td><td> </td><td class="right"> representation in a subsequent request rather than transfer the</td><td class="lineno" valign="top"></td></tr> |
---|
160 | <tr><td class="lineno" valign="top"></td><td class="left"> entire representation. Likewise, devices with limited local storage</td><td> </td><td class="right"> entire representation. Likewise, devices with limited local storage</td><td class="lineno" valign="top"></td></tr> |
---|
161 | <tr><td class="lineno" valign="top"></td><td class="left"> might benefit from being able to request only a subset of a larger</td><td> </td><td class="right"> might benefit from being able to request only a subset of a larger</td><td class="lineno" valign="top"></td></tr> |
---|
162 | <tr><td class="lineno" valign="top"></td><td class="left"> representation, such as a single page of a very large document, or</td><td> </td><td class="right"> representation, such as a single page of a very large document, or</td><td class="lineno" valign="top"></td></tr> |
---|
163 | <tr><td class="lineno" valign="top"></td><td class="left"> the dimensions of an embedded image.</td><td> </td><td class="right"> the dimensions of an embedded image.</td><td class="lineno" valign="top"></td></tr> |
---|
164 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
165 | <tr><td class="lineno" valign="top"></td><td class="left"> This document defines HTTP/1.1 range requests, partial responses, and</td><td> </td><td class="right"> This document defines HTTP/1.1 range requests, partial responses, and</td><td class="lineno" valign="top"></td></tr> |
---|
166 | <tr><td class="lineno" valign="top"></td><td class="left"> the multipart/byteranges media type. Range requests are an OPTIONAL</td><td> </td><td class="right"> the multipart/byteranges media type. Range requests are an OPTIONAL</td><td class="lineno" valign="top"></td></tr> |
---|
167 | <tr><td class="lineno" valign="top"></td><td class="left"> feature of HTTP, designed so that recipients not implementing this</td><td> </td><td class="right"> feature of HTTP, designed so that recipients not implementing this</td><td class="lineno" valign="top"></td></tr> |
---|
168 | <tr><td class="lineno" valign="top"></td><td class="left"> feature (or not supporting it for the target resource) can respond as</td><td> </td><td class="right"> feature (or not supporting it for the target resource) can respond as</td><td class="lineno" valign="top"></td></tr> |
---|
169 | <tr><td class="lineno" valign="top"></td><td class="left"> if it is a normal GET request without impacting interoperability.</td><td> </td><td class="right"> if it is a normal GET request without impacting interoperability.</td><td class="lineno" valign="top"></td></tr> |
---|
170 | <tr><td><a name="diff0009" /></td></tr> |
---|
171 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Partial responses are indicated by a distinct status code <span class="delete">to not</span> be</td><td> </td><td class="rblock"> Partial responses are indicated by a distinct status code <span class="insert">not to</span> be</td><td class="lineno" valign="top"></td></tr> |
---|
172 | <tr><td class="lineno" valign="top"></td><td class="left"> mistaken for full responses by caches that might not implement the</td><td> </td><td class="right"> mistaken for full responses by caches that might not implement the</td><td class="lineno" valign="top"></td></tr> |
---|
173 | <tr><td class="lineno" valign="top"></td><td class="left"> feature.</td><td> </td><td class="right"> feature.</td><td class="lineno" valign="top"></td></tr> |
---|
174 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
175 | <tr><td class="lineno" valign="top"></td><td class="left"> Although the range request mechanism is designed to allow for</td><td> </td><td class="right"> Although the range request mechanism is designed to allow for</td><td class="lineno" valign="top"></td></tr> |
---|
176 | <tr><td class="lineno" valign="top"></td><td class="left"> extensible range types, this specification only defines requests for</td><td> </td><td class="right"> extensible range types, this specification only defines requests for</td><td class="lineno" valign="top"></td></tr> |
---|
177 | <tr><td class="lineno" valign="top"></td><td class="left"> byte ranges.</td><td> </td><td class="right"> byte ranges.</td><td class="lineno" valign="top"></td></tr> |
---|
178 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
179 | <tr><td class="lineno" valign="top"></td><td class="left">1.1. Conformance and Error Handling</td><td> </td><td class="right">1.1. Conformance and Error Handling</td><td class="lineno" valign="top"></td></tr> |
---|
180 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
181 | <tr><td class="lineno" valign="top"></td><td class="left"> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",</td><td> </td><td class="right"> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",</td><td class="lineno" valign="top"></td></tr> |
---|
182 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
183 | <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 5, line 23</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 4, line 23</em></th><td></td></tr> |
---|
184 | <tr><td class="lineno" valign="top"></td><td class="left">2.1. Byte Ranges</td><td> </td><td class="right">2.1. Byte Ranges</td><td class="lineno" valign="top"></td></tr> |
---|
185 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
186 | <tr><td class="lineno" valign="top"></td><td class="left"> Since representation data is transferred in payloads as a sequence of</td><td> </td><td class="right"> Since representation data is transferred in payloads as a sequence of</td><td class="lineno" valign="top"></td></tr> |
---|
187 | <tr><td class="lineno" valign="top"></td><td class="left"> octets, a byte range is a meaningful substructure for any</td><td> </td><td class="right"> octets, a byte range is a meaningful substructure for any</td><td class="lineno" valign="top"></td></tr> |
---|
188 | <tr><td class="lineno" valign="top"></td><td class="left"> representation transferable over HTTP (Section 3 of [RFC7231]). The</td><td> </td><td class="right"> representation transferable over HTTP (Section 3 of [RFC7231]). The</td><td class="lineno" valign="top"></td></tr> |
---|
189 | <tr><td class="lineno" valign="top"></td><td class="left"> "bytes" range unit is defined for expressing subranges of the data's</td><td> </td><td class="right"> "bytes" range unit is defined for expressing subranges of the data's</td><td class="lineno" valign="top"></td></tr> |
---|
190 | <tr><td class="lineno" valign="top"></td><td class="left"> octet sequence.</td><td> </td><td class="right"> octet sequence.</td><td class="lineno" valign="top"></td></tr> |
---|
191 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
192 | <tr><td class="lineno" valign="top"></td><td class="left"> bytes-unit = "bytes"</td><td> </td><td class="right"> bytes-unit = "bytes"</td><td class="lineno" valign="top"></td></tr> |
---|
193 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
194 | <tr><td><a name="diff0010" /></td></tr> |
---|
195 | <tr><td class="lineno" valign="top"></td><td class="lblock"> A byte<span class="delete"> range request can specify a single range of bytes,</span> or a set of</td><td> </td><td class="rblock"> A byte<span class="insert">-range request can specify a single range of bytes</span> or a set of</td><td class="lineno" valign="top"></td></tr> |
---|
196 | <tr><td class="lineno" valign="top"></td><td class="left"> ranges within a single representation.</td><td> </td><td class="right"> ranges within a single representation.</td><td class="lineno" valign="top"></td></tr> |
---|
197 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
198 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-ranges-specifier = bytes-unit "=" byte-range-set</td><td> </td><td class="right"> byte-ranges-specifier = bytes-unit "=" byte-range-set</td><td class="lineno" valign="top"></td></tr> |
---|
199 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-range-set = 1#( byte-range-spec / suffix-byte-range-spec )</td><td> </td><td class="right"> byte-range-set = 1#( byte-range-spec / suffix-byte-range-spec )</td><td class="lineno" valign="top"></td></tr> |
---|
200 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-range-spec = first-byte-pos "-" [ last-byte-pos ]</td><td> </td><td class="right"> byte-range-spec = first-byte-pos "-" [ last-byte-pos ]</td><td class="lineno" valign="top"></td></tr> |
---|
201 | <tr><td class="lineno" valign="top"></td><td class="left"> first-byte-pos = 1*DIGIT</td><td> </td><td class="right"> first-byte-pos = 1*DIGIT</td><td class="lineno" valign="top"></td></tr> |
---|
202 | <tr><td class="lineno" valign="top"></td><td class="left"> last-byte-pos = 1*DIGIT</td><td> </td><td class="right"> last-byte-pos = 1*DIGIT</td><td class="lineno" valign="top"></td></tr> |
---|
203 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
204 | <tr><td class="lineno" valign="top"></td><td class="left"> The first-byte-pos value in a byte-range-spec gives the byte-offset</td><td> </td><td class="right"> The first-byte-pos value in a byte-range-spec gives the byte-offset</td><td class="lineno" valign="top"></td></tr> |
---|
205 | <tr><td class="lineno" valign="top"></td><td class="left"> of the first byte in a range. The last-byte-pos value gives the</td><td> </td><td class="right"> of the first byte in a range. The last-byte-pos value gives the</td><td class="lineno" valign="top"></td></tr> |
---|
206 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
207 | <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 6, line 45</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 5, line 45</em></th><td></td></tr> |
---|
208 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
209 | <tr><td class="lineno" valign="top"></td><td class="left"> bytes=500-600,601-999</td><td> </td><td class="right"> bytes=500-600,601-999</td><td class="lineno" valign="top"></td></tr> |
---|
210 | <tr><td class="lineno" valign="top"></td><td class="left"> bytes=500-700,601-999</td><td> </td><td class="right"> bytes=500-700,601-999</td><td class="lineno" valign="top"></td></tr> |
---|
211 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
212 | <tr><td class="lineno" valign="top"></td><td class="left"> If a valid byte-range-set includes at least one byte-range-spec with</td><td> </td><td class="right"> If a valid byte-range-set includes at least one byte-range-spec with</td><td class="lineno" valign="top"></td></tr> |
---|
213 | <tr><td class="lineno" valign="top"></td><td class="left"> a first-byte-pos that is less than the current length of the</td><td> </td><td class="right"> a first-byte-pos that is less than the current length of the</td><td class="lineno" valign="top"></td></tr> |
---|
214 | <tr><td class="lineno" valign="top"></td><td class="left"> representation, or at least one suffix-byte-range-spec with a non-</td><td> </td><td class="right"> representation, or at least one suffix-byte-range-spec with a non-</td><td class="lineno" valign="top"></td></tr> |
---|
215 | <tr><td class="lineno" valign="top"></td><td class="left"> zero suffix-length, then the byte-range-set is satisfiable.</td><td> </td><td class="right"> zero suffix-length, then the byte-range-set is satisfiable.</td><td class="lineno" valign="top"></td></tr> |
---|
216 | <tr><td class="lineno" valign="top"></td><td class="left"> Otherwise, the byte-range-set is unsatisfiable.</td><td> </td><td class="right"> Otherwise, the byte-range-set is unsatisfiable.</td><td class="lineno" valign="top"></td></tr> |
---|
217 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
218 | <tr><td><a name="diff0011" /></td></tr> |
---|
219 | <tr><td class="lineno" valign="top"></td><td class="lblock"> In the byte<span class="delete"> </span>range syntax, first-byte-pos, last-byte-pos, and suffix-</td><td> </td><td class="rblock"> In the byte<span class="insert">-</span>range syntax, first-byte-pos, last-byte-pos, and suffix-</td><td class="lineno" valign="top"></td></tr> |
---|
220 | <tr><td class="lineno" valign="top"></td><td class="left"> length are expressed as decimal number of octets. Since there is no</td><td> </td><td class="right"> length are expressed as decimal number of octets. Since there is no</td><td class="lineno" valign="top"></td></tr> |
---|
221 | <tr><td class="lineno" valign="top"></td><td class="left"> predefined limit to the length of a payload, recipients MUST</td><td> </td><td class="right"> predefined limit to the length of a payload, recipients MUST</td><td class="lineno" valign="top"></td></tr> |
---|
222 | <tr><td class="lineno" valign="top"></td><td class="left"> anticipate potentially large decimal numerals and prevent parsing</td><td> </td><td class="right"> anticipate potentially large decimal numerals and prevent parsing</td><td class="lineno" valign="top"></td></tr> |
---|
223 | <tr><td class="lineno" valign="top"></td><td class="left"> errors due to integer conversion overflows.</td><td> </td><td class="right"> errors due to integer conversion overflows.</td><td class="lineno" valign="top"></td></tr> |
---|
224 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
225 | <tr><td class="lineno" valign="top"></td><td class="left">2.2. Other Range Units</td><td> </td><td class="right">2.2. Other Range Units</td><td class="lineno" valign="top"></td></tr> |
---|
226 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
227 | <tr><td class="lineno" valign="top"></td><td class="left"> Range units are intended to be extensible. New range units ought to</td><td> </td><td class="right"> Range units are intended to be extensible. New range units ought to</td><td class="lineno" valign="top"></td></tr> |
---|
228 | <tr><td class="lineno" valign="top"></td><td class="left"> be registered with IANA, as defined in Section 5.1.</td><td> </td><td class="right"> be registered with IANA, as defined in Section 5.1.</td><td class="lineno" valign="top"></td></tr> |
---|
229 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
230 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
231 | <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 9, line 16</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 8, line 16</em></th><td></td></tr> |
---|
232 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
233 | <tr><td class="lineno" valign="top"></td><td class="left"> If a client has a partial copy of a representation and wishes to have</td><td> </td><td class="right"> If a client has a partial copy of a representation and wishes to have</td><td class="lineno" valign="top"></td></tr> |
---|
234 | <tr><td class="lineno" valign="top"></td><td class="left"> an up-to-date copy of the entire representation, it could use the</td><td> </td><td class="right"> an up-to-date copy of the entire representation, it could use the</td><td class="lineno" valign="top"></td></tr> |
---|
235 | <tr><td class="lineno" valign="top"></td><td class="left"> Range header field with a conditional GET (using either or both of</td><td> </td><td class="right"> Range header field with a conditional GET (using either or both of</td><td class="lineno" valign="top"></td></tr> |
---|
236 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Unmodified-Since and If-Match.) However, if the precondition</td><td> </td><td class="right"> If-Unmodified-Since and If-Match.) However, if the precondition</td><td class="lineno" valign="top"></td></tr> |
---|
237 | <tr><td class="lineno" valign="top"></td><td class="left"> fails because the representation has been modified, the client would</td><td> </td><td class="right"> fails because the representation has been modified, the client would</td><td class="lineno" valign="top"></td></tr> |
---|
238 | <tr><td class="lineno" valign="top"></td><td class="left"> then have to make a second request to obtain the entire current</td><td> </td><td class="right"> then have to make a second request to obtain the entire current</td><td class="lineno" valign="top"></td></tr> |
---|
239 | <tr><td class="lineno" valign="top"></td><td class="left"> representation.</td><td> </td><td class="right"> representation.</td><td class="lineno" valign="top"></td></tr> |
---|
240 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
241 | <tr><td class="lineno" valign="top"></td><td class="left"> The "If-Range" header field allows a client to "short-circuit" the</td><td> </td><td class="right"> The "If-Range" header field allows a client to "short-circuit" the</td><td class="lineno" valign="top"></td></tr> |
---|
242 | <tr><td><a name="diff0012" /></td></tr> |
---|
243 | <tr><td class="lineno" valign="top"></td><td class="lblock"> second request. Informally, its meaning <span class="delete">is:</span> if the representation is</td><td> </td><td class="rblock"> second request. Informally, its meaning <span class="insert">is as follows:</span> if the</td><td class="lineno" valign="top"></td></tr> |
---|
244 | <tr><td class="lineno" valign="top"></td><td class="lblock"> unchanged, send me the part(s) that I am requesting in Range;</td><td> </td><td class="rblock"> representation is unchanged, send me the part(s) that I am requesting</td><td class="lineno" valign="top"></td></tr> |
---|
245 | <tr><td class="lineno" valign="top"></td><td class="lblock"> otherwise, send me the entire representation.</td><td> </td><td class="rblock"> in Range; otherwise, send me the entire representation.</td><td class="lineno" valign="top"></td></tr> |
---|
246 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
247 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Range = entity-tag / HTTP-date</td><td> </td><td class="right"> If-Range = entity-tag / HTTP-date</td><td class="lineno" valign="top"></td></tr> |
---|
248 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
249 | <tr><td class="lineno" valign="top"></td><td class="left"> A client MUST NOT generate an If-Range header field in a request that</td><td> </td><td class="right"> A client MUST NOT generate an If-Range header field in a request that</td><td class="lineno" valign="top"></td></tr> |
---|
250 | <tr><td><a name="diff0013" /></td></tr> |
---|
251 | <tr><td class="lineno" valign="top"></td><td class="lblock"> does not contain a Range header field. A server MUST ignore an <span class="delete">If-</span></td><td> </td><td class="rblock"> does not contain a Range header field. A server MUST ignore an</td><td class="lineno" valign="top"></td></tr> |
---|
252 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Range</span> header field received in a request that does not contain a</td><td> </td><td class="rblock"> <span class="insert">If-Range</span> header field received in a request that does not contain a</td><td class="lineno" valign="top"></td></tr> |
---|
253 | <tr><td class="lineno" valign="top"></td><td class="left"> Range header field. An origin server MUST ignore an If-Range header</td><td> </td><td class="right"> Range header field. An origin server MUST ignore an If-Range header</td><td class="lineno" valign="top"></td></tr> |
---|
254 | <tr><td class="lineno" valign="top"></td><td class="left"> field received in a request for a target resource that does not</td><td> </td><td class="right"> field received in a request for a target resource that does not</td><td class="lineno" valign="top"></td></tr> |
---|
255 | <tr><td class="lineno" valign="top"></td><td class="left"> support Range requests.</td><td> </td><td class="right"> support Range requests.</td><td class="lineno" valign="top"></td></tr> |
---|
256 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
257 | <tr><td class="lineno" valign="top"></td><td class="left"> A client MUST NOT generate an If-Range header field containing an</td><td> </td><td class="right"> A client MUST NOT generate an If-Range header field containing an</td><td class="lineno" valign="top"></td></tr> |
---|
258 | <tr><td class="lineno" valign="top"></td><td class="left"> entity-tag that is marked as weak. A client MUST NOT generate an If-</td><td> </td><td class="right"> entity-tag that is marked as weak. A client MUST NOT generate an If-</td><td class="lineno" valign="top"></td></tr> |
---|
259 | <tr><td class="lineno" valign="top"></td><td class="left"> Range header field containing an HTTP-date unless the client has no</td><td> </td><td class="right"> Range header field containing an HTTP-date unless the client has no</td><td class="lineno" valign="top"></td></tr> |
---|
260 | <tr><td class="lineno" valign="top"></td><td class="left"> entity-tag for the corresponding representation and the date is a</td><td> </td><td class="right"> entity-tag for the corresponding representation and the date is a</td><td class="lineno" valign="top"></td></tr> |
---|
261 | <tr><td class="lineno" valign="top"></td><td class="left"> strong validator in the sense defined by Section 2.2.2 of [RFC7232].</td><td> </td><td class="right"> strong validator in the sense defined by Section 2.2.2 of [RFC7232].</td><td class="lineno" valign="top"></td></tr> |
---|
262 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
263 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
264 | <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 9, line 49</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 8, line 49</em></th><td></td></tr> |
---|
265 | <tr><td class="lineno" valign="top"></td><td class="left"> defined by Section 2.2.2 of [RFC7232]. A valid entity-tag can be</td><td> </td><td class="right"> defined by Section 2.2.2 of [RFC7232]. A valid entity-tag can be</td><td class="lineno" valign="top"></td></tr> |
---|
266 | <tr><td class="lineno" valign="top"></td><td class="left"> distinguished from a valid HTTP-date by examining the first two</td><td> </td><td class="right"> distinguished from a valid HTTP-date by examining the first two</td><td class="lineno" valign="top"></td></tr> |
---|
267 | <tr><td class="lineno" valign="top"></td><td class="left"> characters for a DQUOTE.</td><td> </td><td class="right"> characters for a DQUOTE.</td><td class="lineno" valign="top"></td></tr> |
---|
268 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
269 | <tr><td class="lineno" valign="top"></td><td class="left"> If the validator given in the If-Range header field matches the</td><td> </td><td class="right"> If the validator given in the If-Range header field matches the</td><td class="lineno" valign="top"></td></tr> |
---|
270 | <tr><td class="lineno" valign="top"></td><td class="left"> current validator for the selected representation of the target</td><td> </td><td class="right"> current validator for the selected representation of the target</td><td class="lineno" valign="top"></td></tr> |
---|
271 | <tr><td class="lineno" valign="top"></td><td class="left"> resource, then the server SHOULD process the Range header field as</td><td> </td><td class="right"> resource, then the server SHOULD process the Range header field as</td><td class="lineno" valign="top"></td></tr> |
---|
272 | <tr><td class="lineno" valign="top"></td><td class="left"> requested. If the validator does not match, the server MUST ignore</td><td> </td><td class="right"> requested. If the validator does not match, the server MUST ignore</td><td class="lineno" valign="top"></td></tr> |
---|
273 | <tr><td class="lineno" valign="top"></td><td class="left"> the Range header field. Note that this comparison by exact match,</td><td> </td><td class="right"> the Range header field. Note that this comparison by exact match,</td><td class="lineno" valign="top"></td></tr> |
---|
274 | <tr><td class="lineno" valign="top"></td><td class="left"> including when the validator is an HTTP-date, differs from the</td><td> </td><td class="right"> including when the validator is an HTTP-date, differs from the</td><td class="lineno" valign="top"></td></tr> |
---|
275 | <tr><td><a name="diff0014" /></td></tr> |
---|
276 | <tr><td class="lineno" valign="top"></td><td class="lblock"> "earlier than or equal to" comparison used when evaluating an <span class="delete">If-</span></td><td> </td><td class="rblock"> "earlier than or equal to" comparison used when evaluating an</td><td class="lineno" valign="top"></td></tr> |
---|
277 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> Unmodified-Since</span> conditional.</td><td> </td><td class="rblock"> <span class="insert">If-Unmodified-Since</span> conditional.</td><td class="lineno" valign="top"></td></tr> |
---|
278 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
279 | <tr><td class="lineno" valign="top"></td><td class="left">4. Responses to a Range Request</td><td> </td><td class="right">4. Responses to a Range Request</td><td class="lineno" valign="top"></td></tr> |
---|
280 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
281 | <tr><td class="lineno" valign="top"></td><td class="left">4.1. 206 Partial Content</td><td> </td><td class="right">4.1. 206 Partial Content</td><td class="lineno" valign="top"></td></tr> |
---|
282 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
283 | <tr><td class="lineno" valign="top"></td><td class="left"> The 206 (Partial Content) status code indicates that the server is</td><td> </td><td class="right"> The 206 (Partial Content) status code indicates that the server is</td><td class="lineno" valign="top"></td></tr> |
---|
284 | <tr><td class="lineno" valign="top"></td><td class="left"> successfully fulfilling a range request for the target resource by</td><td> </td><td class="right"> successfully fulfilling a range request for the target resource by</td><td class="lineno" valign="top"></td></tr> |
---|
285 | <tr><td class="lineno" valign="top"></td><td class="left"> transferring one or more parts of the selected representation that</td><td> </td><td class="right"> transferring one or more parts of the selected representation that</td><td class="lineno" valign="top"></td></tr> |
---|
286 | <tr><td class="lineno" valign="top"></td><td class="left"> correspond to the satisfiable ranges found in the request's Range</td><td> </td><td class="right"> correspond to the satisfiable ranges found in the request's Range</td><td class="lineno" valign="top"></td></tr> |
---|
287 | <tr><td class="lineno" valign="top"></td><td class="left"> header field (Section 3.1).</td><td> </td><td class="right"> header field (Section 3.1).</td><td class="lineno" valign="top"></td></tr> |
---|
288 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
289 | <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 10, line 33</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 9, line 33</em></th><td></td></tr> |
---|
290 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Range: bytes 21010-47021/47022</td><td> </td><td class="right"> Content-Range: bytes 21010-47021/47022</td><td class="lineno" valign="top"></td></tr> |
---|
291 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Length: 26012</td><td> </td><td class="right"> Content-Length: 26012</td><td class="lineno" valign="top"></td></tr> |
---|
292 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Type: image/gif</td><td> </td><td class="right"> Content-Type: image/gif</td><td class="lineno" valign="top"></td></tr> |
---|
293 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
294 | <tr><td class="lineno" valign="top"></td><td class="left"> ... 26012 bytes of partial image data ...</td><td> </td><td class="right"> ... 26012 bytes of partial image data ...</td><td class="lineno" valign="top"></td></tr> |
---|
295 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
296 | <tr><td class="lineno" valign="top"></td><td class="left"> If multiple parts are being transferred, the server generating the</td><td> </td><td class="right"> If multiple parts are being transferred, the server generating the</td><td class="lineno" valign="top"></td></tr> |
---|
297 | <tr><td class="lineno" valign="top"></td><td class="left"> 206 response MUST generate a "multipart/byteranges" payload, as</td><td> </td><td class="right"> 206 response MUST generate a "multipart/byteranges" payload, as</td><td class="lineno" valign="top"></td></tr> |
---|
298 | <tr><td class="lineno" valign="top"></td><td class="left"> defined in Appendix A, and a Content-Type header field containing the</td><td> </td><td class="right"> defined in Appendix A, and a Content-Type header field containing the</td><td class="lineno" valign="top"></td></tr> |
---|
299 | <tr><td class="lineno" valign="top"></td><td class="left"> multipart/byteranges media type and its required boundary parameter.</td><td> </td><td class="right"> multipart/byteranges media type and its required boundary parameter.</td><td class="lineno" valign="top"></td></tr> |
---|
300 | <tr><td><a name="diff0015" /></td></tr> |
---|
301 | <tr><td class="lineno" valign="top"></td><td class="lblock"> To avoid confusion with single<span class="delete"> </span>part responses, a server MUST NOT</td><td> </td><td class="rblock"> To avoid confusion with single<span class="insert">-</span>part responses, a server MUST NOT</td><td class="lineno" valign="top"></td></tr> |
---|
302 | <tr><td class="lineno" valign="top"></td><td class="left"> generate a Content-Range header field in the HTTP header section of a</td><td> </td><td class="right"> generate a Content-Range header field in the HTTP header section of a</td><td class="lineno" valign="top"></td></tr> |
---|
303 | <tr><td class="lineno" valign="top"></td><td class="left"> multiple part response (this field will be sent in each part</td><td> </td><td class="right"> multiple part response (this field will be sent in each part</td><td class="lineno" valign="top"></td></tr> |
---|
304 | <tr><td class="lineno" valign="top"></td><td class="left"> instead).</td><td> </td><td class="right"> instead).</td><td class="lineno" valign="top"></td></tr> |
---|
305 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
306 | <tr><td class="lineno" valign="top"></td><td class="left"> Within the header area of each body part in the multipart payload,</td><td> </td><td class="right"> Within the header area of each body part in the multipart payload,</td><td class="lineno" valign="top"></td></tr> |
---|
307 | <tr><td class="lineno" valign="top"></td><td class="left"> the server MUST generate a Content-Range header field corresponding</td><td> </td><td class="right"> the server MUST generate a Content-Range header field corresponding</td><td class="lineno" valign="top"></td></tr> |
---|
308 | <tr><td class="lineno" valign="top"></td><td class="left"> to the range being enclosed in that body part. If the selected</td><td> </td><td class="right"> to the range being enclosed in that body part. If the selected</td><td class="lineno" valign="top"></td></tr> |
---|
309 | <tr><td class="lineno" valign="top"></td><td class="left"> representation would have had a Content-Type header field in a 200</td><td> </td><td class="right"> representation would have had a Content-Type header field in a 200</td><td class="lineno" valign="top"></td></tr> |
---|
310 | <tr><td class="lineno" valign="top"></td><td class="left"> (OK) response, the server SHOULD generate that same Content-Type</td><td> </td><td class="right"> (OK) response, the server SHOULD generate that same Content-Type</td><td class="lineno" valign="top"></td></tr> |
---|
311 | <tr><td class="lineno" valign="top"></td><td class="left"> field in the header area of each body part. For example:</td><td> </td><td class="right"> field in the header area of each body part. For example:</td><td class="lineno" valign="top"></td></tr> |
---|
312 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
313 | <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 13, line 29</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 12, line 29</em></th><td></td></tr> |
---|
314 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
315 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Range: bytes 42-1233/*</td><td> </td><td class="right"> Content-Range: bytes 42-1233/*</td><td class="lineno" valign="top"></td></tr> |
---|
316 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
317 | <tr><td class="lineno" valign="top"></td><td class="left"> A Content-Range field value is invalid if it contains a byte-range-</td><td> </td><td class="right"> A Content-Range field value is invalid if it contains a byte-range-</td><td class="lineno" valign="top"></td></tr> |
---|
318 | <tr><td class="lineno" valign="top"></td><td class="left"> resp that has a last-byte-pos value less than its first-byte-pos</td><td> </td><td class="right"> resp that has a last-byte-pos value less than its first-byte-pos</td><td class="lineno" valign="top"></td></tr> |
---|
319 | <tr><td class="lineno" valign="top"></td><td class="left"> value, or a complete-length value less than or equal to its last-</td><td> </td><td class="right"> value, or a complete-length value less than or equal to its last-</td><td class="lineno" valign="top"></td></tr> |
---|
320 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-pos value. The recipient of an invalid Content-Range MUST NOT</td><td> </td><td class="right"> byte-pos value. The recipient of an invalid Content-Range MUST NOT</td><td class="lineno" valign="top"></td></tr> |
---|
321 | <tr><td class="lineno" valign="top"></td><td class="left"> attempt to recombine the received content with a stored</td><td> </td><td class="right"> attempt to recombine the received content with a stored</td><td class="lineno" valign="top"></td></tr> |
---|
322 | <tr><td class="lineno" valign="top"></td><td class="left"> representation.</td><td> </td><td class="right"> representation.</td><td class="lineno" valign="top"></td></tr> |
---|
323 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
324 | <tr><td><a name="diff0016" /></td></tr> |
---|
325 | <tr><td class="lineno" valign="top"></td><td class="lblock"> A server generating a 416 (Range Not Satisfiable) response to a byte</td><td> </td><td class="rblock"> A server generating a 416 (Range Not Satisfiable) response to a byte<span class="insert">-</span></td><td class="lineno" valign="top"></td></tr> |
---|
326 | <tr><td class="lineno" valign="top"></td><td class="left"> range request SHOULD send a Content-Range header field with an</td><td> </td><td class="right"> range request SHOULD send a Content-Range header field with an</td><td class="lineno" valign="top"></td></tr> |
---|
327 | <tr><td class="lineno" valign="top"></td><td class="left"> unsatisfied-range value, as in the following example:</td><td> </td><td class="right"> unsatisfied-range value, as in the following example:</td><td class="lineno" valign="top"></td></tr> |
---|
328 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
329 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Range: bytes */1234</td><td> </td><td class="right"> Content-Range: bytes */1234</td><td class="lineno" valign="top"></td></tr> |
---|
330 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
331 | <tr><td class="lineno" valign="top"></td><td class="left"> The complete-length in a 416 response indicates the current length of</td><td> </td><td class="right"> The complete-length in a 416 response indicates the current length of</td><td class="lineno" valign="top"></td></tr> |
---|
332 | <tr><td class="lineno" valign="top"></td><td class="left"> the selected representation.</td><td> </td><td class="right"> the selected representation.</td><td class="lineno" valign="top"></td></tr> |
---|
333 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
334 | <tr><td><a name="diff0017" /></td></tr> |
---|
335 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The <span class="delete">"Content-Range"</span> header field has no meaning for status codes that</td><td> </td><td class="rblock"> The <span class="insert">Content-Range</span> header field has no meaning for status codes that</td><td class="lineno" valign="top"></td></tr> |
---|
336 | <tr><td class="lineno" valign="top"></td><td class="left"> do not explicitly describe its semantic. For this specification,</td><td> </td><td class="right"> do not explicitly describe its semantic. For this specification,</td><td class="lineno" valign="top"></td></tr> |
---|
337 | <tr><td class="lineno" valign="top"></td><td class="left"> only the 206 (Partial Content) and 416 (Range Not Satisfiable) status</td><td> </td><td class="right"> only the 206 (Partial Content) and 416 (Range Not Satisfiable) status</td><td class="lineno" valign="top"></td></tr> |
---|
338 | <tr><td class="lineno" valign="top"></td><td class="left"> codes describe a meaning for Content-Range.</td><td> </td><td class="right"> codes describe a meaning for Content-Range.</td><td class="lineno" valign="top"></td></tr> |
---|
339 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
340 | <tr><td class="lineno" valign="top"></td><td class="left"> The following are examples of Content-Range values in which the</td><td> </td><td class="right"> The following are examples of Content-Range values in which the</td><td class="lineno" valign="top"></td></tr> |
---|
341 | <tr><td class="lineno" valign="top"></td><td class="left"> selected representation contains a total of 1234 bytes:</td><td> </td><td class="right"> selected representation contains a total of 1234 bytes:</td><td class="lineno" valign="top"></td></tr> |
---|
342 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
343 | <tr><td class="lineno" valign="top"></td><td class="left"> o The first 500 bytes:</td><td> </td><td class="right"> o The first 500 bytes:</td><td class="lineno" valign="top"></td></tr> |
---|
344 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
345 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Range: bytes 0-499/1234</td><td> </td><td class="right"> Content-Range: bytes 0-499/1234</td><td class="lineno" valign="top"></td></tr> |
---|
346 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
347 | <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 14, line 28</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 13, line 28</em></th><td></td></tr> |
---|
348 | <tr><td class="lineno" valign="top"></td><td class="left"> have received several ranges of the same representation. These</td><td> </td><td class="right"> have received several ranges of the same representation. These</td><td class="lineno" valign="top"></td></tr> |
---|
349 | <tr><td class="lineno" valign="top"></td><td class="left"> ranges can only be safely combined if they all have in common the</td><td> </td><td class="right"> ranges can only be safely combined if they all have in common the</td><td class="lineno" valign="top"></td></tr> |
---|
350 | <tr><td class="lineno" valign="top"></td><td class="left"> same strong validator (Section 2.1 of [RFC7232]).</td><td> </td><td class="right"> same strong validator (Section 2.1 of [RFC7232]).</td><td class="lineno" valign="top"></td></tr> |
---|
351 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
352 | <tr><td class="lineno" valign="top"></td><td class="left"> A client that has received multiple partial responses to GET requests</td><td> </td><td class="right"> A client that has received multiple partial responses to GET requests</td><td class="lineno" valign="top"></td></tr> |
---|
353 | <tr><td class="lineno" valign="top"></td><td class="left"> on a target resource MAY combine those responses into a larger</td><td> </td><td class="right"> on a target resource MAY combine those responses into a larger</td><td class="lineno" valign="top"></td></tr> |
---|
354 | <tr><td class="lineno" valign="top"></td><td class="left"> continuous range if they share the same strong validator.</td><td> </td><td class="right"> continuous range if they share the same strong validator.</td><td class="lineno" valign="top"></td></tr> |
---|
355 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
356 | <tr><td class="lineno" valign="top"></td><td class="left"> If the most recent response is an incomplete 200 (OK) response, then</td><td> </td><td class="right"> If the most recent response is an incomplete 200 (OK) response, then</td><td class="lineno" valign="top"></td></tr> |
---|
357 | <tr><td class="lineno" valign="top"></td><td class="left"> the header fields of that response are used for any combined response</td><td> </td><td class="right"> the header fields of that response are used for any combined response</td><td class="lineno" valign="top"></td></tr> |
---|
358 | <tr><td><a name="diff0018" /></td></tr> |
---|
359 | <tr><td class="lineno" valign="top"></td><td class="lblock"> and replace those of the matching stored responses.</td><td> </td><td class="rblock"> and <span class="insert">they </span>replace those of the matching stored responses.</td><td class="lineno" valign="top"></td></tr> |
---|
360 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
361 | <tr><td class="lineno" valign="top"></td><td class="left"> If the most recent response is a 206 (Partial Content) response and</td><td> </td><td class="right"> If the most recent response is a 206 (Partial Content) response and</td><td class="lineno" valign="top"></td></tr> |
---|
362 | <tr><td class="lineno" valign="top"></td><td class="left"> at least one of the matching stored responses is a 200 (OK), then the</td><td> </td><td class="right"> at least one of the matching stored responses is a 200 (OK), then the</td><td class="lineno" valign="top"></td></tr> |
---|
363 | <tr><td class="lineno" valign="top"></td><td class="left"> combined response header fields consist of the most recent 200</td><td> </td><td class="right"> combined response header fields consist of the most recent 200</td><td class="lineno" valign="top"></td></tr> |
---|
364 | <tr><td class="lineno" valign="top"></td><td class="left"> response's header fields. If all of the matching stored responses</td><td> </td><td class="right"> response's header fields. If all of the matching stored responses</td><td class="lineno" valign="top"></td></tr> |
---|
365 | <tr><td class="lineno" valign="top"></td><td class="left"> are 206 responses, then the stored response with the most recent</td><td> </td><td class="right"> are 206 responses, then the stored response with the most recent</td><td class="lineno" valign="top"></td></tr> |
---|
366 | <tr><td class="lineno" valign="top"></td><td class="left"> header fields is used as the source of header fields for the combined</td><td> </td><td class="right"> header fields is used as the source of header fields for the combined</td><td class="lineno" valign="top"></td></tr> |
---|
367 | <tr><td class="lineno" valign="top"></td><td class="left"> response, except that the client MUST use other header fields</td><td> </td><td class="right"> response, except that the client MUST use other header fields</td><td class="lineno" valign="top"></td></tr> |
---|
368 | <tr><td class="lineno" valign="top"></td><td class="left"> provided in the new response, aside from Content-Range, to replace</td><td> </td><td class="right"> provided in the new response, aside from Content-Range, to replace</td><td class="lineno" valign="top"></td></tr> |
---|
369 | <tr><td class="lineno" valign="top"></td><td class="left"> all instances of the corresponding header fields in the stored</td><td> </td><td class="right"> all instances of the corresponding header fields in the stored</td><td class="lineno" valign="top"></td></tr> |
---|
370 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
371 | <tr bgcolor="gray" ><td></td><th><a name="part-l10" /><small>skipping to change at</small><em> page 15, line 16</em></th><th> </th><th><a name="part-r10" /><small>skipping to change at</small><em> page 14, line 16</em></th><td></td></tr> |
---|
372 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
373 | <tr><td class="lineno" valign="top"></td><td class="left"> The 416 (Range Not Satisfiable) status code indicates that none of</td><td> </td><td class="right"> The 416 (Range Not Satisfiable) status code indicates that none of</td><td class="lineno" valign="top"></td></tr> |
---|
374 | <tr><td class="lineno" valign="top"></td><td class="left"> the ranges in the request's Range header field (Section 3.1) overlap</td><td> </td><td class="right"> the ranges in the request's Range header field (Section 3.1) overlap</td><td class="lineno" valign="top"></td></tr> |
---|
375 | <tr><td class="lineno" valign="top"></td><td class="left"> the current extent of the selected resource or that the set of ranges</td><td> </td><td class="right"> the current extent of the selected resource or that the set of ranges</td><td class="lineno" valign="top"></td></tr> |
---|
376 | <tr><td class="lineno" valign="top"></td><td class="left"> requested has been rejected due to invalid ranges or an excessive</td><td> </td><td class="right"> requested has been rejected due to invalid ranges or an excessive</td><td class="lineno" valign="top"></td></tr> |
---|
377 | <tr><td class="lineno" valign="top"></td><td class="left"> request of small or overlapping ranges.</td><td> </td><td class="right"> request of small or overlapping ranges.</td><td class="lineno" valign="top"></td></tr> |
---|
378 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
379 | <tr><td class="lineno" valign="top"></td><td class="left"> For byte ranges, failing to overlap the current extent means that the</td><td> </td><td class="right"> For byte ranges, failing to overlap the current extent means that the</td><td class="lineno" valign="top"></td></tr> |
---|
380 | <tr><td class="lineno" valign="top"></td><td class="left"> first-byte-pos of all of the byte-range-spec values were greater than</td><td> </td><td class="right"> first-byte-pos of all of the byte-range-spec values were greater than</td><td class="lineno" valign="top"></td></tr> |
---|
381 | <tr><td class="lineno" valign="top"></td><td class="left"> the current length of the selected representation. When this status</td><td> </td><td class="right"> the current length of the selected representation. When this status</td><td class="lineno" valign="top"></td></tr> |
---|
382 | <tr><td><a name="diff0019" /></td></tr> |
---|
383 | <tr><td class="lineno" valign="top"></td><td class="lblock"> code is generated in response to a byte<span class="delete"> </span>range request, the sender</td><td> </td><td class="rblock"> code is generated in response to a byte<span class="insert">-</span>range request, the sender</td><td class="lineno" valign="top"></td></tr> |
---|
384 | <tr><td class="lineno" valign="top"></td><td class="left"> SHOULD generate a Content-Range header field specifying the current</td><td> </td><td class="right"> SHOULD generate a Content-Range header field specifying the current</td><td class="lineno" valign="top"></td></tr> |
---|
385 | <tr><td class="lineno" valign="top"></td><td class="left"> length of the selected representation (Section 4.2).</td><td> </td><td class="right"> length of the selected representation (Section 4.2).</td><td class="lineno" valign="top"></td></tr> |
---|
386 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
387 | <tr><td class="lineno" valign="top"></td><td class="left"> For example:</td><td> </td><td class="right"> For example:</td><td class="lineno" valign="top"></td></tr> |
---|
388 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
389 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 416 Range Not Satisfiable</td><td> </td><td class="right"> HTTP/1.1 416 Range Not Satisfiable</td><td class="lineno" valign="top"></td></tr> |
---|
390 | <tr><td class="lineno" valign="top"></td><td class="left"> Date: Fri, 20 Jan 2012 15:41:54 GMT</td><td> </td><td class="right"> Date: Fri, 20 Jan 2012 15:41:54 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
391 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Range: bytes */47022</td><td> </td><td class="right"> Content-Range: bytes */47022</td><td class="lineno" valign="top"></td></tr> |
---|
392 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
393 | <tr><td class="lineno" valign="top"></td><td class="left"> Note: Because servers are free to ignore Range, many</td><td> </td><td class="right"> Note: Because servers are free to ignore Range, many</td><td class="lineno" valign="top"></td></tr> |
---|
394 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
395 | <tr bgcolor="gray" ><td></td><th><a name="part-l11" /><small>skipping to change at</small><em> page 15, line 40</em></th><th> </th><th><a name="part-r11" /><small>skipping to change at</small><em> page 14, line 40</em></th><td></td></tr> |
---|
396 | <tr><td class="lineno" valign="top"></td><td class="left"> task (albeit less efficiently) and partly because clients might</td><td> </td><td class="right"> task (albeit less efficiently) and partly because clients might</td><td class="lineno" valign="top"></td></tr> |
---|
397 | <tr><td class="lineno" valign="top"></td><td class="left"> not stop making an invalid partial request until they have</td><td> </td><td class="right"> not stop making an invalid partial request until they have</td><td class="lineno" valign="top"></td></tr> |
---|
398 | <tr><td class="lineno" valign="top"></td><td class="left"> received a complete representation. Thus, clients cannot depend</td><td> </td><td class="right"> received a complete representation. Thus, clients cannot depend</td><td class="lineno" valign="top"></td></tr> |
---|
399 | <tr><td class="lineno" valign="top"></td><td class="left"> on receiving a 416 (Range Not Satisfiable) response even when it</td><td> </td><td class="right"> on receiving a 416 (Range Not Satisfiable) response even when it</td><td class="lineno" valign="top"></td></tr> |
---|
400 | <tr><td class="lineno" valign="top"></td><td class="left"> is most appropriate.</td><td> </td><td class="right"> is most appropriate.</td><td class="lineno" valign="top"></td></tr> |
---|
401 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
402 | <tr><td class="lineno" valign="top"></td><td class="left">5. IANA Considerations</td><td> </td><td class="right">5. IANA Considerations</td><td class="lineno" valign="top"></td></tr> |
---|
403 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
404 | <tr><td class="lineno" valign="top"></td><td class="left">5.1. Range Unit Registry</td><td> </td><td class="right">5.1. Range Unit Registry</td><td class="lineno" valign="top"></td></tr> |
---|
405 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
406 | <tr><td><a name="diff0020" /></td></tr> |
---|
407 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The <span class="delete">HTTP</span> Range Unit <span class="delete">Registry</span> defines the namespace for the range unit</td><td> </td><td class="rblock"> The <span class="insert">"HTTP</span> Range Unit <span class="insert">Registry"</span> defines the namespace for the range</td><td class="lineno" valign="top"></td></tr> |
---|
408 | <tr><td class="lineno" valign="top"></td><td class="lblock"> names and refers to their corresponding specifications. The registry</td><td> </td><td class="rblock"> unit names and refers to their corresponding specifications. The</td><td class="lineno" valign="top"></td></tr> |
---|
409 | <tr><td class="lineno" valign="top"></td><td class="lblock"> will be created and maintained at <span class="delete">(the suggested URI)</span></td><td> </td><td class="rblock"> registry will be created and maintained at</td><td class="lineno" valign="top"></td></tr> |
---|
410 | <tr><td class="lineno" valign="top"></td><td class="left"> <http://www.iana.org/assignments/http-parameters>.</td><td> </td><td class="right"> <http://www.iana.org/assignments/http-parameters>.</td><td class="lineno" valign="top"></td></tr> |
---|
411 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
412 | <tr><td class="lineno" valign="top"></td><td class="left">5.1.1. Procedure</td><td> </td><td class="right">5.1.1. Procedure</td><td class="lineno" valign="top"></td></tr> |
---|
413 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
414 | <tr><td class="lineno" valign="top"></td><td class="left"> Registration of an HTTP Range Unit MUST include the following fields:</td><td> </td><td class="right"> Registration of an HTTP Range Unit MUST include the following fields:</td><td class="lineno" valign="top"></td></tr> |
---|
415 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
416 | <tr><td class="lineno" valign="top"></td><td class="left"> o Name</td><td> </td><td class="right"> o Name</td><td class="lineno" valign="top"></td></tr> |
---|
417 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
418 | <tr><td class="lineno" valign="top"></td><td class="left"> o Description</td><td> </td><td class="right"> o Description</td><td class="lineno" valign="top"></td></tr> |
---|
419 | <tr><td class="lineno" valign="top"></td><td class="left"> o Pointer to specification text</td><td> </td><td class="right"> o Pointer to specification text</td><td class="lineno" valign="top"></td></tr> |
---|
420 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
421 | <tr><td class="lineno" valign="top"></td><td class="left"> Values to be added to this namespace require IETF Review (see</td><td> </td><td class="right"> Values to be added to this namespace require IETF Review (see</td><td class="lineno" valign="top"></td></tr> |
---|
422 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC5226], Section 4.1).</td><td> </td><td class="right"> [RFC5226], Section 4.1).</td><td class="lineno" valign="top"></td></tr> |
---|
423 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
424 | <tr><td class="lineno" valign="top"></td><td class="left">5.1.2. Registrations</td><td> </td><td class="right">5.1.2. Registrations</td><td class="lineno" valign="top"></td></tr> |
---|
425 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
426 | <tr><td><a name="diff0021" /></td></tr> |
---|
427 | <tr><td class="lineno" valign="top"></td><td class="lblock"> The initial <span class="delete">HTTP Range Unit Registry shall contain</span> the registrations</td><td> </td><td class="rblock"> The initial <span class="insert">"HTTP Range Unit Registry" contains</span> the registrations</td><td class="lineno" valign="top"></td></tr> |
---|
428 | <tr><td class="lineno" valign="top"></td><td class="left"> below:</td><td> </td><td class="right"> below:</td><td class="lineno" valign="top"></td></tr> |
---|
429 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
430 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------------+---------------------------------------+-------------+</td><td> </td><td class="right"> +-------------+---------------------------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
431 | <tr><td class="lineno" valign="top"></td><td class="left"> | Range Unit | Description | Reference |</td><td> </td><td class="right"> | Range Unit | Description | Reference |</td><td class="lineno" valign="top"></td></tr> |
---|
432 | <tr><td class="lineno" valign="top"></td><td class="left"> | Name | | |</td><td> </td><td class="right"> | Name | | |</td><td class="lineno" valign="top"></td></tr> |
---|
433 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------------+---------------------------------------+-------------+</td><td> </td><td class="right"> +-------------+---------------------------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
434 | <tr><td class="lineno" valign="top"></td><td class="left"> | bytes | a range of octets | Section 2.1 |</td><td> </td><td class="right"> | bytes | a range of octets | Section 2.1 |</td><td class="lineno" valign="top"></td></tr> |
---|
435 | <tr><td class="lineno" valign="top"></td><td class="left"> | none | reserved as keyword, indicating no | Section 2.3 |</td><td> </td><td class="right"> | none | reserved as keyword, indicating no | Section 2.3 |</td><td class="lineno" valign="top"></td></tr> |
---|
436 | <tr><td class="lineno" valign="top"></td><td class="left"> | | ranges are supported | |</td><td> </td><td class="right"> | | ranges are supported | |</td><td class="lineno" valign="top"></td></tr> |
---|
437 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------------+---------------------------------------+-------------+</td><td> </td><td class="right"> +-------------+---------------------------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
438 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
439 | <tr><td class="lineno" valign="top"></td><td class="left"> The change controller is: "IETF (iesg@ietf.org) - Internet</td><td> </td><td class="right"> The change controller is: "IETF (iesg@ietf.org) - Internet</td><td class="lineno" valign="top"></td></tr> |
---|
440 | <tr><td class="lineno" valign="top"></td><td class="left"> Engineering Task Force".</td><td> </td><td class="right"> Engineering Task Force".</td><td class="lineno" valign="top"></td></tr> |
---|
441 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
442 | <tr><td class="lineno" valign="top"></td><td class="left">5.2. Status Code Registration</td><td> </td><td class="right">5.2. Status Code Registration</td><td class="lineno" valign="top"></td></tr> |
---|
443 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
444 | <tr><td class="lineno" valign="top"></td><td class="left"> The "Hypertext Transfer Protocol (HTTP) Status Code Registry" located</td><td> </td><td class="right"> The "Hypertext Transfer Protocol (HTTP) Status Code Registry" located</td><td class="lineno" valign="top"></td></tr> |
---|
445 | <tr><td class="lineno" valign="top"></td><td class="left"> at <http://www.iana.org/assignments/http-status-codes> has been</td><td> </td><td class="right"> at <http://www.iana.org/assignments/http-status-codes> has been</td><td class="lineno" valign="top"></td></tr> |
---|
446 | <tr><td><a name="diff0022" /></td></tr> |
---|
447 | <tr><td class="lineno" valign="top"></td><td class="lblock"> updated <span class="delete">with</span> the registrations below:</td><td> </td><td class="rblock"> updated <span class="insert">to include</span> the registrations below:</td><td class="lineno" valign="top"></td></tr> |
---|
448 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
449 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------+-----------------------+-------------+</td><td> </td><td class="right"> +-------+-----------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
450 | <tr><td class="lineno" valign="top"></td><td class="left"> | Value | Description | Reference |</td><td> </td><td class="right"> | Value | Description | Reference |</td><td class="lineno" valign="top"></td></tr> |
---|
451 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------+-----------------------+-------------+</td><td> </td><td class="right"> +-------+-----------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
452 | <tr><td class="lineno" valign="top"></td><td class="left"> | 206 | Partial Content | Section 4.1 |</td><td> </td><td class="right"> | 206 | Partial Content | Section 4.1 |</td><td class="lineno" valign="top"></td></tr> |
---|
453 | <tr><td class="lineno" valign="top"></td><td class="left"> | 416 | Range Not Satisfiable | Section 4.4 |</td><td> </td><td class="right"> | 416 | Range Not Satisfiable | Section 4.4 |</td><td class="lineno" valign="top"></td></tr> |
---|
454 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------+-----------------------+-------------+</td><td> </td><td class="right"> +-------+-----------------------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
455 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
456 | <tr><td class="lineno" valign="top"></td><td class="left">5.3. Header Field Registration</td><td> </td><td class="right">5.3. Header Field Registration</td><td class="lineno" valign="top"></td></tr> |
---|
457 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
458 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP header fields are registered within the "Message Headers"</td><td> </td><td class="right"> HTTP header fields are registered within the "Message Headers"</td><td class="lineno" valign="top"></td></tr> |
---|
459 | <tr><td class="lineno" valign="top"></td><td class="left"> registry maintained at</td><td> </td><td class="right"> registry maintained at</td><td class="lineno" valign="top"></td></tr> |
---|
460 | <tr><td><a name="diff0023" /></td></tr> |
---|
461 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <http://www.iana.org/assignments/message-headers<span class="delete">/</span>>.</td><td> </td><td class="rblock"> <http://www.iana.org/assignments/message-headers>.</td><td class="lineno" valign="top"></td></tr> |
---|
462 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
463 | <tr><td><a name="diff0024" /></td></tr> |
---|
464 | <tr><td class="lineno" valign="top"></td><td class="lblock"> This document defines the following HTTP header <span class="delete">fields, so the</span></td><td> </td><td class="rblock"> This document defines the following HTTP header <span class="insert">fields; their</span></td><td class="lineno" valign="top"></td></tr> |
---|
465 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> "Permanent Message Header Field Names"</span> registry <span class="delete">has</span> been updated</td><td> </td><td class="rblock"><span class="insert"> associated</span> registry <span class="insert">entries have</span> been updated <span class="insert">according to the</span></td><td class="lineno" valign="top"></td></tr> |
---|
466 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">accordingly</span> (see <span class="delete">[BCP90]).</span></td><td> </td><td class="rblock"><span class="insert"> permanent registrations below</span> (see <span class="insert">[BCP90]):</span></td><td class="lineno" valign="top"></td></tr> |
---|
467 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
468 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------------------+----------+----------+-------------+</td><td> </td><td class="right"> +-------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
469 | <tr><td class="lineno" valign="top"></td><td class="left"> | Header Field Name | Protocol | Status | Reference |</td><td> </td><td class="right"> | Header Field Name | Protocol | Status | Reference |</td><td class="lineno" valign="top"></td></tr> |
---|
470 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------------------+----------+----------+-------------+</td><td> </td><td class="right"> +-------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
471 | <tr><td class="lineno" valign="top"></td><td class="left"> | Accept-Ranges | http | standard | Section 2.3 |</td><td> </td><td class="right"> | Accept-Ranges | http | standard | Section 2.3 |</td><td class="lineno" valign="top"></td></tr> |
---|
472 | <tr><td class="lineno" valign="top"></td><td class="left"> | Content-Range | http | standard | Section 4.2 |</td><td> </td><td class="right"> | Content-Range | http | standard | Section 4.2 |</td><td class="lineno" valign="top"></td></tr> |
---|
473 | <tr><td class="lineno" valign="top"></td><td class="left"> | If-Range | http | standard | Section 3.2 |</td><td> </td><td class="right"> | If-Range | http | standard | Section 3.2 |</td><td class="lineno" valign="top"></td></tr> |
---|
474 | <tr><td class="lineno" valign="top"></td><td class="left"> | Range | http | standard | Section 3.1 |</td><td> </td><td class="right"> | Range | http | standard | Section 3.1 |</td><td class="lineno" valign="top"></td></tr> |
---|
475 | <tr><td class="lineno" valign="top"></td><td class="left"> +-------------------+----------+----------+-------------+</td><td> </td><td class="right"> +-------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr> |
---|
476 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
477 | <tr><td class="lineno" valign="top"></td><td class="left"> The change controller is: "IETF (iesg@ietf.org) - Internet</td><td> </td><td class="right"> The change controller is: "IETF (iesg@ietf.org) - Internet</td><td class="lineno" valign="top"></td></tr> |
---|
478 | <tr><td class="lineno" valign="top"></td><td class="left"> Engineering Task Force".</td><td> </td><td class="right"> Engineering Task Force".</td><td class="lineno" valign="top"></td></tr> |
---|
479 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
480 | <tr><td class="lineno" valign="top"></td><td class="left">5.4. Internet Media Type Registration</td><td> </td><td class="right">5.4. Internet Media Type Registration</td><td class="lineno" valign="top"></td></tr> |
---|
481 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
482 | <tr><td class="lineno" valign="top"></td><td class="left"> IANA maintains the registry of Internet media types [BCP13] at</td><td> </td><td class="right"> IANA maintains the registry of Internet media types [BCP13] at</td><td class="lineno" valign="top"></td></tr> |
---|
483 | <tr><td class="lineno" valign="top"></td><td class="left"> <http://www.iana.org/assignments/media-types>.</td><td> </td><td class="right"> <http://www.iana.org/assignments/media-types>.</td><td class="lineno" valign="top"></td></tr> |
---|
484 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
485 | <tr><td class="lineno" valign="top"></td><td class="left"> This document serves as the specification for the Internet media type</td><td> </td><td class="right"> This document serves as the specification for the Internet media type</td><td class="lineno" valign="top"></td></tr> |
---|
486 | <tr><td><a name="diff0025" /></td></tr> |
---|
487 | <tr><td class="lineno" valign="top"></td><td class="lblock"> "multipart/byteranges". The following <span class="delete">is to be</span> registered with IANA.</td><td> </td><td class="rblock"> "multipart/byteranges". The following <span class="insert">has been</span> registered with IANA.</td><td class="lineno" valign="top"></td></tr> |
---|
488 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
489 | <tr><td class="lineno" valign="top"></td><td class="left">5.4.1. Internet Media Type multipart/byteranges</td><td> </td><td class="right">5.4.1. Internet Media Type multipart/byteranges</td><td class="lineno" valign="top"></td></tr> |
---|
490 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
491 | <tr><td class="lineno" valign="top"></td><td class="left"> Type name: multipart</td><td> </td><td class="right"> Type name: multipart</td><td class="lineno" valign="top"></td></tr> |
---|
492 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
493 | <tr><td class="lineno" valign="top"></td><td class="left"> Subtype name: byteranges</td><td> </td><td class="right"> Subtype name: byteranges</td><td class="lineno" valign="top"></td></tr> |
---|
494 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
495 | <tr><td class="lineno" valign="top"></td><td class="left"> Required parameters: boundary</td><td> </td><td class="right"> Required parameters: boundary</td><td class="lineno" valign="top"></td></tr> |
---|
496 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
497 | <tr><td class="lineno" valign="top"></td><td class="left"> Optional parameters: N/A</td><td> </td><td class="right"> Optional parameters: N/A</td><td class="lineno" valign="top"></td></tr> |
---|
498 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
499 | <tr bgcolor="gray" ><td></td><th><a name="part-l12" /><small>skipping to change at</small><em> page 18, line 13</em></th><th> </th><th><a name="part-r12" /><small>skipping to change at</small><em> page 17, line 13</em></th><td></td></tr> |
---|
500 | <tr><td class="lineno" valign="top"></td><td class="left"> Additional information:</td><td> </td><td class="right"> Additional information:</td><td class="lineno" valign="top"></td></tr> |
---|
501 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
502 | <tr><td class="lineno" valign="top"></td><td class="left"> Deprecated alias names for this type: N/A</td><td> </td><td class="right"> Deprecated alias names for this type: N/A</td><td class="lineno" valign="top"></td></tr> |
---|
503 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
504 | <tr><td class="lineno" valign="top"></td><td class="left"> Magic number(s): N/A</td><td> </td><td class="right"> Magic number(s): N/A</td><td class="lineno" valign="top"></td></tr> |
---|
505 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
506 | <tr><td class="lineno" valign="top"></td><td class="left"> File extension(s): N/A</td><td> </td><td class="right"> File extension(s): N/A</td><td class="lineno" valign="top"></td></tr> |
---|
507 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
508 | <tr><td class="lineno" valign="top"></td><td class="left"> Macintosh file type code(s): N/A</td><td> </td><td class="right"> Macintosh file type code(s): N/A</td><td class="lineno" valign="top"></td></tr> |
---|
509 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
510 | <tr><td><a name="diff0026" /></td></tr> |
---|
511 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Person and email address to contact for further information: See</td><td> </td><td class="rblock"> Person and email address to contact for further information:</td><td class="lineno" valign="top"></td></tr> |
---|
512 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Authors' Addresses <span class="delete">Section.</span></td><td> </td><td class="rblock"> See Authors' Addresses <span class="insert">section of RFC 7233.</span></td><td class="lineno" valign="top"></td></tr> |
---|
513 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
514 | <tr><td class="lineno" valign="top"></td><td class="left"> Intended usage: COMMON</td><td> </td><td class="right"> Intended usage: COMMON</td><td class="lineno" valign="top"></td></tr> |
---|
515 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
516 | <tr><td class="lineno" valign="top"></td><td class="left"> Restrictions on usage: N/A</td><td> </td><td class="right"> Restrictions on usage: N/A</td><td class="lineno" valign="top"></td></tr> |
---|
517 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
518 | <tr><td><a name="diff0027" /></td></tr> |
---|
519 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Author: See Authors<span class="delete">' Addresses</span> Section.</td><td> </td><td class="rblock"> Author: See Authors Section.</td><td class="lineno" valign="top"></td></tr> |
---|
520 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
521 | <tr><td class="lineno" valign="top"></td><td class="left"> Change controller: IESG</td><td> </td><td class="right"> Change controller: IESG</td><td class="lineno" valign="top"></td></tr> |
---|
522 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
523 | <tr><td class="lineno" valign="top"></td><td class="left">6. Security Considerations</td><td> </td><td class="right">6. Security Considerations</td><td class="lineno" valign="top"></td></tr> |
---|
524 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
525 | <tr><td class="lineno" valign="top"></td><td class="left"> This section is meant to inform developers, information providers,</td><td> </td><td class="right"> This section is meant to inform developers, information providers,</td><td class="lineno" valign="top"></td></tr> |
---|
526 | <tr><td class="lineno" valign="top"></td><td class="left"> and users of known security concerns specific to the HTTP range</td><td> </td><td class="right"> and users of known security concerns specific to the HTTP range</td><td class="lineno" valign="top"></td></tr> |
---|
527 | <tr><td class="lineno" valign="top"></td><td class="left"> request mechanisms. More general security considerations are</td><td> </td><td class="right"> request mechanisms. More general security considerations are</td><td class="lineno" valign="top"></td></tr> |
---|
528 | <tr><td class="lineno" valign="top"></td><td class="left"> addressed in HTTP messaging [RFC7230] and semantics [RFC7231].</td><td> </td><td class="right"> addressed in HTTP messaging [RFC7230] and semantics [RFC7231].</td><td class="lineno" valign="top"></td></tr> |
---|
529 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
530 | <tr><td><a name="diff0028" /></td></tr> |
---|
531 | <tr><td class="lineno" valign="top"></td><td class="lblock">6.1. Denial<span class="delete"> of Service Attacks u</span>sing Range</td><td> </td><td class="rblock">6.1. Denial<span class="insert">-of-Service Attacks U</span>sing Range</td><td class="lineno" valign="top"></td></tr> |
---|
532 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
533 | <tr><td class="lineno" valign="top"></td><td class="left"> Unconstrained multiple range requests are susceptible to denial-of-</td><td> </td><td class="right"> Unconstrained multiple range requests are susceptible to denial-of-</td><td class="lineno" valign="top"></td></tr> |
---|
534 | <tr><td class="lineno" valign="top"></td><td class="left"> service attacks because the effort required to request many</td><td> </td><td class="right"> service attacks because the effort required to request many</td><td class="lineno" valign="top"></td></tr> |
---|
535 | <tr><td class="lineno" valign="top"></td><td class="left"> overlapping ranges of the same data is tiny compared to the time,</td><td> </td><td class="right"> overlapping ranges of the same data is tiny compared to the time,</td><td class="lineno" valign="top"></td></tr> |
---|
536 | <tr><td class="lineno" valign="top"></td><td class="left"> memory, and bandwidth consumed by attempting to serve the requested</td><td> </td><td class="right"> memory, and bandwidth consumed by attempting to serve the requested</td><td class="lineno" valign="top"></td></tr> |
---|
537 | <tr><td class="lineno" valign="top"></td><td class="left"> data in many parts. Servers ought to ignore, coalesce, or reject</td><td> </td><td class="right"> data in many parts. Servers ought to ignore, coalesce, or reject</td><td class="lineno" valign="top"></td></tr> |
---|
538 | <tr><td class="lineno" valign="top"></td><td class="left"> egregious range requests, such as requests for more than two</td><td> </td><td class="right"> egregious range requests, such as requests for more than two</td><td class="lineno" valign="top"></td></tr> |
---|
539 | <tr><td class="lineno" valign="top"></td><td class="left"> overlapping ranges or for many small ranges in a single set,</td><td> </td><td class="right"> overlapping ranges or for many small ranges in a single set,</td><td class="lineno" valign="top"></td></tr> |
---|
540 | <tr><td class="lineno" valign="top"></td><td class="left"> particularly when the ranges are requested out of order for no</td><td> </td><td class="right"> particularly when the ranges are requested out of order for no</td><td class="lineno" valign="top"></td></tr> |
---|
541 | <tr><td class="lineno" valign="top"></td><td class="left"> apparent reason. Multipart range requests are not designed to</td><td> </td><td class="right"> apparent reason. Multipart range requests are not designed to</td><td class="lineno" valign="top"></td></tr> |
---|
542 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
543 | <tr bgcolor="gray" ><td></td><th><a name="part-l13" /><small>skipping to change at</small><em> page 19, line 18</em></th><th> </th><th><a name="part-r13" /><small>skipping to change at</small><em> page 18, line 18</em></th><td></td></tr> |
---|
544 | <tr><td class="lineno" valign="top"></td><td class="left"> November 1996.</td><td> </td><td class="right"> November 1996.</td><td class="lineno" valign="top"></td></tr> |
---|
545 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
546 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate</td><td> </td><td class="right"> [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate</td><td class="lineno" valign="top"></td></tr> |
---|
547 | <tr><td class="lineno" valign="top"></td><td class="left"> Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td> </td><td class="right"> Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td class="lineno" valign="top"></td></tr> |
---|
548 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
549 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax</td><td> </td><td class="right"> [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax</td><td class="lineno" valign="top"></td></tr> |
---|
550 | <tr><td class="lineno" valign="top"></td><td class="left"> Specifications: ABNF", STD 68, RFC 5234, January 2008.</td><td> </td><td class="right"> Specifications: ABNF", STD 68, RFC 5234, January 2008.</td><td class="lineno" valign="top"></td></tr> |
---|
551 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
552 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td> </td><td class="right"> [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td class="lineno" valign="top"></td></tr> |
---|
553 | <tr><td class="lineno" valign="top"></td><td class="left"> Protocol (HTTP/1.1): Message Syntax and Routing",</td><td> </td><td class="right"> Protocol (HTTP/1.1): Message Syntax and Routing",</td><td class="lineno" valign="top"></td></tr> |
---|
554 | <tr><td><a name="diff0029" /></td></tr> |
---|
555 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p1-messaging-latest (work in progress),</span></td><td> </td><td class="rblock"> <span class="insert">RFC 7230,</span> May 2014.</td><td class="lineno" valign="top"></td></tr> |
---|
556 | <tr><td class="lineno" valign="top"></td><td class="lblock"> May 2014.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
557 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
558 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td> </td><td class="right"> [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td class="lineno" valign="top"></td></tr> |
---|
559 | <tr><td><a name="diff0030" /></td></tr> |
---|
560 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Protocol (HTTP/1.1): Semantics and Content",</td><td> </td><td class="rblock"> Protocol (HTTP/1.1): Semantics and Content", <span class="insert">RFC 7231,</span></td><td class="lineno" valign="top"></td></tr> |
---|
561 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p2-semantics-latest (work in progress),</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
562 | <tr><td class="lineno" valign="top"></td><td class="left"> May 2014.</td><td> </td><td class="right"> May 2014.</td><td class="lineno" valign="top"></td></tr> |
---|
563 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
564 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC7232] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td> </td><td class="right"> [RFC7232] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td class="lineno" valign="top"></td></tr> |
---|
565 | <tr><td><a name="diff0031" /></td></tr> |
---|
566 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Protocol (HTTP/1.1): Conditional Requests",</td><td> </td><td class="rblock"> Protocol (HTTP/1.1): Conditional Requests", <span class="insert">RFC 7232,</span></td><td class="lineno" valign="top"></td></tr> |
---|
567 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p4-conditional-latest (work in</span></td><td> </td><td class="rblock"> May 2014.</td><td class="lineno" valign="top"></td></tr> |
---|
568 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> progress),</span> May 2014.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
569 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
570 | <tr><td class="lineno" valign="top"></td><td class="left"> [RFC7234] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,</td><td> </td><td class="right"> [RFC7234] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,</td><td class="lineno" valign="top"></td></tr> |
---|
571 | <tr><td class="lineno" valign="top"></td><td class="left"> Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching",</td><td> </td><td class="right"> Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching",</td><td class="lineno" valign="top"></td></tr> |
---|
572 | <tr><td><a name="diff0032" /></td></tr> |
---|
573 | <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">draft-ietf-httpbis-p6-cache-latest (work in progress),</span></td><td> </td><td class="rblock"> <span class="insert">RFC 7234,</span> May 2014.</td><td class="lineno" valign="top"></td></tr> |
---|
574 | <tr><td class="lineno" valign="top"></td><td class="lblock"> May 2014.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr> |
---|
575 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
576 | <tr><td class="lineno" valign="top"></td><td class="left">8.2. Informative References</td><td> </td><td class="right">8.2. Informative References</td><td class="lineno" valign="top"></td></tr> |
---|
577 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
578 | <tr><td class="lineno" valign="top"></td><td class="left"> [BCP13] Freed, N., Klensin, J., and T. Hansen, "Media Type</td><td> </td><td class="right"> [BCP13] Freed, N., Klensin, J., and T. Hansen, "Media Type</td><td class="lineno" valign="top"></td></tr> |
---|
579 | <tr><td class="lineno" valign="top"></td><td class="left"> Specifications and Registration Procedures", BCP 13,</td><td> </td><td class="right"> Specifications and Registration Procedures", BCP 13,</td><td class="lineno" valign="top"></td></tr> |
---|
580 | <tr><td class="lineno" valign="top"></td><td class="left"> RFC 6838, January 2013.</td><td> </td><td class="right"> RFC 6838, January 2013.</td><td class="lineno" valign="top"></td></tr> |
---|
581 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
582 | <tr><td class="lineno" valign="top"></td><td class="left"> [BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration</td><td> </td><td class="right"> [BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration</td><td class="lineno" valign="top"></td></tr> |
---|
583 | <tr><td class="lineno" valign="top"></td><td class="left"> Procedures for Message Header Fields", BCP 90, RFC 3864,</td><td> </td><td class="right"> Procedures for Message Header Fields", BCP 90, RFC 3864,</td><td class="lineno" valign="top"></td></tr> |
---|
584 | <tr><td class="lineno" valign="top"></td><td class="left"> September 2004.</td><td> </td><td class="right"> September 2004.</td><td class="lineno" valign="top"></td></tr> |
---|
585 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
586 | <tr bgcolor="gray" ><td></td><th><a name="part-l14" /><small>skipping to change at</small><em> page 20, line 27</em></th><th> </th><th><a name="part-r14" /><small>skipping to change at</small><em> page 19, line 26</em></th><td></td></tr> |
---|
587 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
588 | <tr><td class="lineno" valign="top"></td><td class="left"> Implementation Notes:</td><td> </td><td class="right"> Implementation Notes:</td><td class="lineno" valign="top"></td></tr> |
---|
589 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
590 | <tr><td class="lineno" valign="top"></td><td class="left"> 1. Additional CRLFs might precede the first boundary string in the</td><td> </td><td class="right"> 1. Additional CRLFs might precede the first boundary string in the</td><td class="lineno" valign="top"></td></tr> |
---|
591 | <tr><td class="lineno" valign="top"></td><td class="left"> body.</td><td> </td><td class="right"> body.</td><td class="lineno" valign="top"></td></tr> |
---|
592 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
593 | <tr><td class="lineno" valign="top"></td><td class="left"> 2. Although [RFC2046] permits the boundary string to be quoted, some</td><td> </td><td class="right"> 2. Although [RFC2046] permits the boundary string to be quoted, some</td><td class="lineno" valign="top"></td></tr> |
---|
594 | <tr><td class="lineno" valign="top"></td><td class="left"> existing implementations handle a quoted boundary string</td><td> </td><td class="right"> existing implementations handle a quoted boundary string</td><td class="lineno" valign="top"></td></tr> |
---|
595 | <tr><td class="lineno" valign="top"></td><td class="left"> incorrectly.</td><td> </td><td class="right"> incorrectly.</td><td class="lineno" valign="top"></td></tr> |
---|
596 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
597 | <tr><td><a name="diff0033" /></td></tr> |
---|
598 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 3. A number of clients and servers were coded to an early draft of</td><td> </td><td class="rblock"> 3. A number of clients and servers were coded to an early draft</td><td class="lineno" valign="top"></td></tr> |
---|
599 | <tr><td class="lineno" valign="top"></td><td class="lblock"> the byteranges specification that used a media type of <span class="delete">multipart/</span></td><td> </td><td class="rblock"> <span class="insert">version</span> of the byteranges specification that used a media type of</td><td class="lineno" valign="top"></td></tr> |
---|
600 | <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> x-byteranges,</span> which is almost (but not quite) compatible with</td><td> </td><td class="rblock"> <span class="insert">multipart/x-byteranges,</span> which is almost (but not quite)</td><td class="lineno" valign="top"></td></tr> |
---|
601 | <tr><td class="lineno" valign="top"></td><td class="lblock"> this type.</td><td> </td><td class="rblock"> compatible with this type.</td><td class="lineno" valign="top"></td></tr> |
---|
602 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
603 | <tr><td class="lineno" valign="top"></td><td class="left"> Despite the name, the "multipart/byteranges" media type is not</td><td> </td><td class="right"> Despite the name, the "multipart/byteranges" media type is not</td><td class="lineno" valign="top"></td></tr> |
---|
604 | <tr><td class="lineno" valign="top"></td><td class="left"> limited to byte ranges. The following example uses an "exampleunit"</td><td> </td><td class="right"> limited to byte ranges. The following example uses an "exampleunit"</td><td class="lineno" valign="top"></td></tr> |
---|
605 | <tr><td class="lineno" valign="top"></td><td class="left"> range unit:</td><td> </td><td class="right"> range unit:</td><td class="lineno" valign="top"></td></tr> |
---|
606 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
607 | <tr><td class="lineno" valign="top"></td><td class="left"> HTTP/1.1 206 Partial Content</td><td> </td><td class="right"> HTTP/1.1 206 Partial Content</td><td class="lineno" valign="top"></td></tr> |
---|
608 | <tr><td class="lineno" valign="top"></td><td class="left"> Date: Tue, 14 Nov 1995 06:25:24 GMT</td><td> </td><td class="right"> Date: Tue, 14 Nov 1995 06:25:24 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
609 | <tr><td class="lineno" valign="top"></td><td class="left"> Last-Modified: Tue, 14 July 04:58:08 GMT</td><td> </td><td class="right"> Last-Modified: Tue, 14 July 04:58:08 GMT</td><td class="lineno" valign="top"></td></tr> |
---|
610 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Length: 2331785</td><td> </td><td class="right"> Content-Length: 2331785</td><td class="lineno" valign="top"></td></tr> |
---|
611 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES</td><td> </td><td class="right"> Content-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES</td><td class="lineno" valign="top"></td></tr> |
---|
612 | <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr> |
---|
613 | <tr bgcolor="gray" ><td></td><th><a name="part-l15" /><small>skipping to change at</small><em> page 21, line 9</em></th><th> </th><th><a name="part-r15" /><small>skipping to change at</small><em> page 20, line 8</em></th><td></td></tr> |
---|
614 | <tr><td class="lineno" valign="top"></td><td class="left"> --THIS_STRING_SEPARATES</td><td> </td><td class="right"> --THIS_STRING_SEPARATES</td><td class="lineno" valign="top"></td></tr> |
---|
615 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Type: video/example</td><td> </td><td class="right"> Content-Type: video/example</td><td class="lineno" valign="top"></td></tr> |
---|
616 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Range: exampleunit 11.2-14.3/25</td><td> </td><td class="right"> Content-Range: exampleunit 11.2-14.3/25</td><td class="lineno" valign="top"></td></tr> |
---|
617 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
618 | <tr><td class="lineno" valign="top"></td><td class="left"> ...the second range</td><td> </td><td class="right"> ...the second range</td><td class="lineno" valign="top"></td></tr> |
---|
619 | <tr><td class="lineno" valign="top"></td><td class="left"> --THIS_STRING_SEPARATES--</td><td> </td><td class="right"> --THIS_STRING_SEPARATES--</td><td class="lineno" valign="top"></td></tr> |
---|
620 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
621 | <tr><td class="lineno" valign="top"></td><td class="left">Appendix B. Changes from RFC 2616</td><td> </td><td class="right">Appendix B. Changes from RFC 2616</td><td class="lineno" valign="top"></td></tr> |
---|
622 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
623 | <tr><td class="lineno" valign="top"></td><td class="left"> Servers are given more leeway in how they respond to a range request,</td><td> </td><td class="right"> Servers are given more leeway in how they respond to a range request,</td><td class="lineno" valign="top"></td></tr> |
---|
624 | <tr><td><a name="diff0034" /></td></tr> |
---|
625 | <tr><td class="lineno" valign="top"></td><td class="lblock"> in order to mitigate abuse by malicious (or just greedy) <span class="delete">clients.</span></td><td> </td><td class="rblock"> in order to mitigate abuse by malicious (or just greedy) <span class="insert">clients</span></td><td class="lineno" valign="top"></td></tr> |
---|
626 | <tr><td class="lineno" valign="top"></td><td class="lblock"> (Section <span class="delete">3.1)</span></td><td> </td><td class="rblock"> (Section <span class="insert">3.1).</span></td><td class="lineno" valign="top"></td></tr> |
---|
627 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
628 | <tr><td><a name="diff0035" /></td></tr> |
---|
629 | <tr><td class="lineno" valign="top"></td><td class="lblock"> A weak validator cannot be used in a 206 response<span class="delete">. (Section 4.1)</span></td><td> </td><td class="rblock"> A weak validator cannot be used in a 206 response<span class="insert"> (Section 4.1).</span></td><td class="lineno" valign="top"></td></tr> |
---|
630 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
631 | <tr><td class="lineno" valign="top"></td><td class="left"> The Content-Range header field only has meaning when the status code</td><td> </td><td class="right"> The Content-Range header field only has meaning when the status code</td><td class="lineno" valign="top"></td></tr> |
---|
632 | <tr><td><a name="diff0036" /></td></tr> |
---|
633 | <tr><td class="lineno" valign="top"></td><td class="lblock"> explicitly defines its use<span class="delete">. (Section 4.2)</span></td><td> </td><td class="rblock"> explicitly defines its use<span class="insert"> (Section 4.2).</span></td><td class="lineno" valign="top"></td></tr> |
---|
634 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
635 | <tr><td><a name="diff0037" /></td></tr> |
---|
636 | <tr><td class="lineno" valign="top"></td><td class="lblock"> This specification introduces a Range Unit <span class="delete">Registry.</span> (Section <span class="delete">5.1)</span></td><td> </td><td class="rblock"> This specification introduces a <span class="insert">the "HTTP</span> Range Unit <span class="insert">Registry"</span></td><td class="lineno" valign="top"></td></tr> |
---|
637 | <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> (Section <span class="insert">5.1).</span></td><td class="lineno" valign="top"></td></tr> |
---|
638 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
639 | <tr><td><a name="diff0038" /></td></tr> |
---|
640 | <tr><td class="lineno" valign="top"></td><td class="lblock"> multipart/byteranges can consist of a single part<span class="delete">. (Appendix A)</span></td><td> </td><td class="rblock"> multipart/byteranges can consist of a single part<span class="insert"> (Appendix A).</span></td><td class="lineno" valign="top"></td></tr> |
---|
641 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
642 | <tr><td class="lineno" valign="top"></td><td class="left">Appendix C. Imported ABNF</td><td> </td><td class="right">Appendix C. Imported ABNF</td><td class="lineno" valign="top"></td></tr> |
---|
643 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
644 | <tr><td class="lineno" valign="top"></td><td class="left"> The following core rules are included by reference, as defined in</td><td> </td><td class="right"> The following core rules are included by reference, as defined in</td><td class="lineno" valign="top"></td></tr> |
---|
645 | <tr><td class="lineno" valign="top"></td><td class="left"> Appendix B.1 of [RFC5234]: ALPHA (letters), CR (carriage return),</td><td> </td><td class="right"> Appendix B.1 of [RFC5234]: ALPHA (letters), CR (carriage return),</td><td class="lineno" valign="top"></td></tr> |
---|
646 | <tr><td class="lineno" valign="top"></td><td class="left"> CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double</td><td> </td><td class="right"> CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double</td><td class="lineno" valign="top"></td></tr> |
---|
647 | <tr><td class="lineno" valign="top"></td><td class="left"> quote), HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any</td><td> </td><td class="right"> quote), HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any</td><td class="lineno" valign="top"></td></tr> |
---|
648 | <tr><td class="lineno" valign="top"></td><td class="left"> 8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII</td><td> </td><td class="right"> 8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII</td><td class="lineno" valign="top"></td></tr> |
---|
649 | <tr><td class="lineno" valign="top"></td><td class="left"> character).</td><td> </td><td class="right"> character).</td><td class="lineno" valign="top"></td></tr> |
---|
650 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
651 | <tr><td class="lineno" valign="top"></td><td class="left"> Note that all rules derived from token are to be compared case-</td><td> </td><td class="right"> Note that all rules derived from token are to be compared case-</td><td class="lineno" valign="top"></td></tr> |
---|
652 | <tr><td class="lineno" valign="top"></td><td class="left"> insensitively, like range-unit and acceptable-ranges.</td><td> </td><td class="right"> insensitively, like range-unit and acceptable-ranges.</td><td class="lineno" valign="top"></td></tr> |
---|
653 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
654 | <tr><td class="lineno" valign="top"></td><td class="left"> The rules below are defined in [RFC7230]:</td><td> </td><td class="right"> The rules below are defined in [RFC7230]:</td><td class="lineno" valign="top"></td></tr> |
---|
655 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
656 | <tr><td><a name="diff0039" /></td></tr> |
---|
657 | <tr><td class="lineno" valign="top"></td><td class="lblock"> OWS = <OWS, <span class="delete">see</span> [RFC7230], Section 3.2.3></td><td> </td><td class="rblock"> OWS = <OWS, <span class="insert">defined in</span> [RFC7230], Section 3.2.3></td><td class="lineno" valign="top"></td></tr> |
---|
658 | <tr><td class="lineno" valign="top"></td><td class="lblock"> token = <token, <span class="delete">see</span> [RFC7230], Section 3.2.6></td><td> </td><td class="rblock"> token = <token, <span class="insert">defined in</span> [RFC7230], Section 3.2.6></td><td class="lineno" valign="top"></td></tr> |
---|
659 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
660 | <tr><td class="lineno" valign="top"></td><td class="left"> The rules below are defined in other parts:</td><td> </td><td class="right"> The rules below are defined in other parts:</td><td class="lineno" valign="top"></td></tr> |
---|
661 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
662 | <tr><td><a name="diff0040" /></td></tr> |
---|
663 | <tr><td class="lineno" valign="top"></td><td class="lblock"> HTTP-date = <HTTP-date, <span class="delete">see</span> [RFC7231], Section 7.1.1.1></td><td> </td><td class="rblock"> HTTP-date = <HTTP-date, <span class="insert">defined in</span> [RFC7231], Section 7.1.1.1></td><td class="lineno" valign="top"></td></tr> |
---|
664 | <tr><td class="lineno" valign="top"></td><td class="lblock"> entity-tag = <entity-tag, <span class="delete">see</span> [RFC7232], Section 2.3></td><td> </td><td class="rblock"> entity-tag = <entity-tag, <span class="insert">defined in</span> [RFC7232], Section 2.3></td><td class="lineno" valign="top"></td></tr> |
---|
665 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
666 | <tr><td class="lineno" valign="top"></td><td class="left">Appendix D. Collected ABNF</td><td> </td><td class="right">Appendix D. Collected ABNF</td><td class="lineno" valign="top"></td></tr> |
---|
667 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
668 | <tr><td class="lineno" valign="top"></td><td class="left"> In the collected ABNF below, list rules are expanded as per Section</td><td> </td><td class="right"> In the collected ABNF below, list rules are expanded as per Section</td><td class="lineno" valign="top"></td></tr> |
---|
669 | <tr><td class="lineno" valign="top"></td><td class="left"> 1.2 of [RFC7230].</td><td> </td><td class="right"> 1.2 of [RFC7230].</td><td class="lineno" valign="top"></td></tr> |
---|
670 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
671 | <tr><td class="lineno" valign="top"></td><td class="left"> Accept-Ranges = acceptable-ranges</td><td> </td><td class="right"> Accept-Ranges = acceptable-ranges</td><td class="lineno" valign="top"></td></tr> |
---|
672 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
673 | <tr><td class="lineno" valign="top"></td><td class="left"> Content-Range = byte-content-range / other-content-range</td><td> </td><td class="right"> Content-Range = byte-content-range / other-content-range</td><td class="lineno" valign="top"></td></tr> |
---|
674 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
675 | <tr><td><a name="diff0041" /></td></tr> |
---|
676 | <tr><td class="lineno" valign="top"></td><td class="lblock"> HTTP-date = <HTTP-date, <span class="delete">see</span> [RFC7231], Section 7.1.1.1></td><td> </td><td class="rblock"> HTTP-date = <HTTP-date, <span class="insert">defined in</span> [RFC7231], Section 7.1.1.1></td><td class="lineno" valign="top"></td></tr> |
---|
677 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
678 | <tr><td class="lineno" valign="top"></td><td class="left"> If-Range = entity-tag / HTTP-date</td><td> </td><td class="right"> If-Range = entity-tag / HTTP-date</td><td class="lineno" valign="top"></td></tr> |
---|
679 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
680 | <tr><td><a name="diff0042" /></td></tr> |
---|
681 | <tr><td class="lineno" valign="top"></td><td class="lblock"> OWS = <OWS, <span class="delete">see</span> [RFC7230], Section 3.2.3></td><td> </td><td class="rblock"> OWS = <OWS, <span class="insert">defined in</span> [RFC7230], Section 3.2.3></td><td class="lineno" valign="top"></td></tr> |
---|
682 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
683 | <tr><td class="lineno" valign="top"></td><td class="left"> Range = byte-ranges-specifier / other-ranges-specifier</td><td> </td><td class="right"> Range = byte-ranges-specifier / other-ranges-specifier</td><td class="lineno" valign="top"></td></tr> |
---|
684 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
685 | <tr><td class="lineno" valign="top"></td><td class="left"> acceptable-ranges = ( *( "," OWS ) range-unit *( OWS "," [ OWS</td><td> </td><td class="right"> acceptable-ranges = ( *( "," OWS ) range-unit *( OWS "," [ OWS</td><td class="lineno" valign="top"></td></tr> |
---|
686 | <tr><td class="lineno" valign="top"></td><td class="left"> range-unit ] ) ) / "none"</td><td> </td><td class="right"> range-unit ] ) ) / "none"</td><td class="lineno" valign="top"></td></tr> |
---|
687 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
688 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-content-range = bytes-unit SP ( byte-range-resp /</td><td> </td><td class="right"> byte-content-range = bytes-unit SP ( byte-range-resp /</td><td class="lineno" valign="top"></td></tr> |
---|
689 | <tr><td class="lineno" valign="top"></td><td class="left"> unsatisfied-range )</td><td> </td><td class="right"> unsatisfied-range )</td><td class="lineno" valign="top"></td></tr> |
---|
690 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-range = first-byte-pos "-" last-byte-pos</td><td> </td><td class="right"> byte-range = first-byte-pos "-" last-byte-pos</td><td class="lineno" valign="top"></td></tr> |
---|
691 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-range-resp = byte-range "/" ( complete-length / "*" )</td><td> </td><td class="right"> byte-range-resp = byte-range "/" ( complete-length / "*" )</td><td class="lineno" valign="top"></td></tr> |
---|
692 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-range-set = *( "," OWS ) ( byte-range-spec /</td><td> </td><td class="right"> byte-range-set = *( "," OWS ) ( byte-range-spec /</td><td class="lineno" valign="top"></td></tr> |
---|
693 | <tr><td class="lineno" valign="top"></td><td class="left"> suffix-byte-range-spec ) *( OWS "," [ OWS ( byte-range-spec /</td><td> </td><td class="right"> suffix-byte-range-spec ) *( OWS "," [ OWS ( byte-range-spec /</td><td class="lineno" valign="top"></td></tr> |
---|
694 | <tr><td class="lineno" valign="top"></td><td class="left"> suffix-byte-range-spec ) ] )</td><td> </td><td class="right"> suffix-byte-range-spec ) ] )</td><td class="lineno" valign="top"></td></tr> |
---|
695 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-range-spec = first-byte-pos "-" [ last-byte-pos ]</td><td> </td><td class="right"> byte-range-spec = first-byte-pos "-" [ last-byte-pos ]</td><td class="lineno" valign="top"></td></tr> |
---|
696 | <tr><td class="lineno" valign="top"></td><td class="left"> byte-ranges-specifier = bytes-unit "=" byte-range-set</td><td> </td><td class="right"> byte-ranges-specifier = bytes-unit "=" byte-range-set</td><td class="lineno" valign="top"></td></tr> |
---|
697 | <tr><td class="lineno" valign="top"></td><td class="left"> bytes-unit = "bytes"</td><td> </td><td class="right"> bytes-unit = "bytes"</td><td class="lineno" valign="top"></td></tr> |
---|
698 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
699 | <tr><td class="lineno" valign="top"></td><td class="left"> complete-length = 1*DIGIT</td><td> </td><td class="right"> complete-length = 1*DIGIT</td><td class="lineno" valign="top"></td></tr> |
---|
700 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
701 | <tr><td><a name="diff0043" /></td></tr> |
---|
702 | <tr><td class="lineno" valign="top"></td><td class="lblock"> entity-tag = <entity-tag, <span class="delete">see</span> [RFC7232], Section 2.3></td><td> </td><td class="rblock"> entity-tag = <entity-tag, <span class="insert">defined in</span> [RFC7232], Section 2.3></td><td class="lineno" valign="top"></td></tr> |
---|
703 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
704 | <tr><td class="lineno" valign="top"></td><td class="left"> first-byte-pos = 1*DIGIT</td><td> </td><td class="right"> first-byte-pos = 1*DIGIT</td><td class="lineno" valign="top"></td></tr> |
---|
705 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
706 | <tr><td class="lineno" valign="top"></td><td class="left"> last-byte-pos = 1*DIGIT</td><td> </td><td class="right"> last-byte-pos = 1*DIGIT</td><td class="lineno" valign="top"></td></tr> |
---|
707 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
708 | <tr><td class="lineno" valign="top"></td><td class="left"> other-content-range = other-range-unit SP other-range-resp</td><td> </td><td class="right"> other-content-range = other-range-unit SP other-range-resp</td><td class="lineno" valign="top"></td></tr> |
---|
709 | <tr><td class="lineno" valign="top"></td><td class="left"> other-range-resp = *CHAR</td><td> </td><td class="right"> other-range-resp = *CHAR</td><td class="lineno" valign="top"></td></tr> |
---|
710 | <tr><td class="lineno" valign="top"></td><td class="left"> other-range-set = 1*VCHAR</td><td> </td><td class="right"> other-range-set = 1*VCHAR</td><td class="lineno" valign="top"></td></tr> |
---|
711 | <tr><td class="lineno" valign="top"></td><td class="left"> other-range-unit = token</td><td> </td><td class="right"> other-range-unit = token</td><td class="lineno" valign="top"></td></tr> |
---|
712 | <tr><td class="lineno" valign="top"></td><td class="left"> other-ranges-specifier = other-range-unit "=" other-range-set</td><td> </td><td class="right"> other-ranges-specifier = other-range-unit "=" other-range-set</td><td class="lineno" valign="top"></td></tr> |
---|
713 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
714 | <tr><td class="lineno" valign="top"></td><td class="left"> range-unit = bytes-unit / other-range-unit</td><td> </td><td class="right"> range-unit = bytes-unit / other-range-unit</td><td class="lineno" valign="top"></td></tr> |
---|
715 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
716 | <tr><td class="lineno" valign="top"></td><td class="left"> suffix-byte-range-spec = "-" suffix-length</td><td> </td><td class="right"> suffix-byte-range-spec = "-" suffix-length</td><td class="lineno" valign="top"></td></tr> |
---|
717 | <tr><td class="lineno" valign="top"></td><td class="left"> suffix-length = 1*DIGIT</td><td> </td><td class="right"> suffix-length = 1*DIGIT</td><td class="lineno" valign="top"></td></tr> |
---|
718 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
719 | <tr><td><a name="diff0044" /></td></tr> |
---|
720 | <tr><td class="lineno" valign="top"></td><td class="lblock"> token = <token, <span class="delete">see</span> [RFC7230], Section 3.2.6></td><td> </td><td class="rblock"> token = <token, <span class="insert">defined in</span> [RFC7230], Section 3.2.6></td><td class="lineno" valign="top"></td></tr> |
---|
721 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
722 | <tr><td class="lineno" valign="top"></td><td class="left"> unsatisfied-range = "*/" complete-length</td><td> </td><td class="right"> unsatisfied-range = "*/" complete-length</td><td class="lineno" valign="top"></td></tr> |
---|
723 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
724 | <tr><td class="lineno" valign="top"></td><td class="left">Index</td><td> </td><td class="right">Index</td><td class="lineno" valign="top"></td></tr> |
---|
725 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
726 | <tr><td class="lineno" valign="top"></td><td class="left"> 2</td><td> </td><td class="right"> 2</td><td class="lineno" valign="top"></td></tr> |
---|
727 | <tr><td><a name="diff0045" /></td></tr> |
---|
728 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 206 Partial Content (status code) <span class="delete">10</span></td><td> </td><td class="rblock"> 206 Partial Content (status code) <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr> |
---|
729 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
730 | <tr><td class="lineno" valign="top"></td><td class="left"> 4</td><td> </td><td class="right"> 4</td><td class="lineno" valign="top"></td></tr> |
---|
731 | <tr><td><a name="diff0046" /></td></tr> |
---|
732 | <tr><td class="lineno" valign="top"></td><td class="lblock"> 416 Range Not Satisfiable (status code) 1<span class="delete">5</span></td><td> </td><td class="rblock"> 416 Range Not Satisfiable (status code) 1<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
733 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
734 | <tr><td class="lineno" valign="top"></td><td class="left"> A</td><td> </td><td class="right"> A</td><td class="lineno" valign="top"></td></tr> |
---|
735 | <tr><td><a name="diff0047" /></td></tr> |
---|
736 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Accept-Ranges header field <span class="delete">7</span></td><td> </td><td class="rblock"> Accept-Ranges header field <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
737 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
738 | <tr><td class="lineno" valign="top"></td><td class="left"> C</td><td> </td><td class="right"> C</td><td class="lineno" valign="top"></td></tr> |
---|
739 | <tr><td><a name="diff0048" /></td></tr> |
---|
740 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Content-Range header field 1<span class="delete">2</span></td><td> </td><td class="rblock"> Content-Range header field 1<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr> |
---|
741 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
742 | <tr><td class="lineno" valign="top"></td><td class="left"> G</td><td> </td><td class="right"> G</td><td class="lineno" valign="top"></td></tr> |
---|
743 | <tr><td class="lineno" valign="top"></td><td class="left"> Grammar</td><td> </td><td class="right"> Grammar</td><td class="lineno" valign="top"></td></tr> |
---|
744 | <tr><td><a name="diff0049" /></td></tr> |
---|
745 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Accept-Ranges <span class="delete">7</span></td><td> </td><td class="rblock"> Accept-Ranges <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
746 | <tr><td class="lineno" valign="top"></td><td class="lblock"> acceptable-ranges <span class="delete">7</span></td><td> </td><td class="rblock"> acceptable-ranges <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
747 | <tr><td class="lineno" valign="top"></td><td class="lblock"> byte-content-range <span class="delete">12</span></td><td> </td><td class="rblock"> byte-content-range <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
748 | <tr><td class="lineno" valign="top"></td><td class="lblock"> byte-range <span class="delete">12</span></td><td> </td><td class="rblock"> byte-range <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
749 | <tr><td class="lineno" valign="top"></td><td class="lblock"> byte-range-resp <span class="delete">12</span></td><td> </td><td class="rblock"> byte-range-resp <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
750 | <tr><td class="lineno" valign="top"></td><td class="lblock"> byte-range-set <span class="delete">5</span></td><td> </td><td class="rblock"> byte-range-set <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
751 | <tr><td class="lineno" valign="top"></td><td class="lblock"> byte-range-spec <span class="delete">5</span></td><td> </td><td class="rblock"> byte-range-spec <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
752 | <tr><td class="lineno" valign="top"></td><td class="lblock"> byte-ranges-specifier <span class="delete">5</span></td><td> </td><td class="rblock"> byte-ranges-specifier <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
753 | <tr><td class="lineno" valign="top"></td><td class="lblock"> bytes-unit <span class="delete">5</span></td><td> </td><td class="rblock"> bytes-unit <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
754 | <tr><td class="lineno" valign="top"></td><td class="lblock"> complete-length <span class="delete">12</span></td><td> </td><td class="rblock"> complete-length <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
755 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Content-Range <span class="delete">12</span></td><td> </td><td class="rblock"> Content-Range <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
756 | <tr><td class="lineno" valign="top"></td><td class="lblock"> first-byte-pos <span class="delete">5</span></td><td> </td><td class="rblock"> first-byte-pos <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
757 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Range <span class="delete">9</span></td><td> </td><td class="rblock"> If-Range <span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> |
---|
758 | <tr><td class="lineno" valign="top"></td><td class="lblock"> last-byte-pos <span class="delete">5</span></td><td> </td><td class="rblock"> last-byte-pos <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
759 | <tr><td class="lineno" valign="top"></td><td class="lblock"> other-content-range <span class="delete">12</span></td><td> </td><td class="rblock"> other-content-range <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
760 | <tr><td class="lineno" valign="top"></td><td class="lblock"> other-range-resp <span class="delete">12</span></td><td> </td><td class="rblock"> other-range-resp <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
761 | <tr><td class="lineno" valign="top"></td><td class="lblock"> other-range-unit <span class="delete">5, 7</span></td><td> </td><td class="rblock"> other-range-unit <span class="insert">4, 6</span></td><td class="lineno" valign="top"></td></tr> |
---|
762 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Range <span class="delete">7</span></td><td> </td><td class="rblock"> Range <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
763 | <tr><td class="lineno" valign="top"></td><td class="lblock"> range-unit <span class="delete">5</span></td><td> </td><td class="rblock"> range-unit <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
764 | <tr><td class="lineno" valign="top"></td><td class="lblock"> ranges-specifier <span class="delete">5</span></td><td> </td><td class="rblock"> ranges-specifier <span class="insert">4</span></td><td class="lineno" valign="top"></td></tr> |
---|
765 | <tr><td class="lineno" valign="top"></td><td class="lblock"> suffix-byte-range-spec <span class="delete">6</span></td><td> </td><td class="rblock"> suffix-byte-range-spec <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> |
---|
766 | <tr><td class="lineno" valign="top"></td><td class="lblock"> suffix-length <span class="delete">6</span></td><td> </td><td class="rblock"> suffix-length <span class="insert">5</span></td><td class="lineno" valign="top"></td></tr> |
---|
767 | <tr><td class="lineno" valign="top"></td><td class="lblock"> unsatisfied-range <span class="delete">12</span></td><td> </td><td class="rblock"> unsatisfied-range <span class="insert">11</span></td><td class="lineno" valign="top"></td></tr> |
---|
768 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
769 | <tr><td class="lineno" valign="top"></td><td class="left"> I</td><td> </td><td class="right"> I</td><td class="lineno" valign="top"></td></tr> |
---|
770 | <tr><td><a name="diff0050" /></td></tr> |
---|
771 | <tr><td class="lineno" valign="top"></td><td class="lblock"> If-Range header field <span class="delete">9</span></td><td> </td><td class="rblock"> If-Range header field <span class="insert">8</span></td><td class="lineno" valign="top"></td></tr> |
---|
772 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
773 | <tr><td class="lineno" valign="top"></td><td class="left"> M</td><td> </td><td class="right"> M</td><td class="lineno" valign="top"></td></tr> |
---|
774 | <tr><td class="lineno" valign="top"></td><td class="left"> Media Type</td><td> </td><td class="right"> Media Type</td><td class="lineno" valign="top"></td></tr> |
---|
775 | <tr><td><a name="diff0051" /></td></tr> |
---|
776 | <tr><td class="lineno" valign="top"></td><td class="lblock"> multipart/byteranges <span class="delete">17, 20</span></td><td> </td><td class="rblock"> multipart/byteranges <span class="insert">16, 19</span></td><td class="lineno" valign="top"></td></tr> |
---|
777 | <tr><td class="lineno" valign="top"></td><td class="lblock"> multipart/x-byteranges <span class="delete">20</span></td><td> </td><td class="rblock"> multipart/x-byteranges <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr> |
---|
778 | <tr><td class="lineno" valign="top"></td><td class="lblock"> multipart/byteranges Media Type <span class="delete">17, 20</span></td><td> </td><td class="rblock"> multipart/byteranges Media Type <span class="insert">16, 19</span></td><td class="lineno" valign="top"></td></tr> |
---|
779 | <tr><td class="lineno" valign="top"></td><td class="lblock"> multipart/x-byteranges Media Type <span class="delete">20</span></td><td> </td><td class="rblock"> multipart/x-byteranges Media Type <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr> |
---|
780 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
781 | <tr><td class="lineno" valign="top"></td><td class="left"> R</td><td> </td><td class="right"> R</td><td class="lineno" valign="top"></td></tr> |
---|
782 | <tr><td><a name="diff0052" /></td></tr> |
---|
783 | <tr><td class="lineno" valign="top"></td><td class="lblock"> Range header field <span class="delete">7</span></td><td> </td><td class="rblock"> Range header field <span class="insert">6</span></td><td class="lineno" valign="top"></td></tr> |
---|
784 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
785 | <tr><td class="lineno" valign="top"></td><td class="left">Authors' Addresses</td><td> </td><td class="right">Authors' Addresses</td><td class="lineno" valign="top"></td></tr> |
---|
786 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
787 | <tr><td class="lineno" valign="top"></td><td class="left"> Roy T. Fielding (editor)</td><td> </td><td class="right"> Roy T. Fielding (editor)</td><td class="lineno" valign="top"></td></tr> |
---|
788 | <tr><td class="lineno" valign="top"></td><td class="left"> Adobe Systems Incorporated</td><td> </td><td class="right"> Adobe Systems Incorporated</td><td class="lineno" valign="top"></td></tr> |
---|
789 | <tr><td class="lineno" valign="top"></td><td class="left"> 345 Park Ave</td><td> </td><td class="right"> 345 Park Ave</td><td class="lineno" valign="top"></td></tr> |
---|
790 | <tr><td class="lineno" valign="top"></td><td class="left"> San Jose, CA 95110</td><td> </td><td class="right"> San Jose, CA 95110</td><td class="lineno" valign="top"></td></tr> |
---|
791 | <tr><td class="lineno" valign="top"></td><td class="left"> USA</td><td> </td><td class="right"> USA</td><td class="lineno" valign="top"></td></tr> |
---|
792 | <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr> |
---|
793 | <tr><td class="lineno" valign="top"></td><td class="left"> EMail: fielding@gbiv.com</td><td> </td><td class="right"> EMail: fielding@gbiv.com</td><td class="lineno" valign="top"></td></tr> |
---|
794 | |
---|
795 | <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr> |
---|
796 | <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 52 change blocks. </a></th></tr> |
---|
797 | <tr class="stats"><td></td><th><i>155 lines changed or deleted</i></th><th><i> </i></th><th><i>135 lines changed or added</i></th><td></td></tr> |
---|
798 | <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.38. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr> |
---|
799 | </table> |
---|
800 | </body> |
---|
801 | </html> |
---|