Changeset 2600 for draft-ietf-httpbis


Ignore:
Timestamp:
28/01/14 09:20:39 (6 years ago)
Author:
fielding@…
Message:

(editorial) use real sections for the forms of request-target; see #531

Location:
draft-ietf-httpbis/latest
Files:
2 edited

Legend:

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

    r2599 r2600  
    637637               <li><a href="#rfc.section.5.1">5.1</a>&nbsp;&nbsp;&nbsp;<a href="#target-resource">Identifying a Target Resource</a></li>
    638638               <li><a href="#rfc.section.5.2">5.2</a>&nbsp;&nbsp;&nbsp;<a href="#connecting.inbound">Connecting Inbound</a></li>
    639                <li><a href="#rfc.section.5.3">5.3</a>&nbsp;&nbsp;&nbsp;<a href="#request-target">Request Target</a></li>
     639               <li><a href="#rfc.section.5.3">5.3</a>&nbsp;&nbsp;&nbsp;<a href="#request-target">Request Target</a><ul>
     640                     <li><a href="#rfc.section.5.3.1">5.3.1</a>&nbsp;&nbsp;&nbsp;<a href="#origin-form">origin-form</a></li>
     641                     <li><a href="#rfc.section.5.3.2">5.3.2</a>&nbsp;&nbsp;&nbsp;<a href="#absolute-form">absolute-form</a></li>
     642                     <li><a href="#rfc.section.5.3.3">5.3.3</a>&nbsp;&nbsp;&nbsp;<a href="#authority-form">authority-form</a></li>
     643                     <li><a href="#rfc.section.5.3.4">5.3.4</a>&nbsp;&nbsp;&nbsp;<a href="#asterisk-form">asterisk-form</a></li>
     644                  </ul>
     645               </li>
    640646               <li><a href="#rfc.section.5.4">5.4</a>&nbsp;&nbsp;&nbsp;<a href="#header.host">Host</a></li>
    641647               <li><a href="#rfc.section.5.5">5.5</a>&nbsp;&nbsp;&nbsp;<a href="#effective.request.uri">Effective Request URI</a></li>
     
    18581864                 / <a href="#authority-form" class="smpl">authority-form</a>
    18591865                 / <a href="#asterisk-form" class="smpl">asterisk-form</a>
    1860 
    1861   <a href="#origin-form" class="smpl">origin-form</a>    = <a href="#uri" class="smpl">absolute-path</a> [ "?" <a href="#uri" class="smpl">query</a> ]
    1862   <a href="#absolute-form" class="smpl">absolute-form</a>  = <a href="#uri" class="smpl">absolute-URI</a>
    1863   <a href="#authority-form" class="smpl">authority-form</a> = <a href="#uri" class="smpl">authority</a>
    1864   <a href="#asterisk-form" class="smpl">asterisk-form</a>  = "*"
    18651866</pre><div id="origin-form">
    1866                <p id="rfc.section.5.3.p.3"><span id="rfc.iref.o.3"></span> <b>origin-form</b>
    1867                </p>
     1867               <div id="rfc.iref.o.3"></div>
     1868               <h3 id="rfc.section.5.3.1"><a href="#rfc.section.5.3.1">5.3.1</a>&nbsp;<a href="#origin-form">origin-form</a></h3>
     1869               <p id="rfc.section.5.3.1.p.1">The most common form of request-target is the <dfn>origin-form</dfn>.
     1870               </p>
     1871               <div id="rfc.figure.u.39"></div><pre class="inline"><span id="rfc.iref.g.84"></span>  <a href="#origin-form" class="smpl">origin-form</a>    = <a href="#uri" class="smpl">absolute-path</a> [ "?" <a href="#uri" class="smpl">query</a> ]
     1872</pre><p id="rfc.section.5.3.1.p.3">When making a request directly to an origin server, other than a CONNECT or server-wide OPTIONS request (as detailed below),
     1873                  a client <em class="bcp14">MUST</em> send only the absolute path and query components of the target URI as the request-target. If the target URI's path component
     1874                  is empty, the client <em class="bcp14">MUST</em> send "/" as the path within the origin-form of request-target. A <a href="#header.host" class="smpl">Host</a> header field is also sent, as defined in <a href="#header.host" id="rfc.xref.header.host.1" title="Host">Section&nbsp;5.4</a>.
     1875               </p>
     1876               <p id="rfc.section.5.3.1.p.4">For example, a client wishing to retrieve a representation of the resource identified as</p>
     1877               <div id="rfc.figure.u.40"></div><pre class="text">http://www.example.org/where?q=now
     1878</pre><p id="rfc.section.5.3.1.p.6">directly from the origin server would open (or reuse) a TCP connection to port 80 of the host "www.example.org" and send the
     1879                  lines:
     1880               </p>
     1881               <div id="rfc.figure.u.41"></div><pre class="text2">GET /where?q=now HTTP/1.1
     1882Host: www.example.org
     1883</pre><p id="rfc.section.5.3.1.p.8">followed by the remainder of the request message.</p>
    18681884            </div>
    1869             <p id="rfc.section.5.3.p.4">The most common form of request-target is the <dfn>origin-form</dfn>. When making a request directly to an origin server, other than a CONNECT or server-wide OPTIONS request (as detailed below),
    1870                a client <em class="bcp14">MUST</em> send only the absolute path and query components of the target URI as the request-target. If the target URI's path component
    1871                is empty, then the client <em class="bcp14">MUST</em> send "/" as the path within the origin-form of request-target. A <a href="#header.host" class="smpl">Host</a> header field is also sent, as defined in <a href="#header.host" id="rfc.xref.header.host.1" title="Host">Section&nbsp;5.4</a>.
    1872             </p>
    1873             <p id="rfc.section.5.3.p.5">For example, a client wishing to retrieve a representation of the resource identified as</p>
    1874             <div id="rfc.figure.u.39"></div><pre class="text">http://www.example.org/where?q=now
    1875 </pre><p id="rfc.section.5.3.p.7">directly from the origin server would open (or reuse) a TCP connection to port 80 of the host "www.example.org" and send the
    1876                lines:
    1877             </p>
    1878             <div id="rfc.figure.u.40"></div><pre class="text2">GET /where?q=now HTTP/1.1
    1879 Host: www.example.org
    1880 </pre><p id="rfc.section.5.3.p.9">followed by the remainder of the request message.</p>
    18811885            <div id="absolute-form">
    1882                <p id="rfc.section.5.3.p.10"><span id="rfc.iref.a.2"></span> <b>absolute-form</b>
     1886               <div id="rfc.iref.a.2"></div>
     1887               <h3 id="rfc.section.5.3.2"><a href="#rfc.section.5.3.2">5.3.2</a>&nbsp;<a href="#absolute-form">absolute-form</a></h3>
     1888               <p id="rfc.section.5.3.2.p.1">When making a request to a proxy, other than a CONNECT or server-wide OPTIONS request (as detailed below), a client <em class="bcp14">MUST</em> send the target URI in <dfn>absolute-form</dfn> as the request-target.
     1889               </p>
     1890               <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.85"></span>  <a href="#absolute-form" class="smpl">absolute-form</a>  = <a href="#uri" class="smpl">absolute-URI</a>
     1891</pre><p id="rfc.section.5.3.2.p.3">The proxy is requested to either service that request from a valid cache, if possible, or make the same request on the client's
     1892                  behalf to either the next inbound proxy server or directly to the origin server indicated by the request-target. Requirements
     1893                  on such "forwarding" of messages are defined in <a href="#message.forwarding" title="Message Forwarding">Section&nbsp;5.7</a>.
     1894               </p>
     1895               <p id="rfc.section.5.3.2.p.4">An example absolute-form of request-line would be:</p>
     1896               <div id="rfc.figure.u.43"></div><pre class="text2">GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1
     1897</pre><p id="rfc.section.5.3.2.p.6">To allow for transition to the absolute-form for all requests in some future version of HTTP, a server <em class="bcp14">MUST</em> accept the absolute-form in requests, even though HTTP/1.1 clients will only send them in requests to proxies.
    18831898               </p>
    18841899            </div>
    1885             <p id="rfc.section.5.3.p.11">When making a request to a proxy, other than a CONNECT or server-wide OPTIONS request (as detailed below), a client <em class="bcp14">MUST</em> send the target URI in <dfn>absolute-form</dfn> as the request-target. The proxy is requested to either service that request from a valid cache, if possible, or make the
    1886                same request on the client's behalf to either the next inbound proxy server or directly to the origin server indicated by
    1887                the request-target. Requirements on such "forwarding" of messages are defined in <a href="#message.forwarding" title="Message Forwarding">Section&nbsp;5.7</a>.
    1888             </p>
    1889             <p id="rfc.section.5.3.p.12">An example absolute-form of request-line would be:</p>
    1890             <div id="rfc.figure.u.41"></div><pre class="text2">GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1
    1891 </pre><p id="rfc.section.5.3.p.14">To allow for transition to the absolute-form for all requests in some future version of HTTP, a server <em class="bcp14">MUST</em> accept the absolute-form in requests, even though HTTP/1.1 clients will only send them in requests to proxies.
    1892             </p>
    18931900            <div id="authority-form">
    1894                <p id="rfc.section.5.3.p.15"><span id="rfc.iref.a.3"></span> <b>authority-form</b>
    1895                </p>
    1896             </div>
    1897             <p id="rfc.section.5.3.p.16">The <dfn>authority-form</dfn> of request-target is only used for CONNECT requests (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 4.3.6</a> of <a href="#Part2" id="rfc.xref.Part2.23"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). When making a CONNECT request to establish a tunnel through one or more proxies, a client <em class="bcp14">MUST</em> send only the target URI's authority component (excluding any userinfo and its "@" delimiter) as the request-target. For example,
    1898             </p>
    1899             <div id="rfc.figure.u.42"></div><pre class="text2">CONNECT www.example.com:80 HTTP/1.1
    1900 </pre><div id="asterisk-form">
    1901                <p id="rfc.section.5.3.p.18"><span id="rfc.iref.a.4"></span> <b>asterisk-form</b>
    1902                </p>
    1903             </div>
    1904             <p id="rfc.section.5.3.p.19">The <dfn>asterisk-form</dfn> of request-target is only used for a server-wide OPTIONS request (<a href="p2-semantics.html#OPTIONS" title="OPTIONS">Section 4.3.7</a> of <a href="#Part2" id="rfc.xref.Part2.24"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>). When a client wishes to request OPTIONS for the server as a whole, as opposed to a specific named resource of that server,
    1905                the client <em class="bcp14">MUST</em> send only "*" (%x2A) as the request-target. For example,
    1906             </p>
    1907             <div id="rfc.figure.u.43"></div><pre class="text2">OPTIONS * HTTP/1.1
    1908 </pre><p id="rfc.section.5.3.p.21">If a proxy receives an OPTIONS request with an absolute-form of request-target in which the URI has an empty path and no query
    1909                component, then the last proxy on the request chain <em class="bcp14">MUST</em> send a request-target of "*" when it forwards the request to the indicated origin server.
    1910             </p>
    1911             <div id="rfc.figure.u.44"></div>
    1912             <p>For example, the request</p><pre class="text2">OPTIONS http://www.example.org:8001 HTTP/1.1
    1913 </pre><div id="rfc.figure.u.45"></div>
    1914             <p>would be forwarded by the final proxy as</p><pre class="text2">OPTIONS * HTTP/1.1
     1901               <div id="rfc.iref.a.3"></div>
     1902               <h3 id="rfc.section.5.3.3"><a href="#rfc.section.5.3.3">5.3.3</a>&nbsp;<a href="#authority-form">authority-form</a></h3>
     1903               <p id="rfc.section.5.3.3.p.1">The <dfn>authority-form</dfn> of request-target is only used for CONNECT requests (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 4.3.6</a> of <a href="#Part2" id="rfc.xref.Part2.23"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>).
     1904               </p>
     1905               <div id="rfc.figure.u.44"></div><pre class="inline"><span id="rfc.iref.g.86"></span>  <a href="#authority-form" class="smpl">authority-form</a> = <a href="#uri" class="smpl">authority</a>
     1906</pre><p id="rfc.section.5.3.3.p.3">When making a CONNECT request to establish a tunnel through one or more proxies, a client <em class="bcp14">MUST</em> send only the target URI's authority component (excluding any userinfo and its "@" delimiter) as the request-target. For example,
     1907               </p>
     1908               <div id="rfc.figure.u.45"></div><pre class="text2">CONNECT www.example.com:80 HTTP/1.1
     1909</pre></div>
     1910            <div id="asterisk-form">
     1911               <div id="rfc.iref.a.4"></div>
     1912               <h3 id="rfc.section.5.3.4"><a href="#rfc.section.5.3.4">5.3.4</a>&nbsp;<a href="#asterisk-form">asterisk-form</a></h3>
     1913               <p id="rfc.section.5.3.4.p.1">The <dfn>asterisk-form</dfn> of request-target is only used for a server-wide OPTIONS request (<a href="p2-semantics.html#OPTIONS" title="OPTIONS">Section 4.3.7</a> of <a href="#Part2" id="rfc.xref.Part2.24"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content">[Part2]</cite></a>).
     1914               </p>
     1915               <div id="rfc.figure.u.46"></div><pre class="inline"><span id="rfc.iref.g.87"></span>  <a href="#asterisk-form" class="smpl">asterisk-form</a>  = "*"
     1916</pre><p id="rfc.section.5.3.4.p.3">When a client wishes to request OPTIONS for the server as a whole, as opposed to a specific named resource of that server,
     1917                  the client <em class="bcp14">MUST</em> send only "*" (%x2A) as the request-target. For example,
     1918               </p>
     1919               <div id="rfc.figure.u.47"></div><pre class="text2">OPTIONS * HTTP/1.1
     1920</pre><p id="rfc.section.5.3.4.p.5">If a proxy receives an OPTIONS request with an absolute-form of request-target in which the URI has an empty path and no query
     1921                  component, then the last proxy on the request chain <em class="bcp14">MUST</em> send a request-target of "*" when it forwards the request to the indicated origin server.
     1922               </p>
     1923               <div id="rfc.figure.u.48"></div>
     1924               <p>For example, the request</p><pre class="text2">OPTIONS http://www.example.org:8001 HTTP/1.1
     1925</pre><div id="rfc.figure.u.49"></div>
     1926               <p>would be forwarded by the final proxy as</p><pre class="text2">OPTIONS * HTTP/1.1
    19151927Host: www.example.org:8001
    19161928</pre><p>after connecting to port 8001 of host "www.example.org".</p>
     1929            </div>
    19171930         </div>
    19181931         <div id="header.host">
     
    19221935               to distinguish among resources while servicing requests for multiple host names on a single IP address.
    19231936            </p>
    1924             <div id="rfc.figure.u.46"></div><pre class="inline"><span id="rfc.iref.g.84"></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&nbsp;2.7.1</a>
     1937            <div id="rfc.figure.u.50"></div><pre class="inline"><span id="rfc.iref.g.88"></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&nbsp;2.7.1</a>
    19251938</pre><p id="rfc.section.5.4.p.3">A client <em class="bcp14">MUST</em> send a Host header field in all HTTP/1.1 request messages. If the target URI includes an authority component, then a client <em class="bcp14">MUST</em> send a field-value for Host that is identical to that authority component, excluding any userinfo subcomponent and its "@"
    19261939               delimiter (<a href="#http.uri" title="http URI scheme">Section&nbsp;2.7.1</a>). If the authority component is missing or undefined for the target URI, then a client <em class="bcp14">MUST</em> send a Host header field with an empty field-value.
     
    19291942            </p>
    19301943            <p id="rfc.section.5.4.p.5">For example, a GET request to the origin server for &lt;http://www.example.org/pub/WWW/&gt; would begin with:</p>
    1931             <div id="rfc.figure.u.47"></div><pre class="text2">GET /pub/WWW/ HTTP/1.1
     1944            <div id="rfc.figure.u.51"></div><pre class="text2">GET /pub/WWW/ HTTP/1.1
    19321945Host: www.example.org
    19331946</pre><p id="rfc.section.5.4.p.7">A client <em class="bcp14">MUST</em> send a Host header field in an HTTP/1.1 request even if the request-target is in the absolute-form, since this allows the
     
    19701983               </li>
    19711984            </ul>
    1972             <div id="rfc.figure.u.48"></div>
     1985            <div id="rfc.figure.u.52"></div>
    19731986            <p>Example 1: the following message received over an insecure TCP connection</p><pre class="text">GET /pub/WWW/TheProject.html HTTP/1.1
    19741987Host: www.example.org:8080
    1975 </pre><div id="rfc.figure.u.49"></div>
     1988</pre><div id="rfc.figure.u.53"></div>
    19761989            <p>has an effective request URI of</p><pre class="text">http://www.example.org:8080/pub/WWW/TheProject.html
    1977 </pre><div id="rfc.figure.u.50"></div>
     1990</pre><div id="rfc.figure.u.54"></div>
    19781991            <p>Example 2: the following message received over a TLS-secured TCP connection</p><pre class="text">OPTIONS * HTTP/1.1
    19791992Host: www.example.org
    1980 </pre><div id="rfc.figure.u.51"></div>
     1993</pre><div id="rfc.figure.u.55"></div>
    19811994            <p>has an effective request URI of</p><pre class="text">https://www.example.org
    19821995</pre><p id="rfc.section.5.5.p.8">Recipients of an HTTP/1.0 request that lacks a <a href="#header.host" class="smpl">Host</a> header field might need to use heuristics (e.g., examination of the URI path for something unique to a particular host) in
     
    20202033                  along the request/response chain.
    20212034               </p>
    2022                <div id="rfc.figure.u.52"></div><pre class="inline"><span id="rfc.iref.g.85"></span><span id="rfc.iref.g.86"></span><span id="rfc.iref.g.87"></span><span id="rfc.iref.g.88"></span><span id="rfc.iref.g.89"></span><span id="rfc.iref.g.90"></span>  <a href="#header.via" class="smpl">Via</a> = 1#( <a href="#header.via" class="smpl">received-protocol</a> <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#header.via" class="smpl">received-by</a> [ <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#rule.comment" class="smpl">comment</a> ] )
     2035               <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.89"></span><span id="rfc.iref.g.90"></span><span id="rfc.iref.g.91"></span><span id="rfc.iref.g.92"></span><span id="rfc.iref.g.93"></span><span id="rfc.iref.g.94"></span>  <a href="#header.via" class="smpl">Via</a> = 1#( <a href="#header.via" class="smpl">received-protocol</a> <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#header.via" class="smpl">received-by</a> [ <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#rule.comment" class="smpl">comment</a> ] )
    20232036
    20242037  <a href="#header.via" class="smpl">received-protocol</a> = [ <a href="#header.upgrade" class="smpl">protocol-name</a> "/" ] <a href="#header.upgrade" class="smpl">protocol-version</a>
     
    20462059                  server at www.example.com. The request received by www.example.com would then have the following Via header field:
    20472060               </p>
    2048                <div id="rfc.figure.u.53"></div><pre class="text">  Via: 1.0 fred, 1.1 p.example.net
     2061               <div id="rfc.figure.u.57"></div><pre class="text">  Via: 1.0 fred, 1.1 p.example.net
    20492062</pre><p id="rfc.section.5.7.1.p.10">An intermediary used as a portal through a network firewall <em class="bcp14">SHOULD NOT</em> forward the names and ports of hosts within the firewall region unless it is explicitly enabled to do so. If not enabled,
    20502063                  such an intermediary <em class="bcp14">SHOULD</em> replace each received-by host of any host behind the firewall by an appropriate pseudonym for that host.
     
    20532066                  values. For example,
    20542067               </p>
    2055                <div id="rfc.figure.u.54"></div><pre class="text">  Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy
     2068               <div id="rfc.figure.u.58"></div><pre class="text">  Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy
    20562069</pre><p id="rfc.section.5.7.1.p.13">could be collapsed to</p>
    2057                <div id="rfc.figure.u.55"></div><pre class="text">  Via: 1.0 ricky, 1.1 mertz, 1.0 lucy
     2070               <div id="rfc.figure.u.59"></div><pre class="text">  Via: 1.0 ricky, 1.1 mertz, 1.0 lucy
    20582071</pre><p id="rfc.section.5.7.1.p.15">A sender <em class="bcp14">SHOULD NOT</em> combine multiple entries unless they are all under the same organizational control and the hosts have already been replaced
    20592072                  by pseudonyms. A sender <em class="bcp14">MUST NOT</em> combine entries that have different received-protocol values.
     
    21252138            </p>
    21262139            <p id="rfc.section.6.1.p.4">The Connection header field's value has the following grammar:</p>
    2127             <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.91"></span><span id="rfc.iref.g.92"></span>  <a href="#header.connection" class="smpl">Connection</a>        = 1#<a href="#header.connection" class="smpl">connection-option</a>
     2140            <div id="rfc.figure.u.60"></div><pre class="inline"><span id="rfc.iref.g.95"></span><span id="rfc.iref.g.96"></span>  <a href="#header.connection" class="smpl">Connection</a>        = 1#<a href="#header.connection" class="smpl">connection-option</a>
    21282141  <a href="#header.connection" class="smpl">connection-option</a> = <a href="#rule.token.separators" class="smpl">token</a>
    21292142</pre><p id="rfc.section.6.1.p.6">Connection options are case-insensitive.</p>
     
    21432156               For example,
    21442157            </p>
    2145             <div id="rfc.figure.u.57"></div><pre class="text">  Connection: close
     2158            <div id="rfc.figure.u.61"></div><pre class="text">  Connection: close
    21462159</pre><p id="rfc.section.6.1.p.12">in either the request or the response header fields indicates that the sender is going to close the connection after the current
    21472160               request/response is complete (<a href="#persistent.tear-down" id="rfc.xref.persistent.tear-down.1" title="Tear-down">Section&nbsp;6.6</a>).
     
    22932306               in order of descending preference, before sending the final response. A server <em class="bcp14">MAY</em> ignore a received Upgrade header field if it wishes to continue using the current protocol on that connection.
    22942307            </p>
    2295             <div id="rfc.figure.u.58"></div><pre class="inline"><span id="rfc.iref.g.93"></span>  <a href="#header.upgrade" class="smpl">Upgrade</a>          = 1#<a href="#header.upgrade" class="smpl">protocol</a>
     2308            <div id="rfc.figure.u.62"></div><pre class="inline"><span id="rfc.iref.g.97"></span>  <a href="#header.upgrade" class="smpl">Upgrade</a>          = 1#<a href="#header.upgrade" class="smpl">protocol</a>
    22962309
    22972310  <a href="#header.upgrade" class="smpl">protocol</a>         = <a href="#header.upgrade" class="smpl">protocol-name</a> ["/" <a href="#header.upgrade" class="smpl">protocol-version</a>]
     
    23072320               in order of descending preference, when appropriate for a future request.
    23082321            </p>
    2309             <div id="rfc.figure.u.59"></div>
     2322            <div id="rfc.figure.u.63"></div>
    23102323            <p>The following is a hypothetical example sent by a client:</p><pre class="text2">GET /hello.txt HTTP/1.1
    23112324Host: www.example.com
     
    23252338               by any protocol.
    23262339            </p>
    2327             <div id="rfc.figure.u.60"></div>
     2340            <div id="rfc.figure.u.64"></div>
    23282341            <p>The following is an example response to the above hypothetical request:</p><pre class="text">HTTP/1.1 101 Switching Protocols
    23292342Connection: upgrade
     
    23552368            indicating at least &lt;n&gt; and at most &lt;m&gt; elements, each separated by a single comma (",") and optional whitespace (OWS).
    23562369         </p>
    2357          <div id="rfc.figure.u.61"></div>
     2370         <div id="rfc.figure.u.65"></div>
    23582371         <p>In any production that uses the list construct, a sender <em class="bcp14">MUST NOT</em> generate empty list elements. In other words, a sender <em class="bcp14">MUST</em> generate lists that satisfy the following syntax:
    23592372         </p><pre class="text">  1#element =&gt; element *( OWS "," OWS element )
    2360 </pre><div id="rfc.figure.u.62"></div>
     2373</pre><div id="rfc.figure.u.66"></div>
    23612374         <p>and:</p><pre class="text">  #element =&gt; [ 1#element ]
    2362 </pre><div id="rfc.figure.u.63"></div>
     2375</pre><div id="rfc.figure.u.67"></div>
    23632376         <p>and for n &gt;= 1 and m &gt; 1:</p><pre class="text">  &lt;n&gt;#&lt;m&gt;element =&gt; element &lt;n-1&gt;*&lt;m-1&gt;( OWS "," OWS element )
    23642377</pre><p id="rfc.section.7.p.6">For compatibility with legacy list rules, a recipient <em class="bcp14">MUST</em> parse and ignore a reasonable number of empty list elements: enough to handle common mistakes by senders that merge values,
    23652378            but not so much that they could be used as a denial of service mechanism. In other words, a recipient <em class="bcp14">MUST</em> accept lists that satisfy the following syntax:
    23662379         </p>
    2367          <div id="rfc.figure.u.64"></div><pre class="text">  #element =&gt; [ ( "," / element ) *( OWS "," [ OWS element ] ) ]
     2380         <div id="rfc.figure.u.68"></div><pre class="text">  #element =&gt; [ ( "," / element ) *( OWS "," [ OWS element ] ) ]
    23682381 
    23692382  1#element =&gt; *( "," OWS ) element *( OWS "," [ OWS element ] )
    23702383</pre><p id="rfc.section.7.p.8">Empty elements do not contribute to the count of elements present. For example, given these ABNF productions:</p>
    2371          <div id="rfc.figure.u.65"></div><pre class="text">  example-list      = 1#example-list-elmt
     2384         <div id="rfc.figure.u.69"></div><pre class="text">  example-list      = 1#example-list-elmt
    23722385  example-list-elmt = token ; see <a href="#field.components" title="Field value components">Section&nbsp;3.2.6</a>
    23732386</pre><p id="rfc.section.7.p.10">Then the following are valid values for example-list (not including the double quotes, which are present for delimitation
    23742387            only):
    23752388         </p>
    2376          <div id="rfc.figure.u.66"></div><pre class="text">  "foo,bar"
     2389         <div id="rfc.figure.u.70"></div><pre class="text">  "foo,bar"
    23772390  "foo ,bar,"
    23782391  "foo , ,bar,charlie   "
    23792392</pre><p id="rfc.section.7.p.12">In contrast, the following values would be invalid, since at least one non-empty element is required by the example-list production:</p>
    2380          <div id="rfc.figure.u.67"></div><pre class="text">  ""
     2393         <div id="rfc.figure.u.71"></div><pre class="text">  ""
    23812394  ","
    23822395  ",   ,"
     
    33033316      <div id="collected.abnf">
    33043317         <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a href="#collected.abnf">Collected ABNF</a></h1>
    3305          <div id="rfc.figure.u.68"></div><pre class="inline"><a href="#rule.whitespace" class="smpl">BWS</a> = OWS
     3318         <div id="rfc.figure.u.72"></div><pre class="inline"><a href="#rule.whitespace" class="smpl">BWS</a> = OWS
    33063319
    33073320<a href="#header.connection" class="smpl">Connection</a> = *( "," OWS ) connection-option *( OWS "," [ OWS
     
    34723485         <ul class="ind">
    34733486            <li><a id="rfc.index.A" href="#rfc.index.A"><b>A</b></a><ul>
    3474                   <li>absolute-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.a.2">5.3</a></li>
     3487                  <li>absolute-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.a.2">5.3.2</a></li>
    34753488                  <li>accelerator&nbsp;&nbsp;<a href="#rfc.iref.a.1"><b>2.3</b></a></li>
    34763489                  <li>application/http Media Type&nbsp;&nbsp;<a href="#rfc.iref.a.5"><b>8.3.2</b></a></li>
    3477                   <li>asterisk-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.a.4">5.3</a></li>
    3478                   <li>authority-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.a.3">5.3</a></li>
     3490                  <li>asterisk-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.a.4">5.3.4</a></li>
     3491                  <li>authority-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.a.3">5.3.3</a></li>
    34793492               </ul>
    34803493            </li>
     
    35133526                  <li><tt>Grammar</tt>&nbsp;&nbsp;
    35143527                     <ul>
    3515                         <li><tt>absolute-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.81"><b>5.3</b></a></li>
     3528                        <li><tt>absolute-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.81">5.3</a>, <a href="#rfc.iref.g.85"><b>5.3.2</b></a></li>
    35163529                        <li><tt>absolute-path</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.20"><b>2.7</b></a></li>
    35173530                        <li><tt>absolute-URI</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.17"><b>2.7</b></a></li>
    35183531                        <li>ALPHA&nbsp;&nbsp;<a href="#rfc.iref.g.1"><b>1.2</b></a></li>
    3519                         <li><tt>asterisk-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.83"><b>5.3</b></a></li>
     3532                        <li><tt>asterisk-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.83">5.3</a>, <a href="#rfc.iref.g.87"><b>5.3.4</b></a></li>
    35203533                        <li><tt>authority</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.19"><b>2.7</b></a></li>
    3521                         <li><tt>authority-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.82"><b>5.3</b></a></li>
     3534                        <li><tt>authority-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.82">5.3</a>, <a href="#rfc.iref.g.86"><b>5.3.3</b></a></li>
    35223535                        <li><tt>BWS</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.44"><b>3.2.3</b></a></li>
    35233536                        <li><tt>chunk</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.60"><b>4.1</b></a></li>
     
    35293542                        <li><tt>chunked-body</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.59"><b>4.1</b></a>, <a href="#rfc.iref.g.66"><b>4.1.1</b></a></li>
    35303543                        <li><tt>comment</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.50"><b>3.2.6</b></a></li>
    3531                         <li><tt>Connection</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.91"><b>6.1</b></a></li>
    3532                         <li><tt>connection-option</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.92"><b>6.1</b></a></li>
     3544                        <li><tt>Connection</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.95"><b>6.1</b></a></li>
     3545                        <li><tt>connection-option</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.96"><b>6.1</b></a></li>
    35333546                        <li><tt>Content-Length</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.55"><b>3.3.2</b></a></li>
    35343547                        <li>CR&nbsp;&nbsp;<a href="#rfc.iref.g.2"><b>1.2</b></a></li>
     
    35453558                        <li><tt>header-field</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.36"><b>3.2</b></a>, <a href="#rfc.iref.g.71">4.1.2</a></li>
    35463559                        <li>HEXDIG&nbsp;&nbsp;<a href="#rfc.iref.g.7"><b>1.2</b></a></li>
    3547                         <li><tt>Host</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.84"><b>5.4</b></a></li>
     3560                        <li><tt>Host</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.88"><b>5.4</b></a></li>
    35483561                        <li>HTAB&nbsp;&nbsp;<a href="#rfc.iref.g.8"><b>1.2</b></a></li>
    35493562                        <li><tt>HTTP-message</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.29"><b>3</b></a></li>
     
    35593572                        <li><tt>obs-text</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.49"><b>3.2.6</b></a></li>
    35603573                        <li>OCTET&nbsp;&nbsp;<a href="#rfc.iref.g.10"><b>1.2</b></a></li>
    3561                         <li><tt>origin-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.80"><b>5.3</b></a></li>
     3574                        <li><tt>origin-form</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.80">5.3</a>, <a href="#rfc.iref.g.84"><b>5.3.1</b></a></li>
    35623575                        <li><tt>OWS</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.42"><b>3.2.3</b></a></li>
    35633576                        <li><tt>partial-URI</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.26"><b>2.7</b></a></li>
    35643577                        <li><tt>port</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.21"><b>2.7</b></a></li>
    3565                         <li><tt>protocol-name</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.87"><b>5.7.1</b></a></li>
    3566                         <li><tt>protocol-version</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.88"><b>5.7.1</b></a></li>
    3567                         <li><tt>pseudonym</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.90"><b>5.7.1</b></a></li>
     3578                        <li><tt>protocol-name</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.91"><b>5.7.1</b></a></li>
     3579                        <li><tt>protocol-version</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.92"><b>5.7.1</b></a></li>
     3580                        <li><tt>pseudonym</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.94"><b>5.7.1</b></a></li>
    35683581                        <li><tt>qdtext</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.48"><b>3.2.6</b></a></li>
    35693582                        <li><tt>query</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.22"><b>2.7</b></a></li>
     
    35723585                        <li><tt>rank</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.76"><b>4.3</b></a></li>
    35733586                        <li><tt>reason-phrase</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.35"><b>3.1.2</b></a></li>
    3574                         <li><tt>received-by</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.89"><b>5.7.1</b></a></li>
    3575                         <li><tt>received-protocol</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.86"><b>5.7.1</b></a></li>
     3587                        <li><tt>received-by</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.93"><b>5.7.1</b></a></li>
     3588                        <li><tt>received-protocol</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.90"><b>5.7.1</b></a></li>
    35763589                        <li><tt>request-line</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.31"><b>3.1.1</b></a></li>
    35773590                        <li><tt>request-target</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.79"><b>5.3</b></a></li>
     
    35943607                        <li><tt>transfer-extension</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.57"><b>4</b></a></li>
    35953608                        <li><tt>transfer-parameter</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.58"><b>4</b></a></li>
    3596                         <li><tt>Upgrade</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.93"><b>6.7</b></a></li>
     3609                        <li><tt>Upgrade</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.97"><b>6.7</b></a></li>
    35973610                        <li><tt>uri-host</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.25"><b>2.7</b></a></li>
    35983611                        <li><tt>URI-reference</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.16"><b>2.7</b></a></li>
    35993612                        <li>VCHAR&nbsp;&nbsp;<a href="#rfc.iref.g.12"><b>1.2</b></a></li>
    3600                         <li><tt>Via</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.85"><b>5.7.1</b></a></li>
     3613                        <li><tt>Via</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.89"><b>5.7.1</b></a></li>
    36013614                     </ul>
    36023615                  </li>
     
    36083621                  <li>header section&nbsp;&nbsp;<a href="#rfc.iref.h.3">3</a></li>
    36093622                  <li>headers&nbsp;&nbsp;<a href="#rfc.iref.h.4">3</a></li>
    3610                   <li>Host header field&nbsp;&nbsp;<a href="#rfc.xref.header.host.1">5.3</a>, <a href="#rfc.iref.h.6"><b>5.4</b></a>, <a href="#rfc.xref.header.host.2">8.1</a>, <a href="#rfc.xref.header.host.3">A.1.1</a></li>
     3623                  <li>Host header field&nbsp;&nbsp;<a href="#rfc.xref.header.host.1">5.3.1</a>, <a href="#rfc.iref.h.6"><b>5.4</b></a>, <a href="#rfc.xref.header.host.2">8.1</a>, <a href="#rfc.xref.header.host.3">A.1.1</a></li>
    36113624                  <li>http URI scheme&nbsp;&nbsp;<a href="#rfc.iref.h.1"><b>2.7.1</b></a></li>
    36123625                  <li>https URI scheme&nbsp;&nbsp;<a href="#rfc.iref.h.2">2.7.2</a></li>
     
    36423655            <li><a id="rfc.index.O" href="#rfc.index.O"><b>O</b></a><ul>
    36433656                  <li>origin server&nbsp;&nbsp;<a href="#rfc.iref.o.1"><b>2.1</b></a></li>
    3644                   <li>origin-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.o.3">5.3</a></li>
     3657                  <li>origin-form (of request-target)&nbsp;&nbsp;<a href="#rfc.iref.o.3">5.3.1</a></li>
    36453658                  <li>outbound&nbsp;&nbsp;<a href="#rfc.iref.o.2"><b>2.3</b></a></li>
    36463659               </ul>
    36473660            </li>
    36483661            <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul>
    3649                   <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">2.1</a>, <a href="#rfc.xref.Part2.3">2.1</a>, <a href="#rfc.xref.Part2.4">2.7</a>, <a href="#rfc.xref.Part2.5">2.7.1</a>, <a href="#rfc.xref.Part2.6">3.1.1</a>, <a href="#rfc.xref.Part2.7">3.1.1</a>, <a href="#rfc.xref.Part2.8">3.1.2</a>, <a href="#rfc.xref.Part2.9">3.2</a>, <a href="#rfc.xref.Part2.10">3.2.1</a>, <a href="#rfc.xref.Part2.11">3.3</a>, <a href="#rfc.xref.Part2.12">3.3</a>, <a href="#rfc.xref.Part2.13">3.3</a>, <a href="#rfc.xref.Part2.14">3.3.1</a>, <a href="#rfc.xref.Part2.15">3.3.1</a>, <a href="#rfc.xref.Part2.16">3.3.2</a>, <a href="#rfc.xref.Part2.17">3.3.2</a>, <a href="#rfc.xref.Part2.18">3.3.2</a>, <a href="#rfc.xref.Part2.19">4.1.2</a>, <a href="#rfc.xref.Part2.20">4.1.2</a>, <a href="#rfc.xref.Part2.21">4.3</a>, <a href="#rfc.xref.Part2.22">5.1</a>, <a href="#rfc.xref.Part2.23">5.3</a>, <a href="#rfc.xref.Part2.24">5.3</a>, <a href="#rfc.xref.Part2.25">5.6</a>, <a href="#rfc.xref.Part2.26">5.7.2</a>, <a href="#rfc.xref.Part2.27">5.7.2</a>, <a href="#rfc.xref.Part2.28">6.3.1</a>, <a href="#rfc.xref.Part2.29">6.3.2</a>, <a href="#rfc.xref.Part2.30">6.3.2</a>, <a href="#rfc.xref.Part2.31">6.7</a>, <a href="#rfc.xref.Part2.32">6.7</a>, <a href="#rfc.xref.Part2.33">8.4.1</a>, <a href="#rfc.xref.Part2.34">9</a>, <a href="#rfc.xref.Part2.35">9.3</a>, <a href="#rfc.xref.Part2.36">9.3</a>, <a href="#Part2"><b>11.1</b></a><ul>
     3662                  <li><em>Part2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">2.1</a>, <a href="#rfc.xref.Part2.3">2.1</a>, <a href="#rfc.xref.Part2.4">2.7</a>, <a href="#rfc.xref.Part2.5">2.7.1</a>, <a href="#rfc.xref.Part2.6">3.1.1</a>, <a href="#rfc.xref.Part2.7">3.1.1</a>, <a href="#rfc.xref.Part2.8">3.1.2</a>, <a href="#rfc.xref.Part2.9">3.2</a>, <a href="#rfc.xref.Part2.10">3.2.1</a>, <a href="#rfc.xref.Part2.11">3.3</a>, <a href="#rfc.xref.Part2.12">3.3</a>, <a href="#rfc.xref.Part2.13">3.3</a>, <a href="#rfc.xref.Part2.14">3.3.1</a>, <a href="#rfc.xref.Part2.15">3.3.1</a>, <a href="#rfc.xref.Part2.16">3.3.2</a>, <a href="#rfc.xref.Part2.17">3.3.2</a>, <a href="#rfc.xref.Part2.18">3.3.2</a>, <a href="#rfc.xref.Part2.19">4.1.2</a>, <a href="#rfc.xref.Part2.20">4.1.2</a>, <a href="#rfc.xref.Part2.21">4.3</a>, <a href="#rfc.xref.Part2.22">5.1</a>, <a href="#rfc.xref.Part2.23">5.3.3</a>, <a href="#rfc.xref.Part2.24">5.3.4</a>, <a href="#rfc.xref.Part2.25">5.6</a>, <a href="#rfc.xref.Part2.26">5.7.2</a>, <a href="#rfc.xref.Part2.27">5.7.2</a>, <a href="#rfc.xref.Part2.28">6.3.1</a>, <a href="#rfc.xref.Part2.29">6.3.2</a>, <a href="#rfc.xref.Part2.30">6.3.2</a>, <a href="#rfc.xref.Part2.31">6.7</a>, <a href="#rfc.xref.Part2.32">6.7</a>, <a href="#rfc.xref.Part2.33">8.4.1</a>, <a href="#rfc.xref.Part2.34">9</a>, <a href="#rfc.xref.Part2.35">9.3</a>, <a href="#rfc.xref.Part2.36">9.3</a>, <a href="#Part2"><b>11.1</b></a><ul>
    36503663                        <li><em>Section 2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.4">2.7</a></li>
    36513664                        <li><em>Section 3</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.16">3.3.2</a></li>
     
    36573670                        <li><em>Section 4.3.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.3">2.1</a>, <a href="#rfc.xref.Part2.12">3.3</a></li>
    36583671                        <li><em>Section 4.3.2</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.11">3.3</a>, <a href="#rfc.xref.Part2.17">3.3.2</a></li>
    3659                         <li><em>Section 4.3.6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.13">3.3</a>, <a href="#rfc.xref.Part2.15">3.3.1</a>, <a href="#rfc.xref.Part2.18">3.3.2</a>, <a href="#rfc.xref.Part2.23">5.3</a></li>
    3660                         <li><em>Section 4.3.7</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.24">5.3</a></li>
     3672                        <li><em>Section 4.3.6</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.13">3.3</a>, <a href="#rfc.xref.Part2.15">3.3.1</a>, <a href="#rfc.xref.Part2.18">3.3.2</a>, <a href="#rfc.xref.Part2.23">5.3.3</a></li>
     3673                        <li><em>Section 4.3.7</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.24">5.3.4</a></li>
    36613674                        <li><em>Section 5</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.19">4.1.2</a></li>
    36623675                        <li><em>Section 5.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.Part2.31">6.7</a></li>
  • draft-ietf-httpbis/latest/p1-messaging.xml

    r2599 r2600  
    23142314   the method being requested and whether the request is to a proxy.
    23152315</t>   
    2316 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-target"/><iref primary="true" item="Grammar" subitem="origin-form"/><iref primary="true" item="Grammar" subitem="absolute-form"/><iref primary="true" item="Grammar" subitem="authority-form"/><iref primary="true" item="Grammar" subitem="asterisk-form"/>
     2316<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-target"/><iref primary="false" item="Grammar" subitem="origin-form"/><iref primary="false" item="Grammar" subitem="absolute-form"/><iref primary="false" item="Grammar" subitem="authority-form"/><iref primary="false" item="Grammar" subitem="asterisk-form"/>
    23172317  <x:ref>request-target</x:ref> = <x:ref>origin-form</x:ref>
    23182318                 / <x:ref>absolute-form</x:ref>
    23192319                 / <x:ref>authority-form</x:ref>
    23202320                 / <x:ref>asterisk-form</x:ref>
    2321 
     2321</artwork></figure>
     2322
     2323<section title="origin-form" anchor="origin-form">
     2324   <iref item="origin-form (of request-target)"/>
     2325<t>
     2326   The most common form of request-target is the <x:dfn>origin-form</x:dfn>.
     2327</t>
     2328<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="origin-form"/>
    23222329  <x:ref>origin-form</x:ref>    = <x:ref>absolute-path</x:ref> [ "?" <x:ref>query</x:ref> ]
    2323   <x:ref>absolute-form</x:ref>  = <x:ref>absolute-URI</x:ref>
    2324   <x:ref>authority-form</x:ref> = <x:ref>authority</x:ref>
    2325   <x:ref>asterisk-form</x:ref>  = "*"
    2326 </artwork></figure>
    2327 <t anchor="origin-form"><iref item="origin-form (of request-target)"/>
    2328   <x:h>origin-form</x:h>
    2329 </t>
    2330 <t>
    2331    The most common form of request-target is the <x:dfn>origin-form</x:dfn>.
     2330</artwork></figure>
     2331<t>
    23322332   When making a request directly to an origin server, other than a CONNECT
    23332333   or server-wide OPTIONS request (as detailed below),
    23342334   a client &MUST; send only the absolute path and query components of
    23352335   the target URI as the request-target.
    2336    If the target URI's path component is empty, then the client &MUST; send
     2336   If the target URI's path component is empty, the client &MUST; send
    23372337   "/" as the path within the origin-form of request-target.
    23382338   A <x:ref>Host</x:ref> header field is also sent, as defined in
     
    23572357   followed by the remainder of the request message.
    23582358</t>
    2359 <t anchor="absolute-form"><iref item="absolute-form (of request-target)"/>
    2360   <x:h>absolute-form</x:h>
    2361 </t>
     2359</section>
     2360
     2361<section title="absolute-form" anchor="absolute-form">
     2362   <iref item="absolute-form (of request-target)"/>
    23622363<t>
    23632364   When making a request to a proxy, other than a CONNECT or server-wide
    23642365   OPTIONS request (as detailed below), a client &MUST; send the target URI
    23652366   in <x:dfn>absolute-form</x:dfn> as the request-target.
     2367</t>
     2368<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="absolute-form"/>
     2369  <x:ref>absolute-form</x:ref>  = <x:ref>absolute-URI</x:ref>
     2370</artwork></figure>
     2371<t>
    23662372   The proxy is requested to either service that request from a valid cache,
    23672373   if possible, or make the same request on the client's behalf to either
     
    23822388   to proxies.
    23832389</t>
    2384 <t anchor="authority-form"><iref item="authority-form (of request-target)"/>
    2385   <x:h>authority-form</x:h>
    2386 </t>
     2390</section>
     2391
     2392<section title="authority-form" anchor="authority-form">
     2393   <iref item="authority-form (of request-target)"/>
    23872394<t>
    23882395   The <x:dfn>authority-form</x:dfn> of request-target is only used for
    2389    CONNECT requests (&CONNECT;). When making a CONNECT request to establish a
     2396   CONNECT requests (&CONNECT;).
     2397</t>
     2398<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="authority-form"/>
     2399  <x:ref>authority-form</x:ref> = <x:ref>authority</x:ref>
     2400</artwork></figure>
     2401<t>
     2402   When making a CONNECT request to establish a
    23902403   tunnel through one or more proxies, a client &MUST; send only the target
    23912404   URI's authority component (excluding any userinfo and its "@" delimiter) as
     
    23952408CONNECT www.example.com:80 HTTP/1.1
    23962409</artwork></figure>
    2397 <t anchor="asterisk-form"><iref item="asterisk-form (of request-target)"/>
    2398   <x:h>asterisk-form</x:h>
    2399 </t>
     2410</section>
     2411
     2412<section title="asterisk-form" anchor="asterisk-form">
     2413   <iref item="asterisk-form (of request-target)"/>
    24002414<t>
    24012415   The <x:dfn>asterisk-form</x:dfn> of request-target is only used for a server-wide
    2402    OPTIONS request (&OPTIONS;).  When a client wishes to request OPTIONS
     2416   OPTIONS request (&OPTIONS;).
     2417</t>
     2418<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="asterisk-form"/>
     2419  <x:ref>asterisk-form</x:ref>  = "*"
     2420</artwork></figure>
     2421<t>
     2422   When a client wishes to request OPTIONS
    24032423   for the server as a whole, as opposed to a specific named resource of
    24042424   that server, the client &MUST; send only "*" (%x2A) as the request-target.
     
    24292449</postamble>
    24302450</figure>
     2451</section>
    24312452</section>
    24322453
Note: See TracChangeset for help on using the changeset viewer.