Ignore:
Timestamp:
Sep 1, 2011, 6:20:56 PM (8 years ago)
Author:
fielding@…
Message:

(editorial) Move syntax requirements for the start-line into the section
on message parsing, including subsections for Request-Line and Status-Line,
but leaving the long description of request-target as a later
section that will eventually be renamed.

File:
1 edited

Legend:

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

    r1431 r1432  
    11901190   ignored by some clients or cause others to cease parsing.
    11911191</t>
     1192
     1193<section title="Request-Line" anchor="request-line">
     1194  <x:anchor-alias value="Request-Line"/>
     1195<t>
     1196   The Request-Line begins with a method token, followed by a single
     1197   space (SP), the request-target, another single space (SP), the
     1198   protocol version, and ending with CRLF.
     1199</t>
     1200<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-Line"/>
     1201  <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>
     1202</artwork></figure>
     1203
     1204<section title="Method" anchor="method">
     1205  <x:anchor-alias value="Method"/>
     1206<t>
     1207   The Method token indicates the request method to be performed on the
     1208   target resource. The request method is case-sensitive.
     1209</t>
     1210<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/>
     1211  <x:ref>Method</x:ref>         = <x:ref>token</x:ref>
     1212</artwork></figure>
     1213<t>
     1214   See &method; for further information, such as the list of methods defined
     1215   by this specification, the IANA registry, and considerations for new methods.
     1216</t>
     1217</section>
     1218
     1219<section title="request-target" anchor="request-target">
     1220  <x:anchor-alias value="request-target"/>
     1221<t>
     1222   The request-target identifies the target resource upon which to apply
     1223   the request.  The four options for request-target are described in
     1224   <xref target="request-target-types"/>.
     1225</t>
     1226<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-target"/>
     1227  <x:ref>request-target</x:ref> = "*"
     1228                 / <x:ref>absolute-URI</x:ref>
     1229                 / ( <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ] )
     1230                 / <x:ref>authority</x:ref>
     1231</artwork></figure>
     1232<t>
     1233   HTTP does not place a pre-defined limit on the length of a request-target.
     1234   A server &MUST; be prepared to receive URIs of unbounded length and
     1235   respond with the 414 (URI Too Long) status code if the received
     1236   request-target would be longer than the server wishes to handle
     1237   (see &status-414;).
     1238</t>
     1239<t>
     1240   Various ad-hoc limitations on request-target length are found in practice.
     1241   It is &RECOMMENDED; that all HTTP senders and recipients support
     1242   request-target lengths of 8000 or more octets.
     1243</t>
     1244<x:note>
     1245  <t>
     1246    <x:h>Note:</x:h> Fragments (<xref target="RFC3986" x:fmt="," x:sec="3.5"/>)
     1247    are not part of the request-target and thus will not be transmitted
     1248    in an HTTP request.
     1249  </t>
     1250</x:note>
     1251</section>
     1252</section>
     1253
     1254<section title="Status-Line" anchor="status-line">
     1255  <x:anchor-alias value="Status-Line"/>
     1256<t>
     1257   The first line of a Response message is the Status-Line, consisting
     1258   of the protocol version, a space (SP), the status code, another space,
     1259   a possibly-empty textual phrase describing the status code, and
     1260   ending with CRLF.
     1261</t>
     1262<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Line"/>
     1263  <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>
     1264</artwork></figure>
     1265
     1266<section title="Status Code" anchor="status.code">
     1267  <x:anchor-alias value="Status-Code"/>
     1268<t>
     1269   The Status-Code element is a 3-digit integer result code of the attempt to
     1270   understand and satisfy the request. See &status-code-reasonphr; for
     1271   further information, such as the list of status codes defined by this
     1272   specification, the IANA registry, and considerations for new status codes.
     1273</t>
     1274<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/>
     1275  <x:ref>Status-Code</x:ref>    = 3<x:ref>DIGIT</x:ref>
     1276</artwork></figure>
     1277<t>
     1278   The first digit of the Status-Code defines the class of response. The
     1279   last two digits do not have any categorization role. There are 5
     1280   values for the first digit:
     1281  <list style="symbols">
     1282    <t>
     1283      1xx: Informational - Request received, continuing process
     1284    </t>
     1285    <t>
     1286      2xx: Success - The action was successfully received,
     1287        understood, and accepted
     1288    </t>
     1289    <t>
     1290      3xx: Redirection - Further action must be taken in order to
     1291        complete the request
     1292    </t>
     1293    <t>
     1294      4xx: Client Error - The request contains bad syntax or cannot
     1295        be fulfilled
     1296    </t>
     1297    <t>
     1298      5xx: Server Error - The server failed to fulfill an apparently
     1299        valid request
     1300    </t>
     1301  </list>
     1302</t>
     1303</section>
     1304
     1305<section title="Reason Phrase" anchor="reason.phrase">
     1306  <x:anchor-alias value="Reason-Phrase"/>
     1307<t>   
     1308   The Reason Phrase exists for the sole purpose of providing a textual
     1309   description associated with the numeric status code, out of deference to
     1310   earlier Internet application protocols that were more frequently used with
     1311   interactive text clients. A client &SHOULD; ignore the content of the Reason
     1312   Phrase.
     1313</t>
     1314<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Reason-Phrase"/>
     1315  <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> )
     1316</artwork></figure>
     1317</section>
     1318</section>
     1319
    11921320</section>
    11931321
     
    14631591   For response messages, whether or not a message-body is included with
    14641592   a message is dependent on both the request method and the response
    1465    status code (<xref target="status.code.and.reason.phrase"/>).
     1593   status code (<xref target="status.code"/>).
    14661594   Responses to the HEAD request method never include a message-body
    14671595   because the associated response header fields (e.g., Transfer-Encoding,
     
    16711799</artwork></figure>
    16721800
    1673 <section title="Request-Line" anchor="request-line">
    1674   <x:anchor-alias value="Request-Line"/>
    1675 <t>
    1676    The Request-Line begins with a method token, followed by a single
    1677    space (SP), the request-target, another single space (SP), the
    1678    protocol version, and ending with CRLF.
    1679 </t>
    1680 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-Line"/>
    1681   <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>
    1682 </artwork></figure>
    1683 
    1684 <section title="Method" anchor="method">
    1685   <x:anchor-alias value="Method"/>
    1686 <t>
    1687    The Method token indicates the request method to be performed on the
    1688    target resource. The request method is case-sensitive.
    1689 </t>
    1690 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/>
    1691   <x:ref>Method</x:ref>         = <x:ref>token</x:ref>
    1692 </artwork></figure>
    1693 <t>
    1694    See &method; for further information, such as the list of methods defined
    1695    by this specification, the IANA registry, and considerations for new methods.
    1696 </t>
    1697 </section>
    1698 
    1699 <section title="request-target" anchor="request-target">
    1700   <x:anchor-alias value="request-target"/>
    1701 <t>
    1702    The request-target identifies the target resource upon which to apply
    1703    the request.  In most cases, the user agent is provided a URI reference
     1801<section title="Types of Request Target" anchor="request-target-types">
     1802<t>
     1803   In most cases, the user agent is provided a URI reference
    17041804   from which it determines an absolute URI for identifying the target
    17051805   resource.  When a request to the resource is initiated, all or part
    17061806   of that URI is used to construct the HTTP request-target.
    17071807</t>
    1708 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-target"/>
    1709   <x:ref>request-target</x:ref> = "*"
    1710                  / <x:ref>absolute-URI</x:ref>
    1711                  / ( <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ] )
    1712                  / <x:ref>authority</x:ref>
    1713 </artwork></figure>
    17141808<t>
    17151809   The four options for request-target are dependent on the nature of the
     
    18171911  </t>
    18181912</x:note>
    1819 <t>
    1820    HTTP does not place a pre-defined limit on the length of a request-target.
    1821    A server &MUST; be prepared to receive URIs of unbounded length and
    1822    respond with the 414 (URI Too Long) status code if the received
    1823    request-target would be longer than the server wishes to handle
    1824    (see &status-414;).
    1825 </t>
    1826 <t>
    1827    Various ad-hoc limitations on request-target length are found in practice.
    1828    It is &RECOMMENDED; that all HTTP senders and recipients support
    1829    request-target lengths of 8000 or more octets.
    1830 </t>
    1831 <x:note>
    1832   <t>
    1833     <x:h>Note:</x:h> Fragments (<xref target="RFC3986" x:fmt="," x:sec="3.5"/>)
    1834     are not part of the request-target and thus will not be transmitted
    1835     in an HTTP request.
    1836   </t>
    1837 </x:note>
    1838 </section>
    18391913</section>
    18401914
     
    19732047                  [ <x:ref>message-body</x:ref> ]          ; <xref target="message.body"/>
    19742048</artwork></figure>
    1975 
    1976 <section title="Status-Line" anchor="status-line">
    1977   <x:anchor-alias value="Status-Line"/>
    1978 <t>
    1979    The first line of a Response message is the Status-Line, consisting
    1980    of the protocol version, a space (SP), the status code, another space,
    1981    a possibly-empty textual phrase describing the status code, and
    1982    ending with CRLF.
    1983 </t>
    1984 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Line"/>
    1985   <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>
    1986 </artwork></figure>
    1987 
    1988 <section title="Status Code and Reason Phrase" anchor="status.code.and.reason.phrase">
    1989   <x:anchor-alias value="Reason-Phrase"/>
    1990   <x:anchor-alias value="Status-Code"/>
    1991 <t>
    1992    The Status-Code element is a 3-digit integer result code of the attempt to
    1993    understand and satisfy the request. See &status-code-reasonphr; for
    1994    further information, such as the list of status codes defined by this
    1995    specification, the IANA registry, and considerations for new status codes.
    1996 </t>
    1997 <t>   
    1998    The Reason Phrase exists for the sole purpose of providing a textual
    1999    description associated with the numeric status code, out of deference to
    2000    earlier Internet application protocols that were more frequently used with
    2001    interactive text clients. A client &SHOULD; ignore the content of the Reason
    2002    Phrase.
    2003 </t>
    2004 <t>
    2005    The first digit of the Status-Code defines the class of response. The
    2006    last two digits do not have any categorization role. There are 5
    2007    values for the first digit:
    2008   <list style="symbols">
    2009     <t>
    2010       1xx: Informational - Request received, continuing process
    2011     </t>
    2012     <t>
    2013       2xx: Success - The action was successfully received,
    2014         understood, and accepted
    2015     </t>
    2016     <t>
    2017       3xx: Redirection - Further action must be taken in order to
    2018         complete the request
    2019     </t>
    2020     <t>
    2021       4xx: Client Error - The request contains bad syntax or cannot
    2022         be fulfilled
    2023     </t>
    2024     <t>
    2025       5xx: Server Error - The server failed to fulfill an apparently
    2026         valid request
    2027     </t>
    2028   </list>
    2029 </t>
    2030 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/>
    2031   <x:ref>Status-Code</x:ref>    = 3<x:ref>DIGIT</x:ref>
    2032   <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> )
    2033 </artwork></figure>
    2034 </section>
    2035 </section>
    20362049
    20372050</section>
Note: See TracChangeset for help on using the changeset viewer.