Changeset 1557
- Timestamp:
- 03/03/12 23:56:54 (10 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/extract-method-defs.xslt
r292 r1557 14 14 <ttcol>Safe</ttcol> 15 15 <ttcol>Reference</ttcol> 16 <xsl:apply-templates select="//section[iref/@item=' Methods']">17 <xsl:sort select="iref[@item=' Methods']/@subitem"/>16 <xsl:apply-templates select="//section[iref/@item='methods']"> 17 <xsl:sort select="iref[@item='methods']/@subitem"/> 18 18 </xsl:apply-templates> 19 19 </texttable> … … 75 75 <xsl:template match="section"> 76 76 77 <xsl:variable name="text" select="iref[@item=' Methods']/@subitem"/>77 <xsl:variable name="text" select="iref[@item='methods']/@subitem"/> 78 78 79 79 <xsl:variable name="safe" xmlns:p2="urn:ietf:id:draft-ietf-httpbis-p2-semantics#"> -
draft-ietf-httpbis/latest/httpbis.abnf
r1546 r1557 9 9 Accept-Ranges = acceptable-ranges 10 10 Age = delta-seconds 11 Allow = [ ( "," / Method ) *( OWS "," [ OWS Method ] ) ]11 Allow = [ ( "," / method ) *( OWS "," [ OWS method ] ) ] 12 12 Authorization = credentials 13 13 BWS = OWS 14 14 Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS cache-directive ] ) 15 Chunked-Body = *chunk last-chunk trailer-part CRLF16 15 Connection = *( "," OWS ) connection-token *( OWS "," [ OWS connection-token ] ) 17 16 Content-Encoding = *( "," OWS ) content-coding *( OWS "," [ OWS content-coding ] ) … … 28 27 GMT = %x47.4D.54 ; GMT 29 28 30 HTTP-Prot-Name = %x48.54.54.50 ; HTTP31 32 HTTP-Version = HTTP-Prot-Name "/" DIGIT "." DIGIT33 29 HTTP-date = rfc1123-date / obs-date 34 30 HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ] 31 HTTP-name = %x48.54.54.50 ; HTTP 32 33 HTTP-version = HTTP-name "/" DIGIT "." DIGIT 35 34 Host = uri-host [ ":" port ] 36 35 If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS entity-tag ] ) ) … … 43 42 MIME-Version = 1*DIGIT "." 1*DIGIT 44 43 Max-Forwards = 1*DIGIT 45 Method = token46 44 OWS = *( SP / HTAB ) 47 45 Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS pragma-directive ] ) … … 50 48 RWS = 1*( SP / HTAB ) 51 49 Range = byte-ranges-specifier / other-ranges-specifier 52 Reason-Phrase = *( HTAB / SP / VCHAR / obs-text )53 50 Referer = absolute-URI / partial-URI 54 Request-Line = Method SP request-target SP HTTP-Version CRLF55 51 Retry-After = HTTP-date / delta-seconds 56 52 Server = product *( RWS ( product / comment ) ) 57 Status-Code = 3DIGIT58 Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF59 53 TE = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ] 60 54 Trailer = *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) … … 95 89 chunk-ext-val = token / quoted-str-nf 96 90 chunk-size = 1*HEXDIG 91 chunked-body = *chunk last-chunk trailer-part CRLF 97 92 codings = content-coding / "identity" / "*" 98 93 comment = "(" *( ctext / quoted-cpair / comment ) ")" … … 150 145 media-type = type "/" subtype *( OWS ";" OWS parameter ) 151 146 message-body = *OCTET 147 method = token 152 148 minute = 2DIGIT 153 149 month = %x4A.61.6E ; Jan … … 198 194 qvalue = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 199 195 range-unit = bytes-unit / other-range-unit 196 reason-phrase = *( HTAB / SP / VCHAR / obs-text ) 200 197 received-by = ( uri-host [ ":" port ] ) / pseudonym 201 198 received-protocol = [ protocol-name "/" ] protocol-version 202 199 relative-part = <relative-part, defined in [RFC3986], Section 4.2> 200 request-line = method SP request-target SP HTTP-version CRLF 203 201 request-target = "*" / absolute-URI / ( path-absolute [ "?" query ] ) / authority 204 202 rfc1123-date = day-name "," SP date1 SP time-of-day SP GMT … … 206 204 second = 2DIGIT 207 205 special = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / DQUOTE / "/" / "[" / "]" / "?" / "=" / "{" / "}" 208 start-line = Request-Line / Status-Line 206 start-line = request-line / status-line 207 status-code = 3DIGIT 208 status-line = HTTP-version SP status-code SP reason-phrase CRLF 209 209 subtype = token 210 210 suffix-byte-range-spec = "-" suffix-length … … 241 241 ; Authorization defined but not used 242 242 ; Cache-Control defined but not used 243 ; Chunked-Body defined but not used244 243 ; Connection defined but not used 245 244 ; Content-Encoding defined but not used … … 281 280 ; WWW-Authenticate defined but not used 282 281 ; Warning defined but not used 282 ; chunked-body defined but not used 283 283 ; http-URI defined but not used 284 284 ; https-URI defined but not used -
draft-ietf-httpbis/latest/p1-messaging.html
r1556 r1557 668 668 <li>3. <a href="#http.message">Message Format</a><ul> 669 669 <li>3.1 <a href="#start.line">Start Line</a><ul> 670 <li>3.1.1 <a href="#request.line">Request -Line</a><ul>670 <li>3.1.1 <a href="#request.line">Request Line</a><ul> 671 671 <li>3.1.1.1 <a href="#method">Method</a></li> 672 672 <li>3.1.1.2 <a href="#request-target">request-target</a></li> 673 673 </ul> 674 674 </li> 675 <li>3.1.2 <a href="#status.line">Response Status -Line</a><ul>675 <li>3.1.2 <a href="#status.line">Response Status Line</a><ul> 676 676 <li>3.1.2.1 <a href="#status.code">Status Code</a></li> 677 677 <li>3.1.2.2 <a href="#reason.phrase">Reason Phrase</a></li> … … 919 919 <div id="rfc.iref.r.2"></div> 920 920 <div id="rfc.iref.r.3"></div> 921 <p id="rfc.section.2.1.p.6">A client sends an HTTP request to the server in the form of a <dfn>request</dfn> message, beginning with a request-line that includes a method, URI, and protocol version (<a href="#request.line" title="Request -Line">Section 3.1.1</a>), followed by MIME-like header fields containing request modifiers, client information, and payload metadata (<a href="#header.fields" title="Header Fields">Section 3.2</a>), an empty line to indicate the end of the header section, and finally a message body containing the payload body (if any, <a href="#message.body" title="Message Body">Section 3.3</a>).921 <p id="rfc.section.2.1.p.6">A client sends an HTTP request to the server in the form of a <dfn>request</dfn> message, beginning with a request-line that includes a method, URI, and protocol version (<a href="#request.line" title="Request Line">Section 3.1.1</a>), followed by MIME-like header fields containing request modifiers, client information, and payload metadata (<a href="#header.fields" title="Header Fields">Section 3.2</a>), an empty line to indicate the end of the header section, and finally a message body containing the payload body (if any, <a href="#message.body" title="Message Body">Section 3.3</a>). 922 922 </p> 923 923 <p id="rfc.section.2.1.p.7">A server responds to the client's request by sending one or more HTTP <dfn>response</dfn> messages, each beginning with a status line that includes the protocol version, a success or error code, and textual reason 924 phrase (<a href="#status.line" title="Response Status -Line">Section 3.1.2</a>), possibly followed by MIME-like header fields containing server information, resource metadata, and payload metadata (<a href="#header.fields" title="Header Fields">Section 3.2</a>), an empty line to indicate the end of the header section, and finally a message body containing the payload body (if any, <a href="#message.body" title="Message Body">Section 3.3</a>).924 phrase (<a href="#status.line" title="Response Status Line">Section 3.1.2</a>), possibly followed by MIME-like header fields containing server information, resource metadata, and payload metadata (<a href="#header.fields" title="Header Fields">Section 3.2</a>), an empty line to indicate the end of the header section, and finally a message body containing the payload body (if any, <a href="#message.body" title="Message Body">Section 3.3</a>). 925 925 </p> 926 926 <p id="rfc.section.2.1.p.8">The following example illustrates a typical message exchange for a GET request on the URI "http://www.example.com/hello.txt":</p> … … 1056 1056 corresponding specification of HTTP. 1057 1057 </p> 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> = <a href="#http.version" class="smpl">HTTP-Prot-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- Prot-Name</a> = %x48.54.54.50 ; "HTTP", case-sensitive1058 <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> = <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 … … 1079 1079 by a proxy <em class="bcp14">MUST</em> be forwarded downstream unless the header field's field-name is listed in the message's Connection header-field (see <a href="#header.connection" id="rfc.xref.header.connection.2" title="Connection">Section 8.1</a>). These requirements allow HTTP's functionality to be enhanced without requiring prior update of deployed intermediaries. 1080 1080 </p> 1081 <p id="rfc.section.2.6.p.8">Intermediaries that process HTTP messages (i.e., all intermediaries other than those acting as tunnels) <em class="bcp14">MUST</em> send their own HTTP- Version in forwarded messages. In other words, they <em class="bcp14">MUST NOT</em> blindly forward the first line of an HTTP message without ensuring that the protocol version in that message matches a version1081 <p id="rfc.section.2.6.p.8">Intermediaries that process HTTP messages (i.e., all intermediaries other than those acting as tunnels) <em class="bcp14">MUST</em> send their own HTTP-version in forwarded messages. In other words, they <em class="bcp14">MUST NOT</em> blindly forward the first line of an HTTP message without ensuring that the protocol version in that message matches a version 1082 1082 to which that intermediary is conformant for both the receiving and sending of messages. Forwarding an HTTP message without 1083 rewriting the HTTP- Version might result in communication errors when downstream recipients use the message sender's version1083 rewriting the HTTP-version might result in communication errors when downstream recipients use the message sender's version 1084 1084 to determine what features are safe to use for later communication with that sender. 1085 1085 </p> … … 1097 1097 <p id="rfc.section.2.6.p.12">An HTTP server <em class="bcp14">MAY</em> send an HTTP/1.0 response to an HTTP/1.0 request if it is known or suspected that the client incorrectly implements the HTTP 1098 1098 specification and is incapable of correctly processing later version responses, such as when a client fails to parse the version 1099 number correctly or when an intermediary is known to blindly forward the HTTP- Version even when it doesn't conform to the1099 number correctly or when an intermediary is known to blindly forward the HTTP-version even when it doesn't conform to the 1100 1100 given minor version of the protocol. Such protocol downgrades <em class="bcp14">SHOULD NOT</em> be performed unless triggered by specific client attributes, such as when one or more of the request header fields (e.g., 1101 1101 User-Agent) uniquely match the values sent by a client known to be in error. … … 1228 1228 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="start.line" href="#start.line">Start Line</a></h2> 1229 1229 <p id="rfc.section.3.1.p.1">An HTTP message can either be a request from client to server or a response from server to client. Syntactically, the two 1230 types of message differ only in the start-line, which is either a Request-Line (for requests) or a Status-Line (for responses),1230 types of message differ only in the start-line, which is either a request-line (for requests) or a status-line (for responses), 1231 1231 and in the algorithm for determining the length of the message body (<a href="#message.body" title="Message Body">Section 3.3</a>). In theory, a client could receive requests and a server could receive responses, distinguishing them by their different 1232 1232 start-line formats, but in practice servers are implemented to only expect a request (a response is interpreted as an unknown 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> = <a href="#request.line" class="smpl"> Request-Line</a> / <a href="#status.line" class="smpl">Status-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 … … 1239 1239 Likewise, the presence of such whitespace in a response might be ignored by some clients or cause others to cease parsing. 1240 1240 </p> 1241 <h3 id="rfc.section.3.1.1"><a href="#rfc.section.3.1.1">3.1.1</a> <a id="request.line" href="#request.line">Request -Line</a></h3>1242 <p id="rfc.section.3.1.1.p.1"> The Request-Line begins with a method token, followed by a single space (SP), the request-target, another single space (SP),1241 <h3 id="rfc.section.3.1.1"><a href="#rfc.section.3.1.1">3.1.1</a> <a id="request.line" href="#request.line">Request Line</a></h3> 1242 <p id="rfc.section.3.1.1.p.1">A request-line begins with a method token, followed by a single space (SP), the request-target, another single space (SP), 1243 1243 the protocol version, and ending with CRLF. 1244 1244 </p> 1245 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.27"></span> <a href="#request.line" class="smpl"> Request-Line</a> = <a href="#method" class="smpl">Method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-target" class="smpl">request-target</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">CRLF</a>1245 <div id="rfc.figure.u.13"></div><pre class="inline"><span id="rfc.iref.g.27"></span> <a href="#request.line" class="smpl">request-line</a> = <a href="#method" class="smpl">method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-target" class="smpl">request-target</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-version</a> <a href="#core.rules" class="smpl">CRLF</a> 1246 1246 </pre><h4 id="rfc.section.3.1.1.1"><a href="#rfc.section.3.1.1.1">3.1.1.1</a> <a id="method" href="#method">Method</a></h4> 1247 <p id="rfc.section.3.1.1.1.p.1">The Method token indicates the request method to be performed on the target resource. The request method is case-sensitive.</p> 1248 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.28"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1249 </pre><p id="rfc.section.3.1.1.1.p.3">See <a href="p2-semantics.html#method" title="Method">Section 2</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a> for further information, such as the list of methods defined by this specification, the IANA registry, and considerations 1250 for new methods. 1247 <p id="rfc.section.3.1.1.1.p.1">The method token indicates the request method to be performed on the target resource. The request method is case-sensitive.</p> 1248 <div id="rfc.figure.u.14"></div><pre class="inline"><span id="rfc.iref.g.28"></span> <a href="#method" class="smpl">method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1249 </pre><p id="rfc.section.3.1.1.1.p.3">The methods defined by this specification can be found in <a href="p2-semantics.html#method" title="Method">Section 2</a> of <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, along with information regarding the HTTP method registry and considerations for defining new methods. 1251 1250 </p> 1252 1251 <h4 id="rfc.section.3.1.1.2"><a href="#rfc.section.3.1.1.2">3.1.1.2</a> <a id="request-target" href="#request-target">request-target</a></h4> … … 1267 1266 </p> 1268 1267 </div> 1269 <h3 id="rfc.section.3.1.2"><a href="#rfc.section.3.1.2">3.1.2</a> <a id="status.line" href="#status.line">Response Status -Line</a></h3>1270 <p id="rfc.section.3.1.2.p.1">The first line of a Response message is the Status-Line, consisting of the protocol version, a space (SP), the status code,1268 <h3 id="rfc.section.3.1.2"><a href="#rfc.section.3.1.2">3.1.2</a> <a id="status.line" href="#status.line">Response Status Line</a></h3> 1269 <p id="rfc.section.3.1.2.p.1">The first line of a response message is the status-line, consisting of the protocol version, a space (SP), the status code, 1271 1270 another space, a possibly-empty textual phrase describing the status code, and ending with CRLF. 1272 1271 </p> 1273 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.30"></span> <a href="#status.line" class="smpl"> Status-Line</a> = <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code" class="smpl">Status-Code</a> <a href="#core.rules" class="smpl">SP</a> <a href="#reason.phrase" class="smpl">Reason-Phrase</a> <a href="#core.rules" class="smpl">CRLF</a>1272 <div id="rfc.figure.u.16"></div><pre class="inline"><span id="rfc.iref.g.30"></span> <a href="#status.line" class="smpl">status-line</a> = <a href="#http.version" class="smpl">HTTP-version</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code" class="smpl">status-code</a> <a href="#core.rules" class="smpl">SP</a> <a href="#reason.phrase" class="smpl">reason-phrase</a> <a href="#core.rules" class="smpl">CRLF</a> 1274 1273 </pre><h4 id="rfc.section.3.1.2.1"><a href="#rfc.section.3.1.2.1">3.1.2.1</a> <a id="status.code" href="#status.code">Status Code</a></h4> 1275 <p id="rfc.section.3.1.2.1.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. See <a href="p2-semantics.html#status.code.and.reason.phrase" title="Status Code and Reason Phrase">Section 4</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a> for further information, such as the list of status codes defined by this specification, the IANA registry, and considerations1274 <p id="rfc.section.3.1.2.1.p.1">The status-code element is a 3-digit integer result code of the attempt to understand and satisfy the request. See <a href="p2-semantics.html#status.code.and.reason.phrase" title="Status Code and Reason Phrase">Section 4</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a> for further information, such as the list of status codes defined by this specification, the IANA registry, and considerations 1276 1275 for new status codes. 1277 1276 </p> 1278 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.31"></span> <a href="#status.code" class="smpl"> Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a>1277 <div id="rfc.figure.u.17"></div><pre class="inline"><span id="rfc.iref.g.31"></span> <a href="#status.code" class="smpl">status-code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a> 1279 1278 </pre><h4 id="rfc.section.3.1.2.2"><a href="#rfc.section.3.1.2.2">3.1.2.2</a> <a id="reason.phrase" href="#reason.phrase">Reason Phrase</a></h4> 1280 1279 <p id="rfc.section.3.1.2.2.p.1">The Reason Phrase exists for the sole purpose of providing a textual description associated with the numeric status code, … … 1282 1281 client <em class="bcp14">SHOULD</em> ignore the content of the Reason Phrase. 1283 1282 </p> 1284 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.32"></span> <a href="#reason.phrase" class="smpl"> Reason-Phrase</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> )1283 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.32"></span> <a href="#reason.phrase" class="smpl">reason-phrase</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> ) 1285 1284 </pre><h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a> <a id="header.fields" href="#header.fields">Header Fields</a></h2> 1286 1285 <p id="rfc.section.3.2.p.1">Each HTTP header field consists of a case-insensitive field name followed by a colon (":"), optional whitespace, and the field … … 1616 1615 the client <em class="bcp14">MUST</em> include the terminating CRLF octets as part of the message body length. 1617 1616 </p> 1618 <p id="rfc.section.3.5.p.2">In the interest of robustness, servers <em class="bcp14">SHOULD</em> ignore at least one empty line received where a Request-Line is expected. In other words, if the server is reading the protocol1617 <p id="rfc.section.3.5.p.2">In the interest of robustness, servers <em class="bcp14">SHOULD</em> ignore at least one empty line received where a request-line is expected. In other words, if the server is reading the protocol 1619 1618 stream at the beginning of a message and receives a CRLF first, it <em class="bcp14">SHOULD</em> ignore the CRLF. Likewise, although the line terminator for the start-line and header fields is the sequence CRLF, we recommend 1620 1619 that recipients recognize a single LF as a line terminator and ignore any CR. … … 1653 1652 cache, and then return the response. Note that the proxy <em class="bcp14">MAY</em> forward the request on to another proxy or directly to the server specified by the absolute-URI. In order to avoid request 1654 1653 loops, a proxy that forwards requests to other proxies <em class="bcp14">MUST</em> be able to recognize and exclude all of its own server names, including any aliases, local variations, or literal IP addresses. 1655 An example Request-Line would be:1654 An example request-line would be: 1656 1655 </p> 1657 1656 </div> … … 1724 1723 <li>the authority component, as specified in the Host header field (<a href="#header.host" id="rfc.xref.header.host.1" title="Host">Section 8.2</a>), and 1725 1724 </li> 1726 <li>the request-target obtained from the Request-Line, unless the request-target is just the asterisk "*".</li>1725 <li>the request-target obtained from the request-line, unless the request-target is just the asterisk "*".</li> 1727 1726 </ul> 1728 1727 <p id="rfc.section.4.3.p.5">If the request-target uses the origin form or the asterisk form, and the Host header field is not present, then the effective … … 1778 1777 for the recipient to verify that it has received the full message. 1779 1778 </p> 1780 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.62"></span><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span><span id="rfc.iref.g.67"></span><span id="rfc.iref.g.68"></span><span id="rfc.iref.g.69"></span><span id="rfc.iref.g.70"></span><span id="rfc.iref.g.71"></span><span id="rfc.iref.g.72"></span> <a href="#chunked.encoding" class="smpl"> Chunked-Body</a> = *<a href="#chunked.encoding" class="smpl">chunk</a>1779 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.62"></span><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span><span id="rfc.iref.g.67"></span><span id="rfc.iref.g.68"></span><span id="rfc.iref.g.69"></span><span id="rfc.iref.g.70"></span><span id="rfc.iref.g.71"></span><span id="rfc.iref.g.72"></span> <a href="#chunked.encoding" class="smpl">chunked-body</a> = *<a href="#chunked.encoding" class="smpl">chunk</a> 1781 1780 <a href="#chunked.encoding" class="smpl">last-chunk</a> 1782 1781 <a href="#chunked.encoding" class="smpl">trailer-part</a> … … 2300 2299 <p id="rfc.section.8.2.p.1">The "Host" header field in a request provides the host and port information from the target resource's URI, enabling the origin 2301 2300 server to distinguish between resources while servicing requests for multiple host names on a single IP address. Since the 2302 Host field-value is critical information for handling a request, it <em class="bcp14">SHOULD</em> be sent as the first header field following the Request-Line.2301 Host field-value is critical information for handling a request, it <em class="bcp14">SHOULD</em> be sent as the first header field following the request-line. 2303 2302 </p> 2304 2303 <div id="rfc.figure.u.57"></div><pre class="inline"><span id="rfc.iref.g.82"></span> <a href="#header.host" class="smpl">Host</a> = <a href="#uri" class="smpl">uri-host</a> [ ":" <a href="#uri" class="smpl">port</a> ] ; <a href="#http.uri" title="http URI scheme">Section 2.7.1</a> … … 2553 2552 <dl> 2554 2553 <dt>version:</dt> 2555 <dd>The HTTP- Version number of the enclosed message (e.g., "1.1"). If not present, the version can be determined from the first2554 <dd>The HTTP-version number of the enclosed message (e.g., "1.1"). If not present, the version can be determined from the first 2556 2555 line of the body. 2557 2556 </dd> … … 2606 2605 <dl> 2607 2606 <dt>version:</dt> 2608 <dd>The HTTP- Version number of the enclosed messages (e.g., "1.1"). If not present, the version can be determined from the first2607 <dd>The HTTP-version number of the enclosed messages (e.g., "1.1"). If not present, the version can be determined from the first 2609 2608 line of the body. 2610 2609 </dd> … … 3074 3073 where specifically defined in the ABNF. (<a href="#whitespace" title="Whitespace">Section 3.2.1</a>) 3075 3074 </p> 3076 <p id="rfc.section.A.2.p.3">Clarify that the string "HTTP" in the HTTP- Version ABFN production is case sensitive. Restrict the version numbers to be single3075 <p id="rfc.section.A.2.p.3">Clarify that the string "HTTP" in the HTTP-version ABFN production is case sensitive. Restrict the version numbers to be single 3077 3076 digits due to the fact that implementations are known to handle multi-digit version numbers incorrectly. (<a href="#http.version" title="Protocol Versioning">Section 2.6</a>) 3078 3077 </p> … … 3107 3106 <div id="rfc.figure.u.65"></div> <pre class="inline"><a href="#rule.whitespace" class="smpl">BWS</a> = OWS 3108 3107 3109 <a href="#chunked.encoding" class="smpl">Chunked-Body</a> = *chunk last-chunk trailer-part CRLF3110 3108 <a href="#header.connection" class="smpl">Connection</a> = *( "," OWS ) connection-token *( OWS "," [ OWS 3111 3109 connection-token ] ) 3112 3110 <a href="#header.content-length" class="smpl">Content-Length</a> = 1*DIGIT 3113 3111 3114 <a href="#http.version" class="smpl">HTTP-Prot-Name</a> = %x48.54.54.50 ; HTTP3115 <a href="#http.version" class="smpl">HTTP-Version</a> = HTTP-Prot-Name "/" DIGIT "." DIGIT3116 3112 <a href="#http.message" class="smpl">HTTP-message</a> = start-line *( header-field CRLF ) CRLF [ message-body 3117 3113 ] 3114 <a href="#http.version" class="smpl">HTTP-name</a> = %x48.54.54.50 ; HTTP 3115 <a href="#http.version" class="smpl">HTTP-version</a> = HTTP-name "/" DIGIT "." DIGIT 3118 3116 <a href="#header.host" class="smpl">Host</a> = uri-host [ ":" port ] 3119 3117 3120 <a href="#method" class="smpl">Method</a> = token3121 3122 3118 <a href="#rule.whitespace" class="smpl">OWS</a> = *( SP / HTAB ) 3123 3119 3124 3120 <a href="#rule.whitespace" class="smpl">RWS</a> = 1*( SP / HTAB ) 3125 <a href="#reason.phrase" class="smpl">Reason-Phrase</a> = *( HTAB / SP / VCHAR / obs-text )3126 <a href="#request.line" class="smpl">Request-Line</a> = Method SP request-target SP HTTP-Version CRLF3127 3128 <a href="#status.code" class="smpl">Status-Code</a> = 3DIGIT3129 <a href="#status.line" class="smpl">Status-Line</a> = HTTP-Version SP Status-Code SP Reason-Phrase CRLF3130 3121 3131 3122 <a href="#header.te" class="smpl">TE</a> = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ] … … 3151 3142 <a href="#chunked.encoding" class="smpl">chunk-ext-val</a> = token / quoted-str-nf 3152 3143 <a href="#chunked.encoding" class="smpl">chunk-size</a> = 1*HEXDIG 3144 <a href="#chunked.encoding" class="smpl">chunked-body</a> = *chunk last-chunk trailer-part CRLF 3153 3145 <a href="#rule.comment" class="smpl">comment</a> = "(" *( ctext / quoted-cpair / comment ) ")" 3154 3146 <a href="#header.connection" class="smpl">connection-token</a> = token … … 3169 3161 3170 3162 <a href="#message.body" class="smpl">message-body</a> = *OCTET 3163 <a href="#method" class="smpl">method</a> = token 3171 3164 3172 3165 <a href="#header.fields" class="smpl">obs-fold</a> = CRLF ( SP / HTAB ) … … 3195 3188 <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 3196 3189 3190 <a href="#reason.phrase" class="smpl">reason-phrase</a> = *( HTAB / SP / VCHAR / obs-text ) 3197 3191 <a href="#header.via" class="smpl">received-by</a> = ( uri-host [ ":" port ] ) / pseudonym 3198 3192 <a href="#header.via" class="smpl">received-protocol</a> = [ protocol-name "/" ] protocol-version 3199 3193 <a href="#uri" class="smpl">relative-part</a> = <relative-part, defined in [RFC3986], Section 4.2> 3194 <a href="#request.line" class="smpl">request-line</a> = method SP request-target SP HTTP-version CRLF 3200 3195 <a href="#request-target" class="smpl">request-target</a> = "*" / absolute-URI / ( path-absolute [ "?" query ] ) 3201 3196 / authority … … 3203 3198 <a href="#rule.token.separators" class="smpl">special</a> = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / 3204 3199 DQUOTE / "/" / "[" / "]" / "?" / "=" / "{" / "}" 3205 <a href="#http.message" class="smpl">start-line</a> = Request-Line / Status-Line 3200 <a href="#http.message" class="smpl">start-line</a> = request-line / status-line 3201 <a href="#status.code" class="smpl">status-code</a> = 3DIGIT 3202 <a href="#status.line" class="smpl">status-line</a> = HTTP-version SP status-code SP reason-phrase CRLF 3206 3203 3207 3204 <a href="#header.te" class="smpl">t-codings</a> = "trailers" / ( transfer-extension [ te-params ] ) … … 3223 3220 <a href="#rule.token.separators" class="smpl">word</a> = token / quoted-string 3224 3221 </pre> <div id="rfc.figure.u.66"></div> 3225 <p>ABNF diagnostics:</p><pre class="inline">; Chunked-Body defined but not used 3226 ; Connection defined but not used 3222 <p>ABNF diagnostics:</p><pre class="inline">; Connection defined but not used 3227 3223 ; Content-Length defined but not used 3228 3224 ; HTTP-message defined but not used … … 3234 3230 ; Upgrade defined but not used 3235 3231 ; Via defined but not used 3232 ; chunked-body defined but not used 3236 3233 ; http-URI defined but not used 3237 3234 ; https-URI defined but not used … … 3336 3333 </p> 3337 3334 <ul> 3338 <li>Replace string literals when the string really is case-sensitive (HTTP- Version).</li>3335 <li>Replace string literals when the string really is case-sensitive (HTTP-version).</li> 3339 3336 </ul> 3340 3337 <h2 id="rfc.section.C.5"><a href="#rfc.section.C.5">C.5</a> <a id="changes.since.03" href="#changes.since.03">Since draft-ietf-httpbis-p1-messaging-03</a></h2> … … 3392 3389 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/83">http://tools.ietf.org/wg/httpbis/trac/ticket/83</a>>: "OPTIONS * and proxies" 3393 3390 </li> 3394 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/94">http://tools.ietf.org/wg/httpbis/trac/ticket/94</a>>: " Reason-Phrase BNF"3391 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/94">http://tools.ietf.org/wg/httpbis/trac/ticket/94</a>>: "reason-phrase BNF" 3395 3392 </li> 3396 3393 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/111">http://tools.ietf.org/wg/httpbis/trac/ticket/111</a>>: "Use of TEXT" … … 3561 3558 <p id="rfc.section.C.16.p.1">Closed issues: </p> 3562 3559 <ul> 3563 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/273">http://tools.ietf.org/wg/httpbis/trac/ticket/273</a>>: "HTTP- Version should be redefined as fixed length pair of DIGIT . DIGIT"3560 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/273">http://tools.ietf.org/wg/httpbis/trac/ticket/273</a>>: "HTTP-version should be redefined as fixed length pair of DIGIT . DIGIT" 3564 3561 </li> 3565 3562 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/282">http://tools.ietf.org/wg/httpbis/trac/ticket/282</a>>: "Recommend minimum sizes for protocol elements" … … 3681 3678 <li><tt>chunk-ext-val</tt> <a href="#rfc.iref.g.68"><b>5.1</b></a></li> 3682 3679 <li><tt>chunk-size</tt> <a href="#rfc.iref.g.64"><b>5.1</b></a></li> 3683 <li><tt> Chunked-Body</tt> <a href="#rfc.iref.g.62"><b>5.1</b></a></li>3680 <li><tt>chunked-body</tt> <a href="#rfc.iref.g.62"><b>5.1</b></a></li> 3684 3681 <li><tt>comment</tt> <a href="#rfc.iref.g.49"><b>3.2.4</b></a></li> 3685 3682 <li><tt>Connection</tt> <a href="#rfc.iref.g.80"><b>8.1</b></a></li> … … 3702 3699 <li>HTAB <a href="#rfc.iref.g.8"><b>1.2</b></a></li> 3703 3700 <li><tt>HTTP-message</tt> <a href="#rfc.iref.g.25"><b>3</b></a></li> 3704 <li><tt>HTTP- Prot-Name</tt> <a href="#rfc.iref.g.15"><b>2.6</b></a></li>3701 <li><tt>HTTP-name</tt> <a href="#rfc.iref.g.15"><b>2.6</b></a></li> 3705 3702 <li><tt>http-URI</tt> <a href="#rfc.iref.g.23"><b>2.7.1</b></a></li> 3706 <li><tt>HTTP- Version</tt> <a href="#rfc.iref.g.14"><b>2.6</b></a></li>3703 <li><tt>HTTP-version</tt> <a href="#rfc.iref.g.14"><b>2.6</b></a></li> 3707 3704 <li><tt>https-URI</tt> <a href="#rfc.iref.g.24"><b>2.7.2</b></a></li> 3708 3705 <li><tt>last-chunk</tt> <a href="#rfc.iref.g.65"><b>5.1</b></a></li> 3709 3706 <li>LF <a href="#rfc.iref.g.9"><b>1.2</b></a></li> 3710 3707 <li><tt>message-body</tt> <a href="#rfc.iref.g.52"><b>3.3</b></a></li> 3711 <li><tt> Method</tt> <a href="#rfc.iref.g.28"><b>3.1.1.1</b></a></li>3708 <li><tt>method</tt> <a href="#rfc.iref.g.28"><b>3.1.1.1</b></a></li> 3712 3709 <li><tt>obs-fold</tt> <a href="#rfc.iref.g.37"><b>3.2</b></a></li> 3713 3710 <li><tt>obs-text</tt> <a href="#rfc.iref.g.47"><b>3.2.4</b></a></li> … … 3727 3724 <li><tt>quoted-string</tt> <a href="#rfc.iref.g.45"><b>3.2.4</b></a></li> 3728 3725 <li><tt>qvalue</tt> <a href="#rfc.iref.g.78"><b>5.4.1</b></a></li> 3729 <li><tt> Reason-Phrase</tt> <a href="#rfc.iref.g.32"><b>3.1.2.2</b></a></li>3726 <li><tt>reason-phrase</tt> <a href="#rfc.iref.g.32"><b>3.1.2.2</b></a></li> 3730 3727 <li><tt>received-by</tt> <a href="#rfc.iref.g.88"><b>8.4</b></a></li> 3731 3728 <li><tt>received-protocol</tt> <a href="#rfc.iref.g.85"><b>8.4</b></a></li> 3732 <li><tt> Request-Line</tt> <a href="#rfc.iref.g.27"><b>3.1.1</b></a></li>3729 <li><tt>request-line</tt> <a href="#rfc.iref.g.27"><b>3.1.1</b></a></li> 3733 3730 <li><tt>request-target</tt> <a href="#rfc.iref.g.29"><b>3.1.1.2</b></a></li> 3734 3731 <li><tt>RWS</tt> <a href="#rfc.iref.g.39"><b>3.2.1</b></a></li> … … 3736 3733 <li><tt>special</tt> <a href="#rfc.iref.g.44"><b>3.2.4</b></a></li> 3737 3734 <li><tt>start-line</tt> <a href="#rfc.iref.g.26"><b>3.1</b></a></li> 3738 <li><tt> Status-Code</tt> <a href="#rfc.iref.g.31"><b>3.1.2.1</b></a></li>3739 <li><tt> Status-Line</tt> <a href="#rfc.iref.g.30"><b>3.1.2</b></a></li>3735 <li><tt>status-code</tt> <a href="#rfc.iref.g.31"><b>3.1.2.1</b></a></li> 3736 <li><tt>status-line</tt> <a href="#rfc.iref.g.30"><b>3.1.2</b></a></li> 3740 3737 <li><tt>t-codings</tt> <a href="#rfc.iref.g.75"><b>5.4</b></a></li> 3741 3738 <li><tt>tchar</tt> <a href="#rfc.iref.g.43"><b>3.2.4</b></a></li> -
draft-ietf-httpbis/latest/p1-messaging.xml
r1556 r1557 702 702 703 703 <section title="Protocol Versioning" anchor="http.version"> 704 <x:anchor-alias value="HTTP- Version"/>705 <x:anchor-alias value="HTTP- Prot-Name"/>704 <x:anchor-alias value="HTTP-version"/> 705 <x:anchor-alias value="HTTP-name"/> 706 706 <t> 707 707 HTTP uses a "<major>.<minor>" numbering scheme to indicate … … 712 712 </t> 713 713 <t> 714 The version of an HTTP message is indicated by an HTTP- Version field715 in the first line of the message. HTTP- Version is case-sensitive.716 </t> 717 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP- Version"/><iref primary="true" item="Grammar" subitem="HTTP-Prot-Name"/>718 <x:ref>HTTP- Version</x:ref> = <x:ref>HTTP-Prot-Name</x:ref> "/" <x:ref>DIGIT</x:ref> "." <x:ref>DIGIT</x:ref>719 <x:ref>HTTP- Prot-Name</x:ref> = <x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence> ; "HTTP", case-sensitive714 The version of an HTTP message is indicated by an HTTP-version field 715 in the first line of the message. HTTP-version is case-sensitive. 716 </t> 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> = <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> … … 764 764 <t> 765 765 Intermediaries that process HTTP messages (i.e., all intermediaries 766 other than those acting as tunnels) &MUST; send their own HTTP- Version766 other than those acting as tunnels) &MUST; send their own HTTP-version 767 767 in forwarded messages. In other words, they &MUST-NOT; blindly 768 768 forward the first line of an HTTP message without ensuring that the … … 770 770 intermediary is conformant for both the receiving and 771 771 sending of messages. Forwarding an HTTP message without rewriting 772 the HTTP- Version might result in communication errors when downstream772 the HTTP-version might result in communication errors when downstream 773 773 recipients use the message sender's version to determine what features 774 774 are safe to use for later communication with that sender. … … 803 803 version responses, such as when a client fails to parse the version 804 804 number correctly or when an intermediary is known to blindly forward 805 the HTTP- Version even when it doesn't conform to the given minor805 the HTTP-version even when it doesn't conform to the given minor 806 806 version of the protocol. Such protocol downgrades &SHOULD-NOT; be 807 807 performed unless triggered by specific client attributes, such as when … … 1083 1083 An HTTP message can either be a request from client to server or a 1084 1084 response from server to client. Syntactically, the two types of message 1085 differ only in the start-line, which is either a Request-Line (for requests)1086 or a Status-Line (for responses), and in the algorithm for determining1085 differ only in the start-line, which is either a request-line (for requests) 1086 or a status-line (for responses), and in the algorithm for determining 1087 1087 the length of the message body (<xref target="message.body"/>). 1088 1088 In theory, a client could receive requests and a server could receive … … 1093 1093 </t> 1094 1094 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="start-line"/> 1095 <x:ref>start-line</x:ref> = <x:ref> Request-Line</x:ref> / <x:ref>Status-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> … … 1108 1108 </t> 1109 1109 1110 <section title="Request -Line" anchor="request.line">1110 <section title="Request Line" anchor="request.line"> 1111 1111 <x:anchor-alias value="Request"/> 1112 <x:anchor-alias value=" Request-Line"/>1113 <t> 1114 The Request-Line begins with a method token, followed by a single1112 <x:anchor-alias value="request-line"/> 1113 <t> 1114 A request-line begins with a method token, followed by a single 1115 1115 space (SP), the request-target, another single space (SP), the 1116 1116 protocol version, and ending with CRLF. 1117 1117 </t> 1118 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Request-Line"/>1119 <x:ref> Request-Line</x:ref> = <x:ref>Method</x:ref> <x:ref>SP</x:ref> <x:ref>request-target</x:ref> <x:ref>SP</x:ref> <x:ref>HTTP-Version</x:ref> <x:ref>CRLF</x:ref>1118 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-line"/> 1119 <x:ref>request-line</x:ref> = <x:ref>method</x:ref> <x:ref>SP</x:ref> <x:ref>request-target</x:ref> <x:ref>SP</x:ref> <x:ref>HTTP-version</x:ref> <x:ref>CRLF</x:ref> 1120 1120 </artwork></figure> 1121 1121 1122 1122 <section title="Method" anchor="method"> 1123 <x:anchor-alias value=" Method"/>1124 <t> 1125 The Method token indicates the request method to be performed on the1123 <x:anchor-alias value="method"/> 1124 <t> 1125 The method token indicates the request method to be performed on the 1126 1126 target resource. The request method is case-sensitive. 1127 1127 </t> 1128 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Method"/>1129 <x:ref> Method</x:ref> = <x:ref>token</x:ref>1128 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="method"/> 1129 <x:ref>method</x:ref> = <x:ref>token</x:ref> 1130 1130 </artwork></figure> 1131 1131 <t> 1132 See &method; for further information, such as the list of methods defined 1133 by this specification, the IANA registry, and considerations for new methods. 1132 The methods defined by this specification can be found in 1133 &method;, along with information regarding the HTTP method registry 1134 and considerations for defining new methods. 1134 1135 </t> 1135 1136 </section> … … 1170 1171 </section> 1171 1172 1172 <section title="Response Status -Line" anchor="status.line">1173 <x:anchor-alias value=" Response"/>1174 <x:anchor-alias value=" Status-Line"/>1175 <t> 1176 The first line of a Response message is the Status-Line, consisting1173 <section title="Response Status Line" anchor="status.line"> 1174 <x:anchor-alias value="response"/> 1175 <x:anchor-alias value="status-line"/> 1176 <t> 1177 The first line of a response message is the status-line, consisting 1177 1178 of the protocol version, a space (SP), the status code, another space, 1178 1179 a possibly-empty textual phrase describing the status code, and 1179 1180 ending with CRLF. 1180 1181 </t> 1181 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Status-Line"/>1182 <x:ref> Status-Line</x:ref> = <x:ref>HTTP-Version</x:ref> <x:ref>SP</x:ref> <x:ref>Status-Code</x:ref> <x:ref>SP</x:ref> <x:ref>Reason-Phrase</x:ref> <x:ref>CRLF</x:ref>1182 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="status-line"/> 1183 <x:ref>status-line</x:ref> = <x:ref>HTTP-version</x:ref> <x:ref>SP</x:ref> <x:ref>status-code</x:ref> <x:ref>SP</x:ref> <x:ref>reason-phrase</x:ref> <x:ref>CRLF</x:ref> 1183 1184 </artwork></figure> 1184 1185 1185 1186 <section title="Status Code" anchor="status.code"> 1186 <x:anchor-alias value=" Status-Code"/>1187 <t> 1188 The Status-Code element is a 3-digit integer result code of the attempt to1187 <x:anchor-alias value="status-code"/> 1188 <t> 1189 The status-code element is a 3-digit integer result code of the attempt to 1189 1190 understand and satisfy the request. See &status-code-reasonphr; for 1190 1191 further information, such as the list of status codes defined by this 1191 1192 specification, the IANA registry, and considerations for new status codes. 1192 1193 </t> 1193 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Status-Code"/>1194 <x:ref> Status-Code</x:ref> = 3<x:ref>DIGIT</x:ref>1194 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="status-code"/> 1195 <x:ref>status-code</x:ref> = 3<x:ref>DIGIT</x:ref> 1195 1196 </artwork></figure> 1196 1197 </section> 1197 1198 1198 1199 <section title="Reason Phrase" anchor="reason.phrase"> 1199 <x:anchor-alias value=" Reason-Phrase"/>1200 <x:anchor-alias value="reason-phrase"/> 1200 1201 <t> 1201 1202 The Reason Phrase exists for the sole purpose of providing a textual … … 1205 1206 Phrase. 1206 1207 </t> 1207 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Reason-Phrase"/>1208 <x:ref> Reason-Phrase</x:ref> = *( <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )1208 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="reason-phrase"/> 1209 <x:ref>reason-phrase</x:ref> = *( <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> ) 1209 1210 </artwork></figure> 1210 1211 </section> … … 1893 1894 <t> 1894 1895 In the interest of robustness, servers &SHOULD; ignore at least one 1895 empty line received where a Request-Line is expected. In other words, if1896 empty line received where a request-line is expected. In other words, if 1896 1897 the server is reading the protocol stream at the beginning of a 1897 1898 message and receives a CRLF first, it &SHOULD; ignore the CRLF. … … 1968 1969 proxies &MUST; be able to recognize and exclude all of its own server 1969 1970 names, including any aliases, local variations, or literal IP addresses. 1970 An example Request-Line would be:1971 An example request-line would be: 1971 1972 </t> 1972 1973 <figure><artwork type="message/http; msgtype="request"" x:indent-with=" "> … … 2101 2102 </t> 2102 2103 <t> 2103 the request-target obtained from the Request-Line, unless the2104 the request-target obtained from the request-line, unless the 2104 2105 request-target is just the asterisk "*". 2105 2106 </t> … … 2210 2211 <iref item="Coding Format" subitem="chunked"/> 2211 2212 <x:anchor-alias value="chunk"/> 2212 <x:anchor-alias value=" Chunked-Body"/>2213 <x:anchor-alias value="chunked-body"/> 2213 2214 <x:anchor-alias value="chunk-data"/> 2214 2215 <x:anchor-alias value="chunk-ext"/> … … 2228 2229 received the full message. 2229 2230 </t> 2230 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Chunked-Body"/><iref primary="true" item="Grammar" subitem="chunk"/><iref primary="true" item="Grammar" subitem="chunk-size"/><iref primary="true" item="Grammar" subitem="last-chunk"/><iref primary="true" item="Grammar" subitem="chunk-ext"/><iref primary="true" item="Grammar" subitem="chunk-ext-name"/><iref primary="true" item="Grammar" subitem="chunk-ext-val"/><iref primary="true" item="Grammar" subitem="chunk-data"/><iref primary="true" item="Grammar" subitem="trailer-part"/><iref primary="true" item="Grammar" subitem="quoted-str-nf"/><iref primary="true" item="Grammar" subitem="qdtext-nf"/>2231 <x:ref> Chunked-Body</x:ref> = *<x:ref>chunk</x:ref>2231 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="chunked-body"/><iref primary="true" item="Grammar" subitem="chunk"/><iref primary="true" item="Grammar" subitem="chunk-size"/><iref primary="true" item="Grammar" subitem="last-chunk"/><iref primary="true" item="Grammar" subitem="chunk-ext"/><iref primary="true" item="Grammar" subitem="chunk-ext-name"/><iref primary="true" item="Grammar" subitem="chunk-ext-val"/><iref primary="true" item="Grammar" subitem="chunk-data"/><iref primary="true" item="Grammar" subitem="trailer-part"/><iref primary="true" item="Grammar" subitem="quoted-str-nf"/><iref primary="true" item="Grammar" subitem="qdtext-nf"/> 2232 <x:ref>chunked-body</x:ref> = *<x:ref>chunk</x:ref> 2232 2233 <x:ref>last-chunk</x:ref> 2233 2234 <x:ref>trailer-part</x:ref> … … 3178 3179 for multiple host names on a single IP address. Since the Host 3179 3180 field-value is critical information for handling a request, it 3180 &SHOULD; be sent as the first header field following the Request-Line.3181 &SHOULD; be sent as the first header field following the request-line. 3181 3182 </t> 3182 3183 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Host"/> … … 3571 3572 <list style="hanging"> 3572 3573 <t hangText="version:"> 3573 The HTTP- Version number of the enclosed message3574 The HTTP-version number of the enclosed message 3574 3575 (e.g., "1.1"). If not present, the version can be 3575 3576 determined from the first line of the body. … … 3640 3641 <list style="hanging"> 3641 3642 <t hangText="version:"> 3642 The HTTP- Version number of the enclosed messages3643 The HTTP-version number of the enclosed messages 3643 3644 (e.g., "1.1"). If not present, the version can be 3644 3645 determined from the first line of the body. … … 4967 4968 </t> 4968 4969 <t> 4969 Clarify that the string "HTTP" in the HTTP- Version ABFN production is case4970 Clarify that the string "HTTP" in the HTTP-version ABFN production is case 4970 4971 sensitive. Restrict the version numbers to be single digits due to the fact 4971 4972 that implementations are known to handle multi-digit version numbers … … 5039 5040 <x:ref>BWS</x:ref> = OWS 5040 5041 5041 <x:ref>Chunked-Body</x:ref> = *chunk last-chunk trailer-part CRLF5042 5042 <x:ref>Connection</x:ref> = *( "," OWS ) connection-token *( OWS "," [ OWS 5043 5043 connection-token ] ) 5044 5044 <x:ref>Content-Length</x:ref> = 1*DIGIT 5045 5045 5046 <x:ref>HTTP-Prot-Name</x:ref> = %x48.54.54.50 ; HTTP5047 <x:ref>HTTP-Version</x:ref> = HTTP-Prot-Name "/" DIGIT "." DIGIT5048 5046 <x:ref>HTTP-message</x:ref> = start-line *( header-field CRLF ) CRLF [ message-body 5049 5047 ] 5048 <x:ref>HTTP-name</x:ref> = %x48.54.54.50 ; HTTP 5049 <x:ref>HTTP-version</x:ref> = HTTP-name "/" DIGIT "." DIGIT 5050 5050 <x:ref>Host</x:ref> = uri-host [ ":" port ] 5051 5051 5052 <x:ref>Method</x:ref> = token5053 5054 5052 <x:ref>OWS</x:ref> = *( SP / HTAB ) 5055 5053 5056 5054 <x:ref>RWS</x:ref> = 1*( SP / HTAB ) 5057 <x:ref>Reason-Phrase</x:ref> = *( HTAB / SP / VCHAR / obs-text )5058 <x:ref>Request-Line</x:ref> = Method SP request-target SP HTTP-Version CRLF5059 5060 <x:ref>Status-Code</x:ref> = 3DIGIT5061 <x:ref>Status-Line</x:ref> = HTTP-Version SP Status-Code SP Reason-Phrase CRLF5062 5055 5063 5056 <x:ref>TE</x:ref> = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ] … … 5083 5076 <x:ref>chunk-ext-val</x:ref> = token / quoted-str-nf 5084 5077 <x:ref>chunk-size</x:ref> = 1*HEXDIG 5078 <x:ref>chunked-body</x:ref> = *chunk last-chunk trailer-part CRLF 5085 5079 <x:ref>comment</x:ref> = "(" *( ctext / quoted-cpair / comment ) ")" 5086 5080 <x:ref>connection-token</x:ref> = token … … 5101 5095 5102 5096 <x:ref>message-body</x:ref> = *OCTET 5097 <x:ref>method</x:ref> = token 5103 5098 5104 5099 <x:ref>obs-fold</x:ref> = CRLF ( SP / HTAB ) … … 5127 5122 <x:ref>qvalue</x:ref> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 5128 5123 5124 <x:ref>reason-phrase</x:ref> = *( HTAB / SP / VCHAR / obs-text ) 5129 5125 <x:ref>received-by</x:ref> = ( uri-host [ ":" port ] ) / pseudonym 5130 5126 <x:ref>received-protocol</x:ref> = [ protocol-name "/" ] protocol-version 5131 5127 <x:ref>relative-part</x:ref> = <relative-part, defined in [RFC3986], Section 4.2> 5128 <x:ref>request-line</x:ref> = method SP request-target SP HTTP-version CRLF 5132 5129 <x:ref>request-target</x:ref> = "*" / absolute-URI / ( path-absolute [ "?" query ] ) 5133 5130 / authority … … 5135 5132 <x:ref>special</x:ref> = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / 5136 5133 DQUOTE / "/" / "[" / "]" / "?" / "=" / "{" / "}" 5137 <x:ref>start-line</x:ref> = Request-Line / Status-Line 5134 <x:ref>start-line</x:ref> = request-line / status-line 5135 <x:ref>status-code</x:ref> = 3DIGIT 5136 <x:ref>status-line</x:ref> = HTTP-version SP status-code SP reason-phrase CRLF 5138 5137 5139 5138 <x:ref>t-codings</x:ref> = "trailers" / ( transfer-extension [ te-params ] ) … … 5157 5156 </figure> 5158 5157 <figure><preamble>ABNF diagnostics:</preamble><artwork type="inline"> 5159 ; Chunked-Body defined but not used5160 5158 ; Connection defined but not used 5161 5159 ; Content-Length defined but not used … … 5168 5166 ; Upgrade defined but not used 5169 5167 ; Via defined but not used 5168 ; chunked-body defined but not used 5170 5169 ; http-URI defined but not used 5171 5170 ; https-URI defined but not used … … 5376 5375 <list style="symbols"> 5377 5376 <t> 5378 Replace string literals when the string really is case-sensitive (HTTP- Version).5377 Replace string literals when the string really is case-sensitive (HTTP-version). 5379 5378 </t> 5380 5379 </list> … … 5493 5492 <t> 5494 5493 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/94"/>: 5495 " Reason-Phrase BNF"5494 "reason-phrase BNF" 5496 5495 </t> 5497 5496 <t> … … 5824 5823 <t> 5825 5824 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/273"/>: 5826 "HTTP- Version should be redefined as fixed length pair of DIGIT . DIGIT"5825 "HTTP-version should be redefined as fixed length pair of DIGIT . DIGIT" 5827 5826 </t> 5828 5827 <t> -
draft-ietf-httpbis/latest/p2-semantics.html
r1555 r1557 868 868 <a href="#abnf.dependencies" class="smpl">URI-reference</a> = <URI-reference, defined in <a href="#Part1" id="rfc.xref.Part1.14"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.7</a>> 869 869 </pre><h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="method" href="#method">Method</a></h1> 870 <p id="rfc.section.2.p.1">The Method token indicates the request method to be performed on the target resource (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 4.3</a> of <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>). The method is case-sensitive.871 </p> 872 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.1"></span> <a href="#method" class="smpl"> Method</a> = <a href="#core.rules" class="smpl">token</a>870 <p id="rfc.section.2.p.1">The method token indicates the request method to be performed on the target resource (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 4.3</a> of <a href="#Part1" id="rfc.xref.Part1.15"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>). The method is case-sensitive. 871 </p> 872 <div id="rfc.figure.u.3"></div><pre class="inline"><span id="rfc.iref.g.1"></span> <a href="#method" class="smpl">method</a> = <a href="#core.rules" class="smpl">token</a> 873 873 </pre><p id="rfc.section.2.p.3">The list of methods allowed by a resource can be specified in an Allow header field (<a href="#header.allow" id="rfc.xref.header.allow.1" title="Allow">Section 10.1</a>). The status code of the response always notifies the client whether a method is currently allowed on a resource, since the 874 874 set of allowed methods can change dynamically. An origin server <em class="bcp14">SHOULD</em> respond with the status code 405 (Method Not Allowed) if the method is known by the origin server but not allowed for the … … 925 925 <p id="rfc.section.2.1.p.2">Note that this list is not exhaustive — it does not include request methods defined in other specifications.</p> 926 926 <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a> <a id="method.registry" href="#method.registry">Method Registry</a></h2> 927 <p id="rfc.section.2.2.p.1">The HTTP Method Registry defines the name space for the Method token in the Request line of an HTTP request.</p>927 <p id="rfc.section.2.2.p.1">The HTTP Method Registry defines the name space for the method token in the Request line of an HTTP request.</p> 928 928 <p id="rfc.section.2.2.p.2">Registrations <em class="bcp14">MUST</em> include the following fields: 929 929 </p> … … 1116 1116 <h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a> <a id="response.header.fields" href="#response.header.fields">Response Header Fields</a></h2> 1117 1117 <p id="rfc.section.3.3.p.1">The response header fields allow the server to pass additional information about the response which cannot be placed in the 1118 Status-Line. These header fields give information about the server and about further access to the target resource (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 4.3</a> of <a href="#Part1" id="rfc.xref.Part1.25"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>).1118 status-line. These header fields give information about the server and about further access to the target resource (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 4.3</a> of <a href="#Part1" id="rfc.xref.Part1.25"><cite title="HTTP/1.1, part 1: URIs, Connections, and Message Parsing">[Part1]</cite></a>). 1119 1119 </p> 1120 1120 <div id="rfc.table.u.3"> … … 1175 1175 </div> 1176 1176 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h1> 1177 <p id="rfc.section.4.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request.</p>1178 <p id="rfc.section.4.p.2">The Reason-Phrase is intended to give a short textual description of the Status-Code and is intended for a human user. The1179 client does not need to examine or display the Reason-Phrase.1180 </p> 1181 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span> <a href="#status.code.and.reason.phrase" class="smpl"> Status-Code</a> = 3<a href="#notation" class="smpl">DIGIT</a>1182 <a href="#status.code.and.reason.phrase" class="smpl"> Reason-Phrase</a> = *( <a href="#notation" class="smpl">HTAB</a> / <a href="#notation" class="smpl">SP</a> / <a href="#notation" class="smpl">VCHAR</a> / <a href="#core.rules" class="smpl">obs-text</a> )1177 <p id="rfc.section.4.p.1">The status-code element is a 3-digit integer result code of the attempt to understand and satisfy the request.</p> 1178 <p id="rfc.section.4.p.2">The reason-phrase is intended to give a short textual description of the status-code and is intended for a human user. The 1179 client does not need to examine or display the reason-phrase. 1180 </p> 1181 <div id="rfc.figure.u.5"></div><pre class="inline"><span id="rfc.iref.g.2"></span><span id="rfc.iref.g.3"></span><span id="rfc.iref.g.4"></span> <a href="#status.code.and.reason.phrase" class="smpl">status-code</a> = 3<a href="#notation" class="smpl">DIGIT</a> 1182 <a href="#status.code.and.reason.phrase" class="smpl">reason-phrase</a> = *( <a href="#notation" class="smpl">HTAB</a> / <a href="#notation" class="smpl">SP</a> / <a href="#notation" class="smpl">VCHAR</a> / <a href="#core.rules" class="smpl">obs-text</a> ) 1183 1183 </pre><p id="rfc.section.4.p.4">HTTP status codes are extensible. HTTP applications are not required to understand the meaning of all registered status codes, 1184 1184 though such understanding is obviously desirable. However, applications <em class="bcp14">MUST</em> understand the class of any status code, as indicated by the first digit, and treat any unrecognized response as being equivalent … … 1195 1195 <thead> 1196 1196 <tr> 1197 <th> Status-Code</th>1198 <th> Reason-Phrase</th>1197 <th>status-code</th> 1198 <th>reason-phrase</th> 1199 1199 <th>Defined in...</th> 1200 1200 </tr> … … 1411 1411 <p id="rfc.section.4.1.p.2">Note that this list is not exhaustive — it does not include extension status codes defined in other specifications.</p> 1412 1412 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="status.code.registry" href="#status.code.registry">Status Code Registry</a></h2> 1413 <p id="rfc.section.4.2.p.1">The HTTP Status Code Registry defines the name space for the Status-Code token in the Status-Line of an HTTP response.</p>1413 <p id="rfc.section.4.2.p.1">The HTTP Status Code Registry defines the name space for the status-code token in the status-line of an HTTP response.</p> 1414 1414 <p id="rfc.section.4.2.p.2">Values to be added to this name space are subject to IETF review (<a href="#RFC5226" id="rfc.xref.RFC5226.2"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>, <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a>). 1415 1415 </p> … … 1713 1713 </p> 1714 1714 <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="status.codes" href="#status.codes">Status Code Definitions</a></h1> 1715 <p id="rfc.section.7.p.1">The first digit of the Status-Code defines the class of response. The last two digits do not have any categorization role.1715 <p id="rfc.section.7.p.1">The first digit of the status-code defines the class of response. The last two digits do not have any categorization role. 1716 1716 There are 5 values for the first digit: 1717 1717 </p> … … 1723 1723 <li>5xx: Server Error - The server failed to fulfill an apparently valid request</li> 1724 1724 </ul> 1725 <p id="rfc.section.7.p.2">Each Status-Code is described below, including any metadata required in the response.</p>1725 <p id="rfc.section.7.p.2">Each status-code is described below, including any metadata required in the response.</p> 1726 1726 <p id="rfc.section.7.p.3">For most status codes the response can carry a payload, in which case a Content-Type header field indicates the payload's 1727 1727 media type (<a href="p3-payload.html#header.content-type" title="Content-Type">Section 6.8</a> of <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>). 1728 1728 </p> 1729 1729 <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a> <a id="status.1xx" href="#status.1xx">Informational 1xx</a></h2> 1730 <p id="rfc.section.7.1.p.1">This class of status code indicates a provisional response, consisting only of the Status-Line and optional header fields,1730 <p id="rfc.section.7.1.p.1">This class of status code indicates a provisional response, consisting only of the status-line and optional header fields, 1731 1731 and is terminated by an empty line. There are no required header fields for this class of status code. Since HTTP/1.0 did 1732 1732 not define any 1xx status codes, servers <em class="bcp14">MUST NOT</em> send a 1xx response to an HTTP/1.0 client except under experimental conditions. … … 2006 2006 <div id="rfc.iref.s.21"></div> 2007 2007 <h3 id="rfc.section.7.4.5"><a href="#rfc.section.7.4.5">7.4.5</a> <a id="status.405" href="#status.405">405 Method Not Allowed</a></h3> 2008 <p id="rfc.section.7.4.5.p.1">The method specified in the Request-Line is not allowed for the target resource. The response <em class="bcp14">MUST</em> include an Allow header field containing a list of valid methods for the requested resource.2008 <p id="rfc.section.7.4.5.p.1">The method specified in the request-line is not allowed for the target resource. The response <em class="bcp14">MUST</em> include an Allow header field containing a list of valid methods for the requested resource. 2009 2009 </p> 2010 2010 <div id="rfc.iref.42"></div> … … 2266 2266 is strictly to inform the recipient of valid request methods associated with the resource. 2267 2267 </p> 2268 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.24"></span> <a href="#header.allow" class="smpl">Allow</a> = #<a href="#method" class="smpl"> Method</a>2268 <div id="rfc.figure.u.18"></div><pre class="inline"><span id="rfc.iref.g.24"></span> <a href="#header.allow" class="smpl">Allow</a> = #<a href="#method" class="smpl">method</a> 2269 2269 </pre><p id="rfc.section.10.1.p.3">Example of use:</p> 2270 2270 <div id="rfc.figure.u.19"></div><pre class="text"> Allow: GET, HEAD, PUT … … 3094 3094 </p> 3095 3095 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> 3096 <div id="rfc.figure.u.38"></div> <pre class="inline"><a href="#header.allow" class="smpl">Allow</a> = [ ( "," / Method ) *( OWS "," [ OWS Method ] ) ]3096 <div id="rfc.figure.u.38"></div> <pre class="inline"><a href="#header.allow" class="smpl">Allow</a> = [ ( "," / method ) *( OWS "," [ OWS method ] ) ] 3097 3097 3098 3098 <a href="#core.rules" class="smpl">BWS</a> = <BWS, defined in [Part1], Section 3.2.1> … … 3111 3111 3112 3112 <a href="#header.max-forwards" class="smpl">Max-Forwards</a> = 1*DIGIT 3113 <a href="#method" class="smpl">Method</a> = token3114 3113 3115 3114 <a href="#core.rules" class="smpl">OWS</a> = <OWS, defined in [Part1], Section 3.2.1> 3116 3115 3117 3116 <a href="#core.rules" class="smpl">RWS</a> = <RWS, defined in [Part1], Section 3.2.1> 3118 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *( HTAB / SP / VCHAR / obs-text )3119 3117 <a href="#header.referer" class="smpl">Referer</a> = absolute-URI / partial-URI 3120 3118 <a href="#header.retry-after" class="smpl">Retry-After</a> = HTTP-date / delta-seconds 3121 3119 3122 3120 <a href="#header.server" class="smpl">Server</a> = product *( RWS ( product / comment ) ) 3123 <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3DIGIT3124 3121 3125 3122 <a href="#abnf.dependencies" class="smpl">URI-reference</a> = <URI-reference, defined in [Part1], Section 2.7> … … 3160 3157 3161 3158 <a href="#header.from" class="smpl">mailbox</a> = <mailbox, defined in [RFC5322], Section 3.4> 3159 <a href="#method" class="smpl">method</a> = token 3162 3160 <a href="#preferred.date.format" class="smpl">minute</a> = 2DIGIT 3163 3161 <a href="#preferred.date.format" class="smpl">month</a> = %x4A.61.6E ; Jan … … 3183 3181 <a href="#core.rules" class="smpl">quoted-string</a> = <quoted-string, defined in [Part1], Section 3.2.4> 3184 3182 3183 <a href="#status.code.and.reason.phrase" class="smpl">reason-phrase</a> = *( HTAB / SP / VCHAR / obs-text ) 3185 3184 <a href="#preferred.date.format" class="smpl">rfc1123-date</a> = day-name "," SP date1 SP time-of-day SP GMT 3186 3185 <a href="#obsolete.date.formats" class="smpl">rfc850-date</a> = day-name-l "," SP date2 SP time-of-day SP GMT 3187 3186 3188 3187 <a href="#preferred.date.format" class="smpl">second</a> = 2DIGIT 3188 <a href="#status.code.and.reason.phrase" class="smpl">status-code</a> = 3DIGIT 3189 3189 3190 3190 <a href="#preferred.date.format" class="smpl">time-of-day</a> = hour ":" minute ":" second … … 3199 3199 ; Location defined but not used 3200 3200 ; Max-Forwards defined but not used 3201 ; Reason-Phrase defined but not used3202 3201 ; Referer defined but not used 3203 3202 ; Retry-After defined but not used 3204 3203 ; Server defined but not used 3205 ; Status-Code defined but not used3206 3204 ; User-Agent defined but not used 3205 ; reason-phrase defined but not used 3206 ; status-code defined but not used 3207 3207 </pre><h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1> 3208 3208 <h2 id="rfc.section.C.1"><a href="#rfc.section.C.1">C.1</a> Since RFC 2616 … … 3313 3313 <p id="rfc.section.C.7.p.1">Closed issues: </p> 3314 3314 <ul> 3315 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/94">http://tools.ietf.org/wg/httpbis/trac/ticket/94</a>>: " Reason-Phrase BNF"3315 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/94">http://tools.ietf.org/wg/httpbis/trac/ticket/94</a>>: "reason-phrase BNF" 3316 3316 </li> 3317 3317 </ul> … … 3419 3419 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/112">http://tools.ietf.org/wg/httpbis/trac/ticket/112</a>>: "PUT - 'store under' vs 'store at'" 3420 3420 </li> 3421 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/137">http://tools.ietf.org/wg/httpbis/trac/ticket/137</a>>: "duplicate ABNF for Reason-Phrase"3421 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/137">http://tools.ietf.org/wg/httpbis/trac/ticket/137</a>>: "duplicate ABNF for reason-phrase" 3422 3422 </li> 3423 3423 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/180">http://tools.ietf.org/wg/httpbis/trac/ticket/180</a>>: "Note special status of Content-* prefix in header registration procedures" … … 3623 3623 <li><tt>Location</tt> <a href="#rfc.iref.g.32"><b>10.5</b></a></li> 3624 3624 <li><tt>Max-Forwards</tt> <a href="#rfc.iref.g.33"><b>10.6</b></a></li> 3625 <li><tt> Method</tt> <a href="#rfc.iref.g.1"><b>2</b></a></li>3625 <li><tt>method</tt> <a href="#rfc.iref.g.1"><b>2</b></a></li> 3626 3626 <li><tt>minute</tt> <a href="#rfc.iref.g.11"><b>8</b></a></li> 3627 3627 <li><tt>month</tt> <a href="#rfc.iref.g.16"><b>8</b></a></li> … … 3629 3629 <li><tt>product</tt> <a href="#rfc.iref.g.22"><b>9</b></a></li> 3630 3630 <li><tt>product-version</tt> <a href="#rfc.iref.g.23"><b>9</b></a></li> 3631 <li><tt> Reason-Phrase</tt> <a href="#rfc.iref.g.4"><b>4</b></a></li>3631 <li><tt>reason-phrase</tt> <a href="#rfc.iref.g.4"><b>4</b></a></li> 3632 3632 <li><tt>Referer</tt> <a href="#rfc.iref.g.34"><b>10.7</b></a></li> 3633 3633 <li><tt>Retry-After</tt> <a href="#rfc.iref.g.35"><b>10.8</b></a></li> … … 3636 3636 <li><tt>second</tt> <a href="#rfc.iref.g.12"><b>8</b></a></li> 3637 3637 <li><tt>Server</tt> <a href="#rfc.iref.g.37"><b>10.9</b></a></li> 3638 <li><tt> Status-Code</tt> <a href="#rfc.iref.g.2"><b>4</b></a></li>3638 <li><tt>status-code</tt> <a href="#rfc.iref.g.2"><b>4</b></a></li> 3639 3639 <li><tt>time-of-day</tt> <a href="#rfc.iref.g.9"><b>8</b></a></li> 3640 3640 <li><tt>User-Agent</tt> <a href="#rfc.iref.g.38"><b>10.10</b></a></li> … … 3672 3672 <li><a id="rfc.index.M" href="#rfc.index.M"><b>M</b></a><ul> 3673 3673 <li>Max-Forwards header field <a href="#rfc.xref.header.max-forwards.1">3.2</a>, <a href="#rfc.xref.header.max-forwards.2">6.2</a>, <a href="#rfc.xref.header.max-forwards.3">6.8</a>, <a href="#rfc.iref.m.9"><b>10.6</b></a>, <a href="#rfc.xref.header.max-forwards.4">11.3</a>, <a href="#rfc.xref.header.max-forwards.5">A</a></li> 3674 <li> Methods 3674 <li>methods 3675 3675 <ul> 3676 3676 <li>CONNECT <a href="#rfc.xref.CONNECT.1">2.1</a>, <a href="#rfc.iref.m.8"><b>6.9</b></a>, <a href="#rfc.xref.CONNECT.2">11.1</a>, <a href="#rfc.xref.CONNECT.3">A</a></li> -
draft-ietf-httpbis/latest/p2-semantics.xml
r1554 r1557 401 401 402 402 <section title="Method" anchor="method"> 403 <x:anchor-alias value=" Method"/>403 <x:anchor-alias value="method"/> 404 404 <x:anchor-alias value="extension-method"/> 405 405 <t> 406 The Method token indicates the request method to be performed on the target406 The method token indicates the request method to be performed on the target 407 407 resource (&effective-request-uri;). The method is case-sensitive. 408 408 </t> 409 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Method"/>410 <x:ref> Method</x:ref> = <x:ref>token</x:ref>409 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="method"/> 410 <x:ref>method</x:ref> = <x:ref>token</x:ref> 411 411 </artwork></figure> 412 412 <t> … … 449 449 <section title="Method Registry" anchor="method.registry"> 450 450 <t> 451 The HTTP Method Registry defines the name space for the Method token in the451 The HTTP Method Registry defines the name space for the method token in the 452 452 Request line of an HTTP request. 453 453 </t> … … 630 630 <t> 631 631 The response header fields allow the server to pass additional 632 information about the response which cannot be placed in the Status-Line.632 information about the response which cannot be placed in the status-line. 633 633 These header fields give information about the server and about 634 634 further access to the target resource (&effective-request-uri;). … … 654 654 655 655 <section title="Status Code and Reason Phrase" anchor="status.code.and.reason.phrase"> 656 <x:anchor-alias value=" Reason-Phrase"/>657 <x:anchor-alias value=" Status-Code"/>656 <x:anchor-alias value="reason-phrase"/> 657 <x:anchor-alias value="status-code"/> 658 658 <x:anchor-alias value="extension-code"/> 659 659 <t> 660 The Status-Code element is a 3-digit integer result code of the attempt to660 The status-code element is a 3-digit integer result code of the attempt to 661 661 understand and satisfy the request. 662 662 </t> 663 663 <t> 664 The Reason-Phrase is intended to give a short textual description of the665 Status-Code and is intended for a human user. The client does not need666 to examine or display the Reason-Phrase.667 </t> 668 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem=" Status-Code"/><iref primary="true" item="Grammar" subitem="extension-code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/>669 <x:ref> Status-Code</x:ref> = 3<x:ref>DIGIT</x:ref>670 <x:ref> Reason-Phrase</x:ref> = *( <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> )664 The reason-phrase is intended to give a short textual description of the 665 status-code and is intended for a human user. The client does not need 666 to examine or display the reason-phrase. 667 </t> 668 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="status-code"/><iref primary="true" item="Grammar" subitem="extension-code"/><iref primary="true" item="Grammar" subitem="reason-phrase"/> 669 <x:ref>status-code</x:ref> = 3<x:ref>DIGIT</x:ref> 670 <x:ref>reason-phrase</x:ref> = *( <x:ref>HTAB</x:ref> / <x:ref>SP</x:ref> / <x:ref>VCHAR</x:ref> / <x:ref>obs-text</x:ref> ) 671 671 </artwork></figure> 672 672 <t> … … 694 694 </t> 695 695 <texttable align="left"> 696 <ttcol> Status-Code</ttcol>697 <ttcol> Reason-Phrase</ttcol>696 <ttcol>status-code</ttcol> 697 <ttcol>reason-phrase</ttcol> 698 698 <ttcol>Defined in...</ttcol> 699 699 … … 752 752 <section title="Status Code Registry" anchor="status.code.registry"> 753 753 <t> 754 The HTTP Status Code Registry defines the name space for the Status-Code755 token in the Status-Line of an HTTP response.754 The HTTP Status Code Registry defines the name space for the status-code 755 token in the status-line of an HTTP response. 756 756 </t> 757 757 <t> … … 917 917 </rdf:Description> 918 918 <iref primary="true" item="OPTIONS method" x:for-anchor=""/> 919 <iref primary="true" item=" Methods" subitem="OPTIONS" x:for-anchor=""/>919 <iref primary="true" item="methods" subitem="OPTIONS" x:for-anchor=""/> 920 920 <t> 921 921 The OPTIONS method requests information about the … … 976 976 </rdf:Description> 977 977 <iref primary="true" item="GET method" x:for-anchor=""/> 978 <iref primary="true" item=" Methods" subitem="GET" x:for-anchor=""/>978 <iref primary="true" item="methods" subitem="GET" x:for-anchor=""/> 979 979 <t> 980 980 The GET method requests transfer of a current representation of … … 1024 1024 </rdf:Description> 1025 1025 <iref primary="true" item="HEAD method" x:for-anchor=""/> 1026 <iref primary="true" item=" Methods" subitem="HEAD" x:for-anchor=""/>1026 <iref primary="true" item="methods" subitem="HEAD" x:for-anchor=""/> 1027 1027 <t> 1028 1028 The HEAD method is identical to GET except that the server &MUST-NOT; … … 1049 1049 <section title="POST" anchor="POST"> 1050 1050 <iref primary="true" item="POST method" x:for-anchor=""/> 1051 <iref primary="true" item=" Methods" subitem="POST" x:for-anchor=""/>1051 <iref primary="true" item="methods" subitem="POST" x:for-anchor=""/> 1052 1052 <t> 1053 1053 The POST method requests that the origin server accept the … … 1105 1105 <section title="PUT" anchor="PUT"> 1106 1106 <iref primary="true" item="PUT method" x:for-anchor=""/> 1107 <iref primary="true" item=" Methods" subitem="PUT" x:for-anchor=""/>1107 <iref primary="true" item="methods" subitem="PUT" x:for-anchor=""/> 1108 1108 <t> 1109 1109 The PUT method requests that the state of the target resource … … 1227 1227 <section title="DELETE" anchor="DELETE"> 1228 1228 <iref primary="true" item="DELETE method" x:for-anchor=""/> 1229 <iref primary="true" item=" Methods" subitem="DELETE" x:for-anchor=""/>1229 <iref primary="true" item="methods" subitem="DELETE" x:for-anchor=""/> 1230 1230 <t> 1231 1231 The DELETE method requests that the origin server delete the target … … 1263 1263 </rdf:Description> 1264 1264 <iref primary="true" item="TRACE method" x:for-anchor=""/> 1265 <iref primary="true" item=" Methods" subitem="TRACE" x:for-anchor=""/>1265 <iref primary="true" item="methods" subitem="TRACE" x:for-anchor=""/> 1266 1266 <t> 1267 1267 The TRACE method requests a remote, application-layer loop-back … … 1292 1292 <section title="CONNECT" anchor="CONNECT"> 1293 1293 <iref primary="true" item="CONNECT method" x:for-anchor=""/> 1294 <iref primary="true" item=" Methods" subitem="CONNECT" x:for-anchor=""/>1294 <iref primary="true" item="methods" subitem="CONNECT" x:for-anchor=""/> 1295 1295 <t> 1296 1296 The CONNECT method requests that the proxy establish a tunnel … … 1372 1372 <section title="Status Code Definitions" anchor="status.codes"> 1373 1373 <t> 1374 The first digit of the Status-Code defines the class of response. The1374 The first digit of the status-code defines the class of response. The 1375 1375 last two digits do not have any categorization role. There are 5 1376 1376 values for the first digit: … … 1398 1398 </t> 1399 1399 <t> 1400 Each Status-Code is described below, including any metadata required1400 Each status-code is described below, including any metadata required 1401 1401 in the response. 1402 1402 </t> … … 1410 1410 <t> 1411 1411 This class of status code indicates a provisional response, 1412 consisting only of the Status-Line and optional header fields, and is1412 consisting only of the status-line and optional header fields, and is 1413 1413 terminated by an empty line. There are no required header fields for this 1414 1414 class of status code. Since HTTP/1.0 did not define any 1xx status … … 1937 1937 <iref primary="true" item="Status Codes" subitem="405 Method Not Allowed" x:for-anchor=""/> 1938 1938 <t> 1939 The method specified in the Request-Line is not allowed for the target1939 The method specified in the request-line is not allowed for the target 1940 1940 resource. The response &MUST; include an Allow header field containing a 1941 1941 list of valid methods for the requested resource. … … 2425 2425 </t> 2426 2426 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Allow"/> 2427 <x:ref>Allow</x:ref> = #<x:ref> Method</x:ref>2427 <x:ref>Allow</x:ref> = #<x:ref>method</x:ref> 2428 2428 </artwork></figure> 2429 2429 <t> … … 3986 3986 <figure> 3987 3987 <artwork type="abnf" name="p2-semantics.parsed-abnf"> 3988 <x:ref>Allow</x:ref> = [ ( "," / Method ) *( OWS "," [ OWS Method ] ) ]3988 <x:ref>Allow</x:ref> = [ ( "," / method ) *( OWS "," [ OWS method ] ) ] 3989 3989 3990 3990 <x:ref>BWS</x:ref> = <BWS, defined in [Part1], Section 3.2.1> … … 4003 4003 4004 4004 <x:ref>Max-Forwards</x:ref> = 1*DIGIT 4005 <x:ref>Method</x:ref> = token4006 4005 4007 4006 <x:ref>OWS</x:ref> = <OWS, defined in [Part1], Section 3.2.1> 4008 4007 4009 4008 <x:ref>RWS</x:ref> = <RWS, defined in [Part1], Section 3.2.1> 4010 <x:ref>Reason-Phrase</x:ref> = *( HTAB / SP / VCHAR / obs-text )4011 4009 <x:ref>Referer</x:ref> = absolute-URI / partial-URI 4012 4010 <x:ref>Retry-After</x:ref> = HTTP-date / delta-seconds 4013 4011 4014 4012 <x:ref>Server</x:ref> = product *( RWS ( product / comment ) ) 4015 <x:ref>Status-Code</x:ref> = 3DIGIT4016 4013 4017 4014 <x:ref>URI-reference</x:ref> = <URI-reference, defined in [Part1], Section 2.7> … … 4052 4049 4053 4050 <x:ref>mailbox</x:ref> = <mailbox, defined in [RFC5322], Section 3.4> 4051 <x:ref>method</x:ref> = token 4054 4052 <x:ref>minute</x:ref> = 2DIGIT 4055 4053 <x:ref>month</x:ref> = %x4A.61.6E ; Jan … … 4075 4073 <x:ref>quoted-string</x:ref> = <quoted-string, defined in [Part1], Section 3.2.4> 4076 4074 4075 <x:ref>reason-phrase</x:ref> = *( HTAB / SP / VCHAR / obs-text ) 4077 4076 <x:ref>rfc1123-date</x:ref> = day-name "," SP date1 SP time-of-day SP GMT 4078 4077 <x:ref>rfc850-date</x:ref> = day-name-l "," SP date2 SP time-of-day SP GMT 4079 4078 4080 4079 <x:ref>second</x:ref> = 2DIGIT 4080 <x:ref>status-code</x:ref> = 3DIGIT 4081 4081 4082 4082 <x:ref>time-of-day</x:ref> = hour ":" minute ":" second … … 4093 4093 ; Location defined but not used 4094 4094 ; Max-Forwards defined but not used 4095 ; Reason-Phrase defined but not used4096 4095 ; Referer defined but not used 4097 4096 ; Retry-After defined but not used 4098 4097 ; Server defined but not used 4099 ; Status-Code defined but not used4100 4098 ; User-Agent defined but not used 4099 ; reason-phrase defined but not used 4100 ; status-code defined but not used 4101 4101 </artwork></figure></section> 4102 4102 <?ENDINC p2-semantics.abnf-appendix ?> … … 4313 4313 <t> 4314 4314 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/94"/>: 4315 " Reason-Phrase BNF"4315 "reason-phrase BNF" 4316 4316 </t> 4317 4317 </list> … … 4522 4522 <t> 4523 4523 <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/137"/>: 4524 "duplicate ABNF for Reason-Phrase"4524 "duplicate ABNF for reason-phrase" 4525 4525 </t> 4526 4526 <t>
Note: See TracChangeset
for help on using the changeset viewer.