Ignore:
Timestamp:
Mar 3, 2012, 3:56:54 PM (8 years ago)
Author:
fielding@…
Message:

(editorial) Consistently use lowercase for ABNF rule names other than header fields

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p1-messaging.xml

    r1556 r1557  
    702702
    703703<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"/>
    706706<t>
    707707   HTTP uses a "&lt;major&gt;.&lt;minor&gt;" numbering scheme to indicate
     
    712712</t>
    713713<t>
    714    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-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-sensitive
     714   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
    720720</artwork></figure>
    721721<t>
     
    764764<t>
    765765   Intermediaries that process HTTP messages (i.e., all intermediaries
    766    other than those acting as tunnels) &MUST; send their own HTTP-Version
     766   other than those acting as tunnels) &MUST; send their own HTTP-version
    767767   in forwarded messages.  In other words, they &MUST-NOT; blindly
    768768   forward the first line of an HTTP message without ensuring that the
     
    770770   intermediary is conformant for both the receiving and
    771771   sending of messages.  Forwarding an HTTP message without rewriting
    772    the HTTP-Version might result in communication errors when downstream
     772   the HTTP-version might result in communication errors when downstream
    773773   recipients use the message sender's version to determine what features
    774774   are safe to use for later communication with that sender.
     
    803803   version responses, such as when a client fails to parse the version
    804804   number correctly or when an intermediary is known to blindly forward
    805    the HTTP-Version even when it doesn't conform to the given minor
     805   the HTTP-version even when it doesn't conform to the given minor
    806806   version of the protocol. Such protocol downgrades &SHOULD-NOT; be
    807807   performed unless triggered by specific client attributes, such as when
     
    10831083   An HTTP message can either be a request from client to server or a
    10841084   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 determining
     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 determining
    10871087   the length of the message body (<xref target="message.body"/>).
    10881088   In theory, a client could receive requests and a server could receive
     
    10931093</t>
    10941094<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>
    10961096</artwork></figure>
    10971097<t>
     
    11081108</t>
    11091109
    1110 <section title="Request-Line" anchor="request.line">
     1110<section title="Request Line" anchor="request.line">
    11111111  <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 single
     1112  <x:anchor-alias value="request-line"/>
     1113<t>
     1114   A request-line begins with a method token, followed by a single
    11151115   space (SP), the request-target, another single space (SP), the
    11161116   protocol version, and ending with CRLF.
    11171117</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>
    11201120</artwork></figure>
    11211121
    11221122<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 the
     1123  <x:anchor-alias value="method"/>
     1124<t>
     1125   The method token indicates the request method to be performed on the
    11261126   target resource. The request method is case-sensitive.
    11271127</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>
    11301130</artwork></figure>
    11311131<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.
    11341135</t>
    11351136</section>
     
    11701171</section>
    11711172
    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, consisting
     1173<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
    11771178   of the protocol version, a space (SP), the status code, another space,
    11781179   a possibly-empty textual phrase describing the status code, and
    11791180   ending with CRLF.
    11801181</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>
    11831184</artwork></figure>
    11841185
    11851186<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 to
     1187  <x:anchor-alias value="status-code"/>
     1188<t>
     1189   The status-code element is a 3-digit integer result code of the attempt to
    11891190   understand and satisfy the request. See &status-code-reasonphr; for
    11901191   further information, such as the list of status codes defined by this
    11911192   specification, the IANA registry, and considerations for new status codes.
    11921193</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>
    11951196</artwork></figure>
    11961197</section>
    11971198
    11981199<section title="Reason Phrase" anchor="reason.phrase">
    1199   <x:anchor-alias value="Reason-Phrase"/>
     1200  <x:anchor-alias value="reason-phrase"/>
    12001201<t>   
    12011202   The Reason Phrase exists for the sole purpose of providing a textual
     
    12051206   Phrase.
    12061207</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> )
    12091210</artwork></figure>
    12101211</section>
     
    18931894<t>
    18941895   In the interest of robustness, servers &SHOULD; ignore at least one
    1895    empty line received where a Request-Line is expected. In other words, if
     1896   empty line received where a request-line is expected. In other words, if
    18961897   the server is reading the protocol stream at the beginning of a
    18971898   message and receives a CRLF first, it &SHOULD; ignore the CRLF.
     
    19681969   proxies &MUST; be able to recognize and exclude all of its own server
    19691970   names, including any aliases, local variations, or literal IP addresses.
    1970    An example Request-Line would be:
     1971   An example request-line would be:
    19711972</t>
    19721973<figure><artwork type="message/http; msgtype=&#34;request&#34;" x:indent-with="  ">
     
    21012102    </t>
    21022103    <t>
    2103       the request-target obtained from the Request-Line, unless the
     2104      the request-target obtained from the request-line, unless the
    21042105      request-target is just the asterisk "*".
    21052106    </t>
     
    22102211  <iref item="Coding Format" subitem="chunked"/>
    22112212  <x:anchor-alias value="chunk"/>
    2212   <x:anchor-alias value="Chunked-Body"/>
     2213  <x:anchor-alias value="chunked-body"/>
    22132214  <x:anchor-alias value="chunk-data"/>
    22142215  <x:anchor-alias value="chunk-ext"/>
     
    22282229   received the full message.
    22292230</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>
    22322233                   <x:ref>last-chunk</x:ref>
    22332234                   <x:ref>trailer-part</x:ref>
     
    31783179   for multiple host names on a single IP address.  Since the Host
    31793180   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.
    31813182</t>
    31823183<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Host"/>
     
    35713572      <list style="hanging">
    35723573        <t hangText="version:">
    3573           The HTTP-Version number of the enclosed message
     3574          The HTTP-version number of the enclosed message
    35743575          (e.g., "1.1"). If not present, the version can be
    35753576          determined from the first line of the body.
     
    36403641      <list style="hanging">
    36413642        <t hangText="version:">
    3642           The HTTP-Version number of the enclosed messages
     3643          The HTTP-version number of the enclosed messages
    36433644          (e.g., "1.1"). If not present, the version can be
    36443645          determined from the first line of the body.
     
    49674968</t>
    49684969<t>
    4969   Clarify that the string "HTTP" in the HTTP-Version ABFN production is case
     4970  Clarify that the string "HTTP" in the HTTP-version ABFN production is case
    49704971  sensitive. Restrict the version numbers to be single digits due to the fact
    49714972  that implementations are known to handle multi-digit version numbers
     
    50395040<x:ref>BWS</x:ref> = OWS
    50405041
    5041 <x:ref>Chunked-Body</x:ref> = *chunk last-chunk trailer-part CRLF
    50425042<x:ref>Connection</x:ref> = *( "," OWS ) connection-token *( OWS "," [ OWS
    50435043 connection-token ] )
    50445044<x:ref>Content-Length</x:ref> = 1*DIGIT
    50455045
    5046 <x:ref>HTTP-Prot-Name</x:ref> = %x48.54.54.50 ; HTTP
    5047 <x:ref>HTTP-Version</x:ref> = HTTP-Prot-Name "/" DIGIT "." DIGIT
    50485046<x:ref>HTTP-message</x:ref> = start-line *( header-field CRLF ) CRLF [ message-body
    50495047 ]
     5048<x:ref>HTTP-name</x:ref> = %x48.54.54.50 ; HTTP
     5049<x:ref>HTTP-version</x:ref> = HTTP-name "/" DIGIT "." DIGIT
    50505050<x:ref>Host</x:ref> = uri-host [ ":" port ]
    50515051
    5052 <x:ref>Method</x:ref> = token
    5053 
    50545052<x:ref>OWS</x:ref> = *( SP / HTAB )
    50555053
    50565054<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 CRLF
    5059 
    5060 <x:ref>Status-Code</x:ref> = 3DIGIT
    5061 <x:ref>Status-Line</x:ref> = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
    50625055
    50635056<x:ref>TE</x:ref> = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ]
     
    50835076<x:ref>chunk-ext-val</x:ref> = token / quoted-str-nf
    50845077<x:ref>chunk-size</x:ref> = 1*HEXDIG
     5078<x:ref>chunked-body</x:ref> = *chunk last-chunk trailer-part CRLF
    50855079<x:ref>comment</x:ref> = "(" *( ctext / quoted-cpair / comment ) ")"
    50865080<x:ref>connection-token</x:ref> = token
     
    51015095
    51025096<x:ref>message-body</x:ref> = *OCTET
     5097<x:ref>method</x:ref> = token
    51035098
    51045099<x:ref>obs-fold</x:ref> = CRLF ( SP / HTAB )
     
    51275122<x:ref>qvalue</x:ref> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] )
    51285123
     5124<x:ref>reason-phrase</x:ref> = *( HTAB / SP / VCHAR / obs-text )
    51295125<x:ref>received-by</x:ref> = ( uri-host [ ":" port ] ) / pseudonym
    51305126<x:ref>received-protocol</x:ref> = [ protocol-name "/" ] protocol-version
    51315127<x:ref>relative-part</x:ref> = &lt;relative-part, defined in [RFC3986], Section 4.2&gt;
     5128<x:ref>request-line</x:ref> = method SP request-target SP HTTP-version CRLF
    51325129<x:ref>request-target</x:ref> = "*" / absolute-URI / ( path-absolute [ "?" query ] )
    51335130 / authority
     
    51355132<x:ref>special</x:ref> = "(" / ")" / "&lt;" / "&gt;" / "@" / "," / ";" / ":" / "\" /
    51365133 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
    51385137
    51395138<x:ref>t-codings</x:ref> = "trailers" / ( transfer-extension [ te-params ] )
     
    51575156</figure>
    51585157<figure><preamble>ABNF diagnostics:</preamble><artwork type="inline">
    5159 ; Chunked-Body defined but not used
    51605158; Connection defined but not used
    51615159; Content-Length defined but not used
     
    51685166; Upgrade defined but not used
    51695167; Via defined but not used
     5168; chunked-body defined but not used
    51705169; http-URI defined but not used
    51715170; https-URI defined but not used
     
    53765375  <list style="symbols">
    53775376    <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).
    53795378    </t>
    53805379  </list>
     
    54935492    <t>
    54945493      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/94"/>:
    5495       "Reason-Phrase BNF"
     5494      "reason-phrase BNF"
    54965495    </t>
    54975496    <t>
     
    58245823    <t>
    58255824      <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"
    58275826    </t>
    58285827    <t>
Note: See TracChangeset for help on using the changeset viewer.