Changeset 1559 for draft-ietf-httpbis
- Timestamp:
- 04/03/12 00:38:47 (9 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r1558 r1559 1057 1057 </p> 1058 1058 <p id="rfc.section.2.6.p.2">The version of an HTTP message is indicated by an HTTP-version field in the first line of the message. HTTP-version is case-sensitive.</p> 1059 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span> <a href="#http.version" class="smpl">HTTP-version</a> 1060 <a href="#http.version" class="smpl">HTTP-name</a> = %x48.54.54.50 ; "HTTP", case-sensitive1059 <div id="rfc.figure.u.6"></div><pre class="inline"><span id="rfc.iref.g.14"></span><span id="rfc.iref.g.15"></span> <a href="#http.version" class="smpl">HTTP-version</a> = <a href="#http.version" class="smpl">HTTP-name</a> "/" <a href="#core.rules" class="smpl">DIGIT</a> "." <a href="#core.rules" class="smpl">DIGIT</a> 1060 <a href="#http.version" class="smpl">HTTP-name</a> = %x48.54.54.50 ; "HTTP", case-sensitive 1061 1061 </pre><p id="rfc.section.2.6.p.4">The HTTP version number consists of two decimal digits separated by a "." (period or decimal point). The first digit ("major 1062 1062 version") indicates the HTTP messaging syntax, whereas the second digit ("minor version") indicates the highest minor version … … 1208 1208 the end of the header section, and an optional message body. 1209 1209 </p> 1210 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.25"></span> <a href="#http.message" class="smpl">HTTP-message</a> 1211 1212 1213 1210 <div id="rfc.figure.u.11"></div><pre class="inline"><span id="rfc.iref.g.25"></span> <a href="#http.message" class="smpl">HTTP-message</a> = <a href="#http.message" class="smpl">start-line</a> 1211 *( <a href="#header.fields" class="smpl">header-field</a> <a href="#core.rules" class="smpl">CRLF</a> ) 1212 <a href="#core.rules" class="smpl">CRLF</a> 1213 [ <a href="#message.body" class="smpl">message-body</a> ] 1214 1214 </pre><p id="rfc.section.3.p.3">The normal procedure for parsing an HTTP message is to read the start-line into a structure, read each header field into a 1215 1215 hash table by field name until the empty line, and then use the parsed data to determine if a message body is expected. If … … 1233 1233 or invalid request method) and clients are implemented to only expect a response. 1234 1234 </p> 1235 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.26"></span> <a href="#http.message" class="smpl">start-line</a> 1235 <div id="rfc.figure.u.12"></div><pre class="inline"><span id="rfc.iref.g.26"></span> <a href="#http.message" class="smpl">start-line</a> = <a href="#request.line" class="smpl">request-line</a> / <a href="#status.line" class="smpl">status-line</a> 1236 1236 </pre><p id="rfc.section.3.1.p.4">Implementations <em class="bcp14">MUST NOT</em> send whitespace between the start-line and the first header field. The presence of such whitespace in a request might be an 1237 1237 attempt to trick a server into ignoring that field or processing the line after it as a new request, either of which might … … 1415 1415 <p id="rfc.section.3.2.4.p.11"> The backslash octet ("\") can be used as a single-octet quoting mechanism within comment constructs:</p> 1416 1416 </div> 1417 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.51"></span> <a href="#rule.quoted-cpair" class="smpl">quoted-cpair</a> 1417 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.51"></span> <a href="#rule.quoted-cpair" class="smpl">quoted-cpair</a> = "\" ( <a href="#core.rules" class="smpl">HTAB</a> / <a href="#core.rules" class="smpl">SP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1418 1418 </pre><p id="rfc.section.3.2.4.p.13">Senders <em class="bcp14">SHOULD NOT</em> escape octets in comments that do not require escaping (i.e., other than the backslash octet "\" and the parentheses "(" and 1419 1419 ")"). … … 1756 1756 transfer-coding is a property of the message rather than a property of the representation that is being transferred. 1757 1757 </p> 1758 <div id="rfc.figure.u.47"></div><pre class="inline"><span id="rfc.iref.g.55"></span><span id="rfc.iref.g.56"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> 1759 1760 1761 1762 1763 <a href="#transfer.codings" class="smpl">transfer-extension</a> 1758 <div id="rfc.figure.u.47"></div><pre class="inline"><span id="rfc.iref.g.55"></span><span id="rfc.iref.g.56"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" ; <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 5.1</a> 1759 / "compress" ; <a href="#compress.coding" title="Compress Coding">Section 5.2.1</a> 1760 / "deflate" ; <a href="#deflate.coding" title="Deflate Coding">Section 5.2.2</a> 1761 / "gzip" ; <a href="#gzip.coding" title="Gzip Coding">Section 5.2.3</a> 1762 / <a href="#transfer.codings" class="smpl">transfer-extension</a> 1763 <a href="#transfer.codings" class="smpl">transfer-extension</a> = <a href="#rule.token.separators" class="smpl">token</a> *( <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#rule.parameter" class="smpl">transfer-parameter</a> ) 1764 1764 </pre><div id="rule.parameter"> 1765 1765 <p id="rfc.section.5.p.3"> Parameters are in the form of attribute/value pairs.</p> 1766 1766 </div> 1767 <div id="rfc.figure.u.48"></div><pre class="inline"><span id="rfc.iref.g.57"></span><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></span><span id="rfc.iref.g.61"></span> <a href="#rule.parameter" class="smpl">transfer-parameter</a> 1768 <a href="#rule.parameter" class="smpl">attribute</a> 1769 <a href="#rule.parameter" class="smpl">value</a> 1767 <div id="rfc.figure.u.48"></div><pre class="inline"><span id="rfc.iref.g.57"></span><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></span><span id="rfc.iref.g.61"></span> <a href="#rule.parameter" class="smpl">transfer-parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> <a href="#rule.whitespace" class="smpl">BWS</a> "=" <a href="#rule.whitespace" class="smpl">BWS</a> <a href="#rule.parameter" class="smpl">value</a> 1768 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#rule.token.separators" class="smpl">token</a> 1769 <a href="#rule.parameter" class="smpl">value</a> = <a href="#rule.token.separators" class="smpl">word</a> 1770 1770 </pre><p id="rfc.section.5.p.5">All transfer-coding values are case-insensitive. HTTP/1.1 uses transfer-coding values in the TE header field (<a href="#header.te" id="rfc.xref.header.te.1" title="TE">Section 5.4</a>) and in the Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 3.3.1</a>). 1771 1771 </p> … … 1787 1787 <a href="#chunked.encoding" class="smpl">last-chunk</a> = 1*("0") [ <a href="#chunked.encoding" class="smpl">chunk-ext</a> ] <a href="#core.rules" class="smpl">CRLF</a> 1788 1788 1789 <a href="#chunked.encoding" class="smpl">chunk-ext</a> = *( ";" <a href="#chunked.encoding" class="smpl">chunk-ext-name</a> 1790 [ "=" <a href="#chunked.encoding" class="smpl">chunk-ext-val</a> ] ) 1789 <a href="#chunked.encoding" class="smpl">chunk-ext</a> = *( ";" <a href="#chunked.encoding" class="smpl">chunk-ext-name</a> [ "=" <a href="#chunked.encoding" class="smpl">chunk-ext-val</a> ] ) 1791 1790 <a href="#chunked.encoding" class="smpl">chunk-ext-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1792 1791 <a href="#chunked.encoding" class="smpl">chunk-ext-val</a> = <a href="#rule.token.separators" class="smpl">token</a> / <a href="#chunked.encoding" class="smpl">quoted-str-nf</a> … … 2330 2329 server chooses to switch protocols. Servers can use it to indicate what protocols they are willing to switch to. 2331 2330 </p> 2332 <div id="rfc.figure.u.59"></div><pre class="inline"><span id="rfc.iref.g.83"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = 1#<a href="#header.upgrade" class="smpl">protocol</a>2333 2334 <a href="#header.upgrade" class="smpl">protocol</a> = <a href="#header.upgrade" class="smpl">protocol-name</a> ["/" <a href="#header.upgrade" class="smpl">protocol-version</a>]2335 <a href="#header.upgrade" class="smpl">protocol-name</a> 2336 <a href="#header.upgrade" class="smpl">protocol-version</a> 2331 <div id="rfc.figure.u.59"></div><pre class="inline"><span id="rfc.iref.g.83"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = 1#<a href="#header.upgrade" class="smpl">protocol</a> 2332 2333 <a href="#header.upgrade" class="smpl">protocol</a> = <a href="#header.upgrade" class="smpl">protocol-name</a> ["/" <a href="#header.upgrade" class="smpl">protocol-version</a>] 2334 <a href="#header.upgrade" class="smpl">protocol-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 2335 <a href="#header.upgrade" class="smpl">protocol-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 2337 2336 </pre><p id="rfc.section.8.3.p.3">For example,</p> 2338 2337 <div id="rfc.figure.u.60"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 -
draft-ietf-httpbis/latest/p1-messaging.xml
r1558 r1559 716 716 </t> 717 717 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-version"/><iref primary="true" item="Grammar" subitem="HTTP-name"/> 718 <x:ref>HTTP-version</x:ref> 719 <x:ref>HTTP-name</x:ref> = <x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence> ; "HTTP", case-sensitive718 <x:ref>HTTP-version</x:ref> = <x:ref>HTTP-name</x:ref> "/" <x:ref>DIGIT</x:ref> "." <x:ref>DIGIT</x:ref> 719 <x:ref>HTTP-name</x:ref> = <x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence> ; "HTTP", case-sensitive 720 720 </artwork></figure> 721 721 <t> … … 1045 1045 </t> 1046 1046 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-message"/> 1047 <x:ref>HTTP-message</x:ref> 1048 1049 1050 1047 <x:ref>HTTP-message</x:ref> = <x:ref>start-line</x:ref> 1048 *( <x:ref>header-field</x:ref> <x:ref>CRLF</x:ref> ) 1049 <x:ref>CRLF</x:ref> 1050 [ <x:ref>message-body</x:ref> ] 1051 1051 </artwork></figure> 1052 1052 <t> … … 1093 1093 </t> 1094 1094 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="start-line"/> 1095 <x:ref>start-line</x:ref> 1095 <x:ref>start-line</x:ref> = <x:ref>request-line</x:ref> / <x:ref>status-line</x:ref> 1096 1096 </artwork></figure> 1097 1097 <t> … … 1468 1468 </t> 1469 1469 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-cpair"/> 1470 <x:ref>quoted-cpair</x:ref> 1470 <x:ref>quoted-cpair</x:ref> = "\" ( <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> ) 1471 1471 </artwork></figure> 1472 1472 <t> … … 2183 2183 </t> 2184 2184 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="transfer-coding"/><iref primary="true" item="Grammar" subitem="transfer-extension"/> 2185 <x:ref>transfer-coding</x:ref> 2186 2187 2188 2189 2190 <x:ref>transfer-extension</x:ref> 2185 <x:ref>transfer-coding</x:ref> = "chunked" ; <xref target="chunked.encoding"/> 2186 / "compress" ; <xref target="compress.coding"/> 2187 / "deflate" ; <xref target="deflate.coding"/> 2188 / "gzip" ; <xref target="gzip.coding"/> 2189 / <x:ref>transfer-extension</x:ref> 2190 <x:ref>transfer-extension</x:ref> = <x:ref>token</x:ref> *( <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>transfer-parameter</x:ref> ) 2191 2191 </artwork></figure> 2192 2192 <t anchor="rule.parameter"> … … 2197 2197 </t> 2198 2198 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="transfer-parameter"/><iref primary="true" item="Grammar" subitem="attribute"/><iref primary="true" item="Grammar" subitem="value"/><iref primary="true" item="Grammar" subitem="date2"/><iref primary="true" item="Grammar" subitem="date3"/> 2199 <x:ref>transfer-parameter</x:ref> 2200 <x:ref>attribute</x:ref> 2201 <x:ref>value</x:ref> 2199 <x:ref>transfer-parameter</x:ref> = <x:ref>attribute</x:ref> <x:ref>BWS</x:ref> "=" <x:ref>BWS</x:ref> <x:ref>value</x:ref> 2200 <x:ref>attribute</x:ref> = <x:ref>token</x:ref> 2201 <x:ref>value</x:ref> = <x:ref>word</x:ref> 2202 2202 </artwork></figure> 2203 2203 <t> … … 2240 2240 <x:ref>last-chunk</x:ref> = 1*("0") [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref> 2241 2241 2242 <x:ref>chunk-ext</x:ref> = *( ";" <x:ref>chunk-ext-name</x:ref> 2243 [ "=" <x:ref>chunk-ext-val</x:ref> ] ) 2242 <x:ref>chunk-ext</x:ref> = *( ";" <x:ref>chunk-ext-name</x:ref> [ "=" <x:ref>chunk-ext-val</x:ref> ] ) 2244 2243 <x:ref>chunk-ext-name</x:ref> = <x:ref>token</x:ref> 2245 2244 <x:ref>chunk-ext-val</x:ref> = <x:ref>token</x:ref> / <x:ref>quoted-str-nf</x:ref> … … 3252 3251 </t> 3253 3252 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/> 3254 <x:ref>Upgrade</x:ref> = 1#<x:ref>protocol</x:ref>3255 3256 <x:ref>protocol</x:ref> = <x:ref>protocol-name</x:ref> ["/" <x:ref>protocol-version</x:ref>]3257 <x:ref>protocol-name</x:ref> 3258 <x:ref>protocol-version</x:ref> 3253 <x:ref>Upgrade</x:ref> = 1#<x:ref>protocol</x:ref> 3254 3255 <x:ref>protocol</x:ref> = <x:ref>protocol-name</x:ref> ["/" <x:ref>protocol-version</x:ref>] 3256 <x:ref>protocol-name</x:ref> = <x:ref>token</x:ref> 3257 <x:ref>protocol-version</x:ref> = <x:ref>token</x:ref> 3259 3258 </artwork></figure> 3260 3259 <t>
Note: See TracChangeset
for help on using the changeset viewer.