Changeset 1831
- Timestamp:
- 19/08/12 09:46:53 (9 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/httpbis.abnf
r1815 r1831 4 4 5 5 Accept = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [ OWS ( media-range [ accept-params ] ) ] ) ] 6 Accept-Charset = *( "," OWS ) ( ( charset / "*" ) [ OWS ";" OWS "q=" qvalue ] ) *( OWS "," [ OWS ( ( charset / "*" ) [ OWS ";" OWS "q=" qvalue] ) ] )7 Accept-Encoding = [ ( "," / ( codings [ OWS ";" OWS "q=" qvalue ] ) ) *( OWS "," [ OWS ( codings [ OWS ";" OWS "q=" qvalue] ) ] ) ]8 Accept-Language = *( "," OWS ) ( language-range [ OWS ";" OWS "q=" qvalue ] ) *( OWS "," [ OWS ( language-range [ OWS ";" OWS "q=" qvalue] ) ] )6 Accept-Charset = *( "," OWS ) ( ( charset / "*" ) [ weight ] ) *( OWS "," [ OWS ( ( charset / "*" ) [ weight ] ) ] ) 7 Accept-Encoding = [ ( "," / ( codings [ weight ] ) ) *( OWS "," [ OWS ( codings [ weight ] ) ] ) ] 8 Accept-Language = *( "," OWS ) ( language-range [ weight ] ) *( OWS "," [ OWS ( language-range [ weight ] ) ] ) 9 9 Accept-Ranges = acceptable-ranges 10 10 Age = delta-seconds … … 64 64 absolute-form = absolute-URI 65 65 accept-ext = OWS ";" OWS token [ "=" word ] 66 accept-params = OWS ";" OWS "q=" qvalue*accept-ext66 accept-params = weight *accept-ext 67 67 acceptable-ranges = ( *( "," OWS ) range-unit *( OWS "," [ OWS range-unit ] ) ) / "none" 68 68 asctime-date = day-name SP date3 SP time-of-day SP year … … 194 194 qvalue = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 195 195 range-unit = bytes-unit / other-range-unit 196 rank = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 196 197 reason-phrase = *( HTAB / SP / VCHAR / obs-text ) 197 198 received-by = ( uri-host [ ":" port ] ) / pseudonym … … 210 211 suffix-byte-range-spec = "-" suffix-length 211 212 suffix-length = 1*DIGIT 212 t-codings = "trailers" / ( transfer-extension [ te-params ] ) 213 t-codings = "trailers" / ( transfer-coding [ t-ranking ] ) 214 t-ranking = OWS ";" OWS "q=" rank 213 215 tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA 214 te-ext = OWS ";" OWS token [ "=" word ]215 te-params = OWS ";" OWS "q=" qvalue *te-ext216 216 time-of-day = hour ":" minute ":" second 217 217 token = 1*tchar … … 231 231 weak = %x57.2F ; W/ 232 232 233 weight = OWS ";" OWS "q=" qvalue 233 234 word = token / quoted-string 234 235 year = 4DIGIT -
draft-ietf-httpbis/latest/p1-messaging.html
r1830 r1831 626 626 </ul> 627 627 </li> 628 <li><a href="#rfc.section.4.3">4.3</a> <a href="#header.te">TE</a><ul> 629 <li><a href="#rfc.section.4.3.1">4.3.1</a> <a href="#quality.values">Quality Values</a></li> 630 </ul> 631 </li> 628 <li><a href="#rfc.section.4.3">4.3</a> <a href="#header.te">TE</a></li> 632 629 <li><a href="#rfc.section.4.4">4.4</a> <a href="#header.trailer">Trailer</a></li> 633 630 </ul> … … 1622 1619 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="compression.codings" href="#compression.codings">Compression Codings</a></h2> 1623 1620 <p id="rfc.section.4.2.p.1">The codings defined below can be used to compress the payload of a message.</p> 1624 <div class="note" id="rfc.section.4.2.p.2">1625 <p> <b>Note:</b> Use of program names for the identification of encoding formats is not desirable and is discouraged for future encodings.1626 Their use here is representative of historical practice, not good design.1627 </p>1628 </div>1629 <div class="note" id="rfc.section.4.2.p.3">1630 <p> <b>Note:</b> For compatibility with previous implementations of HTTP, applications <em class="bcp14">SHOULD</em> consider "x-gzip" and "x-compress" to be equivalent to "gzip" and "compress" respectively.1631 </p>1632 </div>1633 1621 <div id="rfc.iref.c.9"></div> 1634 1622 <div id="rfc.iref.c.10"></div> 1635 1623 <h3 id="rfc.section.4.2.1"><a href="#rfc.section.4.2.1">4.2.1</a> <a id="compress.coding" href="#compress.coding">Compress Coding</a></h3> 1636 1624 <p id="rfc.section.4.2.1.p.1">The "compress" format is produced by the common UNIX file compression program "compress". This format is an adaptive Lempel-Ziv-Welch 1637 coding (LZW). 1625 coding (LZW). Recipients <em class="bcp14">SHOULD</em> consider "x-compress" to be equivalent to "compress". 1638 1626 </p> 1639 1627 <div id="rfc.iref.d.2"></div> … … 1649 1637 <div id="rfc.iref.c.12"></div> 1650 1638 <h3 id="rfc.section.4.2.3"><a href="#rfc.section.4.2.3">4.2.3</a> <a id="gzip.coding" href="#gzip.coding">Gzip Coding</a></h3> 1651 <p id="rfc.section.4.2.3.p.1">The "gzip" format is produced by the file compression program "gzip" (GNU zip), as described in <a href="#RFC1952" id="rfc.xref.RFC1952.1"><cite title="GZIP file format specification version 4.3">[RFC1952]</cite></a>. This format is a Lempel-Ziv coding (LZ77) with a 32 bit CRC. 1639 <p id="rfc.section.4.2.3.p.1">The "gzip" format is produced by the file compression program "gzip" (GNU zip), as described in <a href="#RFC1952" id="rfc.xref.RFC1952.1"><cite title="GZIP file format specification version 4.3">[RFC1952]</cite></a>. This format is a Lempel-Ziv coding (LZ77) with a 32 bit CRC. Recipients <em class="bcp14">SHOULD</em> consider "x-gzip" to be equivalent to "gzip". 1652 1640 </p> 1653 1641 <div id="rfc.iref.t.5"></div> 1654 1642 <div id="rfc.iref.h.8"></div> 1655 1643 <h2 id="rfc.section.4.3"><a href="#rfc.section.4.3">4.3</a> <a id="header.te" href="#header.te">TE</a></h2> 1656 <p id="rfc.section.4.3.p.1">The "TE" header field in dicates what extension transfer-codings the client is willing to accept in the response, and whether1657 or not it is willing to accept trailer fields in a chunked transfer-coding.1658 </p> 1659 <p id="rfc.section.4.3.p.2"> Its value consists of the keyword "trailers" and/or a comma-separated list of extension transfer-coding names with optional1660 accept parameters (as described in <a href="#transfer.codings" title="Transfer Codings">Section 4</a>).1644 <p id="rfc.section.4.3.p.1">The "TE" header field in a request indicates what transfer-codings, besides "chunked", the client is willing to accept in 1645 response, and whether or not the client is willing to accept trailer fields in a chunked transfer-coding. 1646 </p> 1647 <p id="rfc.section.4.3.p.2">The TE field-value consists of a comma-separated list of transfer-coding names, each allowing for optional parameters (as 1648 described in <a href="#transfer.codings" title="Transfer Codings">Section 4</a>), and/or the keyword "trailers". Clients <em class="bcp14">MUST NOT</em> send the chunked transfer-coding name in TE; chunked is always acceptable for HTTP/1.1 recipients. 1661 1649 </p> 1662 1650 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.74"></span><span id="rfc.iref.g.75"></span><span id="rfc.iref.g.76"></span><span id="rfc.iref.g.77"></span> <a href="#header.te" class="smpl">TE</a> = #<a href="#header.te" class="smpl">t-codings</a> 1663 <a href="#header.te" class="smpl">t-codings</a> = "trailers" / ( <a href="#transfer.codings" class="smpl">transfer-extension</a> [ <a href="#header.te" class="smpl">te-params</a> ] ) 1664 <a href="#header.te" class="smpl">te-params</a> = <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> "q=" <a href="#quality.values" class="smpl">qvalue</a> *( <a href="#header.te" class="smpl">te-ext</a> ) 1665 <a href="#header.te" class="smpl">te-ext</a> = <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#rule.token.separators" class="smpl">token</a> [ "=" <a href="#rule.token.separators" class="smpl">word</a> ] 1666 </pre><p id="rfc.section.4.3.p.4">The presence of the keyword "trailers" indicates that the client is willing to accept trailer fields in a chunked transfer-coding, 1667 as defined in <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 4.1</a>. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding. 1668 </p> 1669 <p id="rfc.section.4.3.p.5">Examples of its use are:</p> 1651 <a href="#header.te" class="smpl">t-codings</a> = "trailers" / ( <a href="#transfer.codings" class="smpl">transfer-coding</a> [ <a href="#header.te" class="smpl">t-ranking</a> ] ) 1652 <a href="#header.te" class="smpl">t-ranking</a> = <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> "q=" <a href="#header.te" class="smpl">rank</a> 1653 <a href="#header.te" class="smpl">rank</a> = ( "0" [ "." 0*3<a href="#core.rules" class="smpl">DIGIT</a> ] ) 1654 / ( "1" [ "." 0*3("0") ] ) 1655 </pre><p id="rfc.section.4.3.p.4">Three examples of TE use are below.</p> 1670 1656 <div id="rfc.figure.u.35"></div><pre class="text"> TE: deflate 1671 1657 TE: 1672 1658 TE: trailers, deflate;q=0.5 1673 </pre><p id="rfc.section.4.3.p.7">The TE header field only applies to the immediate connection. Therefore, the keyword <em class="bcp14">MUST</em> be supplied within a <a href="#header.connection" class="smpl">Connection</a> header field (<a href="#header.connection" id="rfc.xref.header.connection.4" title="Connection">Section 6.1</a>) whenever TE is present in an HTTP/1.1 message. 1674 </p> 1675 <p id="rfc.section.4.3.p.8">A server tests whether a transfer-coding is acceptable, according to a TE field, using these rules: </p> 1676 <ol> 1677 <li> 1678 <p>The "chunked" transfer-coding is always acceptable. If the keyword "trailers" is listed, the client indicates that it is willing 1679 to accept trailer fields in the chunked response on behalf of itself and any downstream clients. The implication is that, 1680 if given, the client is stating that either all downstream clients are willing to accept trailer fields in the forwarded response, 1681 or that it will attempt to buffer the response on behalf of downstream recipients. 1682 </p> 1683 <p> <b>Note:</b> HTTP/1.1 does not define any means to limit the size of a chunked response such that a client can be assured of buffering 1684 the entire response. 1685 </p> 1686 </li> 1687 <li> 1688 <p>If the transfer-coding being tested is one of the transfer-codings listed in the TE field, then it is acceptable unless it 1689 is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 4.3.1</a>, a qvalue of 0 means "not acceptable".) 1690 </p> 1691 </li> 1692 <li> 1693 <p>If multiple transfer-codings are acceptable, then the acceptable transfer-coding with the highest non-zero qvalue is preferred. 1694 The "chunked" transfer-coding always has a qvalue of 1. 1695 </p> 1696 </li> 1697 </ol> 1698 <p id="rfc.section.4.3.p.9">If the TE field-value is empty or if no TE field is present, the only acceptable transfer-coding is "chunked". A message with 1659 </pre><p id="rfc.section.4.3.p.6">The presence of the keyword "trailers" indicates that the client is willing to accept trailer fields in a chunked transfer-coding, 1660 as defined in <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 4.1</a>, on behalf of itself and any downstream clients. For chained requests, this implies that either: (a) all downstream clients 1661 are willing to accept trailer fields in the forwarded response; or, (b) the client will attempt to buffer the response on 1662 behalf of downstream recipients. Note that HTTP/1.1 does not define any means to limit the size of a chunked response such 1663 that a client can be assured of buffering the entire response. 1664 </p> 1665 <p id="rfc.section.4.3.p.7">When multiple transfer-codings are acceptable, the client <em class="bcp14">MAY</em> rank the codings by preference using a "q" parameter (similar to the qvalues used in content negotiation fields, <a href="p2-semantics.html#quality.values" title="Quality Values">Section 8.3</a> of <a href="#Part2" id="rfc.xref.Part2.11"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>). The rank value is a real number in the range 0 through 1, where 0.001 is the least preferred and 1 is the most preferred; 1666 a value of 0 means "not acceptable". 1667 </p> 1668 <p id="rfc.section.4.3.p.8">If the TE field-value is empty or if no TE field is present, the only acceptable transfer-coding is "chunked". A message with 1699 1669 no transfer-coding is always acceptable. 1700 1670 </p> 1701 <h3 id="rfc.section.4.3.1"><a href="#rfc.section.4.3.1">4.3.1</a> <a id="quality.values" href="#quality.values">Quality Values</a></h3> 1702 <p id="rfc.section.4.3.1.p.1">Both transfer codings (<a href="#header.te" class="smpl">TE</a> request header field, <a href="#header.te" id="rfc.xref.header.te.3" title="TE">Section 4.3</a>) and content negotiation (<a href="p2-semantics.html#content.negotiation" title="Content Negotiation">Section 8</a> of <a href="#Part2" id="rfc.xref.Part2.11"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) use short "floating point" numbers to indicate the relative importance ("weight") of various negotiable parameters. A weight 1703 is normalized to a real number in the range 0 through 1, where 0 is the minimum and 1 the maximum value. If a parameter has 1704 a quality value of 0, then content with this parameter is "not acceptable" for the client. HTTP/1.1 applications <em class="bcp14">MUST NOT</em> generate more than three digits after the decimal point. User configuration of these values <em class="bcp14">SHOULD</em> also be limited in this fashion. 1705 </p> 1706 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.78"></span> <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." 0*3<a href="#core.rules" class="smpl">DIGIT</a> ] ) 1707 / ( "1" [ "." 0*3("0") ] ) 1708 </pre><div class="note" id="rfc.section.4.3.1.p.3"> 1709 <p> <b>Note:</b> "Quality values" is a misnomer, since these values merely represent relative degradation in desired quality. 1710 </p> 1711 </div> 1671 <p id="rfc.section.4.3.p.9">Since the TE header field only applies to the immediate connection, a sender of TE <em class="bcp14">MUST</em> also send a "TE" connection option within the <a href="#header.connection" class="smpl">Connection</a> header field (<a href="#header.connection" id="rfc.xref.header.connection.4" title="Connection">Section 6.1</a>) in order to prevent the TE field from being forwarded by intermediaries that do not support its semantics. 1672 </p> 1712 1673 <div id="rfc.iref.t.6"></div> 1713 1674 <div id="rfc.iref.h.9"></div> … … 1716 1677 chunked transfer-coding. 1717 1678 </p> 1718 <div id="rfc.figure.u.3 7"></div><pre class="inline"><span id="rfc.iref.g.79"></span> <a href="#header.trailer" class="smpl">Trailer</a> = 1#<a href="#header.fields" class="smpl">field-name</a>1679 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.78"></span> <a href="#header.trailer" class="smpl">Trailer</a> = 1#<a href="#header.fields" class="smpl">field-name</a> 1719 1680 </pre><p id="rfc.section.4.4.p.3">An HTTP/1.1 message <em class="bcp14">SHOULD</em> include a Trailer header field in a message using chunked transfer-coding with a non-empty trailer. Doing so allows the recipient 1720 1681 to know which header fields to expect in the trailer. … … 1767 1728 both the method being requested and whether the request is to a proxy. 1768 1729 </p> 1769 <div id="rfc.figure.u.3 8"></div><pre class="inline"><span id="rfc.iref.g.80"></span><span id="rfc.iref.g.81"></span><span id="rfc.iref.g.82"></span><span id="rfc.iref.g.83"></span><span id="rfc.iref.g.84"></span> <a href="#request-target" class="smpl">request-target</a> = <a href="#origin-form" class="smpl">origin-form</a>1730 <div id="rfc.figure.u.37"></div><pre class="inline"><span id="rfc.iref.g.79"></span><span id="rfc.iref.g.80"></span><span id="rfc.iref.g.81"></span><span id="rfc.iref.g.82"></span><span id="rfc.iref.g.83"></span> <a href="#request-target" class="smpl">request-target</a> = <a href="#origin-form" class="smpl">origin-form</a> 1770 1731 / <a href="#absolute-form" class="smpl">absolute-form</a> 1771 1732 / <a href="#authority-form" class="smpl">authority-form</a> … … 1783 1744 </div> 1784 1745 <p id="rfc.section.5.3.p.4">For example, a client wishing to retrieve a representation of the resource identified as</p> 1785 <div id="rfc.figure.u.3 9"></div><pre class="text">http://www.example.org/where?q=now1746 <div id="rfc.figure.u.38"></div><pre class="text">http://www.example.org/where?q=now 1786 1747 </pre><p id="rfc.section.5.3.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 1787 1748 lines: 1788 1749 </p> 1789 <div id="rfc.figure.u. 40"></div><pre class="text2">GET /where?q=now HTTP/1.11750 <div id="rfc.figure.u.39"></div><pre class="text2">GET /where?q=now HTTP/1.1 1790 1751 Host: www.example.org 1791 1752 </pre><p id="rfc.section.5.3.p.8">followed by the remainder of the request message.</p> … … 1797 1758 </div> 1798 1759 <p id="rfc.section.5.3.p.10">An example absolute-form of request-line would be:</p> 1799 <div id="rfc.figure.u.4 1"></div><pre class="text2">GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.11760 <div id="rfc.figure.u.40"></div><pre class="text2">GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 1800 1761 </pre><p id="rfc.section.5.3.p.12">To allow for transition to the absolute-form for all requests in some future version of HTTP, HTTP/1.1 servers <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. 1801 1762 </p> … … 1804 1765 </p> 1805 1766 </div> 1806 <div id="rfc.figure.u.4 2"></div><pre class="text2">CONNECT www.example.com:80 HTTP/1.11767 <div id="rfc.figure.u.41"></div><pre class="text2">CONNECT www.example.com:80 HTTP/1.1 1807 1768 </pre><div id="asterisk-form"> 1808 1769 <p id="rfc.section.5.3.p.15"><span id="rfc.iref.a.4"></span> The asterisk-form of request-target is only used for a server-wide OPTIONS request (<a href="p2-semantics.html#OPTIONS" title="OPTIONS">Section 2.3.1</a> of <a href="#Part2" id="rfc.xref.Part2.14"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[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, … … 1810 1771 </p> 1811 1772 </div> 1812 <div id="rfc.figure.u.4 3"></div><pre class="text2">OPTIONS * HTTP/1.11773 <div id="rfc.figure.u.42"></div><pre class="text2">OPTIONS * HTTP/1.1 1813 1774 </pre><p id="rfc.section.5.3.p.17">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 1814 1775 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. 1815 1776 </p> 1816 <div id="rfc.figure.u.4 4"></div>1777 <div id="rfc.figure.u.43"></div> 1817 1778 <p>For example, the request</p><pre class="text2">OPTIONS http://www.example.org:8001 HTTP/1.1 1818 </pre><div id="rfc.figure.u.4 5"></div>1779 </pre><div id="rfc.figure.u.44"></div> 1819 1780 <p>would be forwarded by the final proxy as</p><pre class="text2">OPTIONS * HTTP/1.1 1820 1781 Host: www.example.org:8001 … … 1827 1788 is critical information for handling a request, it <em class="bcp14">SHOULD</em> be sent as the first header field following the request-line. 1828 1789 </p> 1829 <div id="rfc.figure.u.4 6"></div><pre class="inline"><span id="rfc.iref.g.85"></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.8.1</a>1790 <div id="rfc.figure.u.45"></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 2.8.1</a> 1830 1791 </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 the Host 1831 1792 field-value <em class="bcp14">MUST</em> be identical to that authority component after excluding any userinfo (<a href="#http.uri" title="http URI scheme">Section 2.8.1</a>). If the authority component is missing or undefined for the target URI, then the Host header field <em class="bcp14">MUST</em> be sent with an empty field-value. 1832 1793 </p> 1833 1794 <p id="rfc.section.5.4.p.4">For example, a GET request to the origin server for <http://www.example.org/pub/WWW/> would begin with:</p> 1834 <div id="rfc.figure.u.4 7"></div><pre class="text2">GET /pub/WWW/ HTTP/1.11795 <div id="rfc.figure.u.46"></div><pre class="text2">GET /pub/WWW/ HTTP/1.1 1835 1796 Host: www.example.org 1836 1797 </pre><p id="rfc.section.5.4.p.6">The Host header field <em class="bcp14">MUST</em> be sent in an HTTP/1.1 request even if the request-target is in the absolute-form, since this allows the Host information … … 1871 1832 the scheme, "://", authority, and combined path and query component. 1872 1833 </p> 1873 <div id="rfc.figure.u.4 8"></div>1834 <div id="rfc.figure.u.47"></div> 1874 1835 <p>Example 1: the following message received over an insecure TCP connection</p> <pre class="text">GET /pub/WWW/TheProject.html HTTP/1.1 1875 1836 Host: www.example.org:8080 1837 </pre> <div id="rfc.figure.u.48"></div> 1838 <p>has an effective request URI of</p> <pre class="text">http://www.example.org:8080/pub/WWW/TheProject.html 1876 1839 </pre> <div id="rfc.figure.u.49"></div> 1877 <p>has an effective request URI of</p> <pre class="text">http://www.example.org:8080/pub/WWW/TheProject.html1878 </pre> <div id="rfc.figure.u.50"></div>1879 1840 <p>Example 2: the following message received over an SSL/TLS-secured TCP connection</p> <pre class="text">OPTIONS * HTTP/1.1 1880 1841 Host: www.example.org 1881 </pre> <div id="rfc.figure.u.5 1"></div>1842 </pre> <div id="rfc.figure.u.50"></div> 1882 1843 <p>has an effective request URI of</p> <pre class="text">https://www.example.org 1883 1844 </pre> <p id="rfc.section.5.5.p.12">An origin server that does not allow resources to differ by requested host <em class="bcp14">MAY</em> ignore the <a href="#header.host" class="smpl">Host</a> field-value and instead replace it with a configured server name when constructing the effective request URI. … … 1994 1955 </p> 1995 1956 <p id="rfc.section.6.1.p.2">The Connection header field's value has the following grammar:</p> 1996 <div id="rfc.figure.u.5 2"></div><pre class="inline"><span id="rfc.iref.g.86"></span><span id="rfc.iref.g.87"></span> <a href="#header.connection" class="smpl">Connection</a> = 1#<a href="#header.connection" class="smpl">connection-option</a>1957 <div id="rfc.figure.u.51"></div><pre class="inline"><span id="rfc.iref.g.85"></span><span id="rfc.iref.g.86"></span> <a href="#header.connection" class="smpl">Connection</a> = 1#<a href="#header.connection" class="smpl">connection-option</a> 1997 1958 <a href="#header.connection" class="smpl">connection-option</a> = <a href="#rule.token.separators" class="smpl">token</a> 1998 1959 </pre><p id="rfc.section.6.1.p.4">Connection options are compared case-insensitively.</p> … … 2019 1980 of the response. For example, 2020 1981 </p> 2021 <div id="rfc.figure.u.5 3"></div><pre class="text"> Connection: close1982 <div id="rfc.figure.u.52"></div><pre class="text"> Connection: close 2022 1983 </pre><p id="rfc.section.6.1.p.11">in either the request or the response header fields indicates that the connection <em class="bcp14">SHOULD NOT</em> be considered "persistent" (<a href="#persistent.connections" title="Persistent Connections">Section 6.3</a>) after the current request/response is complete. 2023 1984 </p> … … 2034 1995 of all senders along the request/response chain. 2035 1996 </p> 2036 <div id="rfc.figure.u.5 4"></div><pre class="inline"><span id="rfc.iref.g.88"></span><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> <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>1997 <div id="rfc.figure.u.53"></div><pre class="inline"><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><span id="rfc.iref.g.91"></span><span id="rfc.iref.g.92"></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> 2037 1998 [ <a href="#rule.whitespace" class="smpl">RWS</a> <a href="#rule.comment" class="smpl">comment</a> ] ) 2038 1999 <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> … … 2055 2016 server at www.example.com. The request received by www.example.com would then have the following Via header field: 2056 2017 </p> 2057 <div id="rfc.figure.u.5 5"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1)2018 <div id="rfc.figure.u.54"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1) 2058 2019 </pre><p id="rfc.section.6.2.p.9">A proxy or gateway 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, 2059 2020 the received-by host of any host behind the firewall <em class="bcp14">SHOULD</em> be replaced by an appropriate pseudonym for that host. … … 2062 2023 values. For example, 2063 2024 </p> 2064 <div id="rfc.figure.u.5 6"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy2025 <div id="rfc.figure.u.55"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy 2065 2026 </pre><p id="rfc.section.6.2.p.12">could be collapsed to</p> 2066 <div id="rfc.figure.u.5 7"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy2027 <div id="rfc.figure.u.56"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy 2067 2028 </pre><p id="rfc.section.6.2.p.14">Senders <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 2068 2029 by pseudonyms. Senders <em class="bcp14">MUST NOT</em> combine entries which have different received-protocol values. … … 2226 2187 server chooses to switch protocols. Servers can use it to indicate what protocols they are willing to switch to. 2227 2188 </p> 2228 <div id="rfc.figure.u.5 8"></div><pre class="inline"><span id="rfc.iref.g.94"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = 1#<a href="#header.upgrade" class="smpl">protocol</a>2189 <div id="rfc.figure.u.57"></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> 2229 2190 2230 2191 <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>] … … 2232 2193 <a href="#header.upgrade" class="smpl">protocol-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 2233 2194 </pre><p id="rfc.section.6.5.p.3">For example,</p> 2234 <div id="rfc.figure.u.5 9"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x112195 <div id="rfc.figure.u.58"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 2235 2196 </pre><p id="rfc.section.6.5.p.5">The Upgrade header field is intended to provide a simple mechanism for transitioning from HTTP/1.1 to some other, incompatible 2236 2197 protocol. It does so by allowing the client to advertise its desire to use another protocol, such as a later version of HTTP … … 2301 2262 <td class="left">http</td> 2302 2263 <td class="left">standard</td> 2303 <td class="left"> <a href="#header.te" id="rfc.xref.header.te. 4" title="TE">Section 4.3</a>2264 <td class="left"> <a href="#header.te" id="rfc.xref.header.te.3" title="TE">Section 4.3</a> 2304 2265 </td> 2305 2266 </tr> … … 2512 2473 <li>Pointer to specification text</li> 2513 2474 </ul> 2514 <p id="rfc.section.7.4.p.3">Names of transfer codings <em class="bcp14">MUST NOT</em> overlap with names of content codings (<a href="p2-semantics.html#content.codings" title="Content Codings">Section 5.4</a> of <a href="#Part2" id="rfc.xref.Part2.28"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) unless the encoding transformation is identical, as it is the case for the compression codings defined in <a href="#compression.codings" title="Compression Codings">Section 4.2</a>. 2515 </p> 2516 <p id="rfc.section.7.4.p.4">Values to be added to this name space require IETF Review (see <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a> of <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>), and <em class="bcp14">MUST</em> conform to the purpose of transfer coding defined in this section. 2475 <p id="rfc.section.7.4.p.3">Names of transfer codings <em class="bcp14">MUST NOT</em> overlap with names of content codings (<a href="p2-semantics.html#content.codings" title="Content Codings">Section 5.4</a> of <a href="#Part2" id="rfc.xref.Part2.28"><cite title="HTTP/1.1, part 2: Semantics and Payloads">[Part2]</cite></a>) unless the encoding transformation is identical, as is the case for the compression codings defined in <a href="#compression.codings" title="Compression Codings">Section 4.2</a>. 2476 </p> 2477 <p id="rfc.section.7.4.p.4">Values to be added to this name space require IETF Review (see <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a> of <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>), and <em class="bcp14">MUST</em> conform to the purpose of transfer coding defined in this section. Use of program names for the identification of encoding 2478 formats is not desirable and is discouraged for future encodings. 2517 2479 </p> 2518 2480 <p id="rfc.section.7.4.p.5">The registry itself is maintained at <<a href="http://www.iana.org/assignments/http-parameters">http://www.iana.org/assignments/http-parameters</a>>. … … 3016 2978 indicating at least <n> and at most <m> elements, each separated by a single comma (",") and optional whitespace (OWS). 3017 2979 </p> 3018 <div id="rfc.figure.u. 60"></div>2980 <div id="rfc.figure.u.59"></div> 3019 2981 <p>Thus,</p><pre class="text"> 1#element => element *( OWS "," OWS element ) 2982 </pre><div id="rfc.figure.u.60"></div> 2983 <p>and:</p><pre class="text"> #element => [ 1#element ] 3020 2984 </pre><div id="rfc.figure.u.61"></div> 3021 <p>and:</p><pre class="text"> #element => [ 1#element ]3022 </pre><div id="rfc.figure.u.62"></div>3023 2985 <p>and for n >= 1 and m > 1:</p><pre class="text"> <n>#<m>element => element <n-1>*<m-1>( OWS "," OWS element ) 3024 2986 </pre><p id="rfc.section.B.p.6">For compatibility with legacy list rules, recipients <em class="bcp14">SHOULD</em> accept empty list elements. In other words, consumers would follow the list productions: 3025 2987 </p> 3026 <div id="rfc.figure.u.6 3"></div><pre class="text"> #element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ]2988 <div id="rfc.figure.u.62"></div><pre class="text"> #element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ] 3027 2989 3028 2990 1#element => *( "," OWS ) element *( OWS "," [ OWS element ] ) 3029 2991 </pre><p id="rfc.section.B.p.8">Note that empty elements do not contribute to the count of elements present, though.</p> 3030 2992 <p id="rfc.section.B.p.9">For example, given these ABNF productions:</p> 3031 <div id="rfc.figure.u.6 4"></div><pre class="text"> example-list = 1#example-list-elmt2993 <div id="rfc.figure.u.63"></div><pre class="text"> example-list = 1#example-list-elmt 3032 2994 example-list-elmt = token ; see <a href="#field.components" title="Field value components">Section 3.2.4</a> 3033 2995 </pre><p id="rfc.section.B.p.11">Then these are valid values for example-list (not including the double quotes, which are present for delimitation only):</p> 3034 <div id="rfc.figure.u.6 5"></div><pre class="text"> "foo,bar"2996 <div id="rfc.figure.u.64"></div><pre class="text"> "foo,bar" 3035 2997 "foo ,bar," 3036 2998 "foo , ,bar,charlie " 3037 2999 </pre><p id="rfc.section.B.p.13">But these values would be invalid, as at least one non-empty element is required:</p> 3038 <div id="rfc.figure.u.6 6"></div><pre class="text"> ""3000 <div id="rfc.figure.u.65"></div><pre class="text"> "" 3039 3001 "," 3040 3002 ", ," … … 3042 3004 </p> 3043 3005 <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> 3044 <div id="rfc.figure.u.6 7"></div> <pre class="inline"><a href="#rule.whitespace" class="smpl">BWS</a> = OWS3006 <div id="rfc.figure.u.66"></div> <pre class="inline"><a href="#rule.whitespace" class="smpl">BWS</a> = OWS 3045 3007 3046 3008 <a href="#header.connection" class="smpl">Connection</a> = *( "," OWS ) connection-option *( OWS "," [ OWS … … 3128 3090 <a href="#chunked.encoding" class="smpl">quoted-str-nf</a> = DQUOTE *( qdtext-nf / quoted-pair ) DQUOTE 3129 3091 <a href="#rule.quoted-string" class="smpl">quoted-string</a> = DQUOTE *( qdtext / quoted-pair ) DQUOTE 3130 <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 3131 3092 3093 <a href="#header.te" class="smpl">rank</a> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 3132 3094 <a href="#status.line" class="smpl">reason-phrase</a> = *( HTAB / SP / VCHAR / obs-text ) 3133 3095 <a href="#header.via" class="smpl">received-by</a> = ( uri-host [ ":" port ] ) / pseudonym … … 3144 3106 <a href="#status.line" class="smpl">status-line</a> = HTTP-version SP status-code SP reason-phrase CRLF 3145 3107 3146 <a href="#header.te" class="smpl">t-codings</a> = "trailers" / ( transfer-extension [ te-params ] ) 3108 <a href="#header.te" class="smpl">t-codings</a> = "trailers" / ( transfer-coding [ t-ranking ] ) 3109 <a href="#header.te" class="smpl">t-ranking</a> = OWS ";" OWS "q=" rank 3147 3110 <a href="#rule.token.separators" class="smpl">tchar</a> = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / 3148 3111 "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA 3149 <a href="#header.te" class="smpl">te-ext</a> = OWS ";" OWS token [ "=" word ]3150 <a href="#header.te" class="smpl">te-params</a> = OWS ";" OWS "q=" qvalue *te-ext3151 3112 <a href="#rule.token.separators" class="smpl">token</a> = 1*tchar 3152 3113 <a href="#chunked.encoding" class="smpl">trailer-part</a> = *( header-field CRLF ) … … 3613 3574 <li><tt>Grammar</tt> 3614 3575 <ul> 3615 <li><tt>absolute-form</tt> <a href="#rfc.iref.g.8 2"><b>5.3</b></a></li>3576 <li><tt>absolute-form</tt> <a href="#rfc.iref.g.81"><b>5.3</b></a></li> 3616 3577 <li><tt>absolute-URI</tt> <a href="#rfc.iref.g.17"><b>2.8</b></a></li> 3617 3578 <li>ALPHA <a href="#rfc.iref.g.1"><b>1.2</b></a></li> 3618 <li><tt>asterisk-form</tt> <a href="#rfc.iref.g.8 4"><b>5.3</b></a></li>3579 <li><tt>asterisk-form</tt> <a href="#rfc.iref.g.83"><b>5.3</b></a></li> 3619 3580 <li><tt>attribute</tt> <a href="#rfc.iref.g.58"><b>4</b></a></li> 3620 3581 <li><tt>authority</tt> <a href="#rfc.iref.g.18"><b>2.8</b></a></li> 3621 <li><tt>authority-form</tt> <a href="#rfc.iref.g.8 3"><b>5.3</b></a></li>3582 <li><tt>authority-form</tt> <a href="#rfc.iref.g.82"><b>5.3</b></a></li> 3622 3583 <li><tt>BWS</tt> <a href="#rfc.iref.g.40"><b>3.2.1</b></a></li> 3623 3584 <li><tt>chunk</tt> <a href="#rfc.iref.g.63"><b>4.1</b></a></li> … … 3629 3590 <li><tt>chunked-body</tt> <a href="#rfc.iref.g.62"><b>4.1</b></a></li> 3630 3591 <li><tt>comment</tt> <a href="#rfc.iref.g.49"><b>3.2.4</b></a></li> 3631 <li><tt>Connection</tt> <a href="#rfc.iref.g.8 6"><b>6.1</b></a></li>3632 <li><tt>connection-option</tt> <a href="#rfc.iref.g.8 7"><b>6.1</b></a></li>3592 <li><tt>Connection</tt> <a href="#rfc.iref.g.85"><b>6.1</b></a></li> 3593 <li><tt>connection-option</tt> <a href="#rfc.iref.g.86"><b>6.1</b></a></li> 3633 3594 <li><tt>Content-Length</tt> <a href="#rfc.iref.g.54"><b>3.3.2</b></a></li> 3634 3595 <li>CR <a href="#rfc.iref.g.2"><b>1.2</b></a></li> … … 3645 3606 <li><tt>header-field</tt> <a href="#rfc.iref.g.33"><b>3.2</b></a></li> 3646 3607 <li>HEXDIG <a href="#rfc.iref.g.7"><b>1.2</b></a></li> 3647 <li><tt>Host</tt> <a href="#rfc.iref.g.8 5"><b>5.4</b></a></li>3608 <li><tt>Host</tt> <a href="#rfc.iref.g.84"><b>5.4</b></a></li> 3648 3609 <li>HTAB <a href="#rfc.iref.g.8"><b>1.2</b></a></li> 3649 3610 <li><tt>HTTP-message</tt> <a href="#rfc.iref.g.26"><b>3</b></a></li> … … 3659 3620 <li><tt>obs-text</tt> <a href="#rfc.iref.g.47"><b>3.2.4</b></a></li> 3660 3621 <li>OCTET <a href="#rfc.iref.g.10"><b>1.2</b></a></li> 3661 <li><tt>origin-form</tt> <a href="#rfc.iref.g.8 1"><b>5.3</b></a></li>3622 <li><tt>origin-form</tt> <a href="#rfc.iref.g.80"><b>5.3</b></a></li> 3662 3623 <li><tt>OWS</tt> <a href="#rfc.iref.g.38"><b>3.2.1</b></a></li> 3663 3624 <li><tt>partial-URI</tt> <a href="#rfc.iref.g.23"><b>2.8</b></a></li> 3664 3625 <li><tt>path-absolute</tt> <a href="#rfc.iref.g.19"><b>2.8</b></a></li> 3665 3626 <li><tt>port</tt> <a href="#rfc.iref.g.20"><b>2.8</b></a></li> 3666 <li><tt>protocol-name</tt> <a href="#rfc.iref.g. 90"><b>6.2</b></a></li>3667 <li><tt>protocol-version</tt> <a href="#rfc.iref.g.9 1"><b>6.2</b></a></li>3668 <li><tt>pseudonym</tt> <a href="#rfc.iref.g.9 3"><b>6.2</b></a></li>3627 <li><tt>protocol-name</tt> <a href="#rfc.iref.g.89"><b>6.2</b></a></li> 3628 <li><tt>protocol-version</tt> <a href="#rfc.iref.g.90"><b>6.2</b></a></li> 3629 <li><tt>pseudonym</tt> <a href="#rfc.iref.g.92"><b>6.2</b></a></li> 3669 3630 <li><tt>qdtext</tt> <a href="#rfc.iref.g.46"><b>3.2.4</b></a></li> 3670 3631 <li><tt>qdtext-nf</tt> <a href="#rfc.iref.g.72"><b>4.1</b></a></li> … … 3674 3635 <li><tt>quoted-str-nf</tt> <a href="#rfc.iref.g.71"><b>4.1</b></a></li> 3675 3636 <li><tt>quoted-string</tt> <a href="#rfc.iref.g.45"><b>3.2.4</b></a></li> 3676 <li><tt> qvalue</tt> <a href="#rfc.iref.g.78"><b>4.3.1</b></a></li>3637 <li><tt>rank</tt> <a href="#rfc.iref.g.77"><b>4.3</b></a></li> 3677 3638 <li><tt>reason-phrase</tt> <a href="#rfc.iref.g.32"><b>3.1.2</b></a></li> 3678 <li><tt>received-by</tt> <a href="#rfc.iref.g.9 2"><b>6.2</b></a></li>3679 <li><tt>received-protocol</tt> <a href="#rfc.iref.g.8 9"><b>6.2</b></a></li>3639 <li><tt>received-by</tt> <a href="#rfc.iref.g.91"><b>6.2</b></a></li> 3640 <li><tt>received-protocol</tt> <a href="#rfc.iref.g.88"><b>6.2</b></a></li> 3680 3641 <li><tt>request-line</tt> <a href="#rfc.iref.g.28"><b>3.1.1</b></a></li> 3681 <li><tt>request-target</tt> <a href="#rfc.iref.g. 80"><b>5.3</b></a></li>3642 <li><tt>request-target</tt> <a href="#rfc.iref.g.79"><b>5.3</b></a></li> 3682 3643 <li><tt>RWS</tt> <a href="#rfc.iref.g.39"><b>3.2.1</b></a></li> 3683 3644 <li>SP <a href="#rfc.iref.g.11"><b>1.2</b></a></li> … … 3687 3648 <li><tt>status-line</tt> <a href="#rfc.iref.g.30"><b>3.1.2</b></a></li> 3688 3649 <li><tt>t-codings</tt> <a href="#rfc.iref.g.75"><b>4.3</b></a></li> 3650 <li><tt>t-ranking</tt> <a href="#rfc.iref.g.76"><b>4.3</b></a></li> 3689 3651 <li><tt>tchar</tt> <a href="#rfc.iref.g.43"><b>3.2.4</b></a></li> 3690 3652 <li><tt>TE</tt> <a href="#rfc.iref.g.74"><b>4.3</b></a></li> 3691 <li><tt>te-ext</tt> <a href="#rfc.iref.g.77"><b>4.3</b></a></li>3692 <li><tt>te-params</tt> <a href="#rfc.iref.g.76"><b>4.3</b></a></li>3693 3653 <li><tt>token</tt> <a href="#rfc.iref.g.42"><b>3.2.4</b></a></li> 3694 <li><tt>Trailer</tt> <a href="#rfc.iref.g.7 9"><b>4.4</b></a></li>3654 <li><tt>Trailer</tt> <a href="#rfc.iref.g.78"><b>4.4</b></a></li> 3695 3655 <li><tt>trailer-part</tt> <a href="#rfc.iref.g.70"><b>4.1</b></a></li> 3696 3656 <li><tt>transfer-coding</tt> <a href="#rfc.iref.g.55"><b>4</b></a></li> … … 3698 3658 <li><tt>transfer-extension</tt> <a href="#rfc.iref.g.56"><b>4</b></a></li> 3699 3659 <li><tt>transfer-parameter</tt> <a href="#rfc.iref.g.57"><b>4</b></a></li> 3700 <li><tt>Upgrade</tt> <a href="#rfc.iref.g.9 4"><b>6.5</b></a></li>3660 <li><tt>Upgrade</tt> <a href="#rfc.iref.g.93"><b>6.5</b></a></li> 3701 3661 <li><tt>uri-host</tt> <a href="#rfc.iref.g.22"><b>2.8</b></a></li> 3702 3662 <li><tt>URI-reference</tt> <a href="#rfc.iref.g.16"><b>2.8</b></a></li> 3703 3663 <li><tt>value</tt> <a href="#rfc.iref.g.59"><b>4</b></a></li> 3704 3664 <li>VCHAR <a href="#rfc.iref.g.12"><b>1.2</b></a></li> 3705 <li><tt>Via</tt> <a href="#rfc.iref.g.8 8"><b>6.2</b></a></li>3665 <li><tt>Via</tt> <a href="#rfc.iref.g.87"><b>6.2</b></a></li> 3706 3666 <li><tt>word</tt> <a href="#rfc.iref.g.41"><b>3.2.4</b></a></li> 3707 3667 </ul> … … 3717 3677 <li>Content-Length <a href="#rfc.iref.h.7"><b>3.3.2</b></a>, <a href="#rfc.xref.header.content-length.1">7.1</a></li> 3718 3678 <li>Host <a href="#rfc.xref.header.host.1">5.3</a>, <a href="#rfc.iref.h.11"><b>5.4</b></a>, <a href="#rfc.xref.header.host.2">7.1</a>, <a href="#rfc.xref.header.host.3">A.1.1</a></li> 3719 <li>TE <a href="#rfc.xref.header.te.1">4</a>, <a href="#rfc.xref.header.te.2">4.1</a>, <a href="#rfc.iref.h.8"><b>4.3</b></a>, <a href="#rfc.xref.header.te.3"> 4.3.1</a>, <a href="#rfc.xref.header.te.4">7.1</a></li>3679 <li>TE <a href="#rfc.xref.header.te.1">4</a>, <a href="#rfc.xref.header.te.2">4.1</a>, <a href="#rfc.iref.h.8"><b>4.3</b></a>, <a href="#rfc.xref.header.te.3">7.1</a></li> 3720 3680 <li>Trailer <a href="#rfc.xref.header.trailer.1">4.1</a>, <a href="#rfc.iref.h.9"><b>4.4</b></a>, <a href="#rfc.xref.header.trailer.2">7.1</a></li> 3721 3681 <li>Transfer-Encoding <a href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a href="#rfc.iref.h.6"><b>3.3.1</b></a>, <a href="#rfc.xref.header.transfer-encoding.2">4</a>, <a href="#rfc.xref.header.transfer-encoding.3">7.1</a>, <a href="#rfc.xref.header.transfer-encoding.4">A.1.3</a></li> … … 3767 3727 <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul> 3768 3728 <li><em>Pad1995</em> <a href="#rfc.xref.Pad1995.1">6.3.1</a>, <a href="#Pad1995"><b>10.2</b></a></li> 3769 <li><em>Part2</em> <a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">2.1</a>, <a href="#rfc.xref.Part2.3">2.4</a>, <a href="#rfc.xref.Part2.4">2.8.1</a>, <a href="#rfc.xref.Part2.5">3.1.1</a>, <a href="#rfc.xref.Part2.6">3.1.1</a>, <a href="#rfc.xref.Part2.7">3.1.2</a>, <a href="#rfc.xref.Part2.8">3.2</a>, <a href="#rfc.xref.Part2.9">3.2</a>, <a href="#rfc.xref.Part2.10">3.3.1</a>, <a href="#rfc.xref.Part2.11">4.3 .1</a>, <a href="#rfc.xref.Part2.12">5.1</a>, <a href="#rfc.xref.Part2.13">5.3</a>, <a href="#rfc.xref.Part2.14">5.3</a>, <a href="#rfc.xref.Part2.15">5.6.2</a>, <a href="#rfc.xref.Part2.16">5.6.2</a>, <a href="#rfc.xref.Part2.17">5.6.2</a>, <a href="#rfc.xref.Part2.18">5.6.2</a>, <a href="#rfc.xref.Part2.19">5.6.2</a>, <a href="#rfc.xref.Part2.20">5.6.2</a>, <a href="#rfc.xref.Part2.21">5.7</a>, <a href="#rfc.xref.Part2.22">6.3.2.2</a>, <a href="#rfc.xref.Part2.23">6.3.4</a>, <a href="#rfc.xref.Part2.24">6.4.3</a>, <a href="#rfc.xref.Part2.25">6.4.3</a>, <a href="#rfc.xref.Part2.26">6.4.3</a>, <a href="#rfc.xref.Part2.27">6.5</a>, <a href="#rfc.xref.Part2.28">7.4</a>, <a href="#rfc.xref.Part2.29">8.6</a>, <a href="#rfc.xref.Part2.30">8.6</a>, <a href="#Part2"><b>10.1</b></a><ul>3729 <li><em>Part2</em> <a href="#rfc.xref.Part2.1">1</a>, <a href="#rfc.xref.Part2.2">2.1</a>, <a href="#rfc.xref.Part2.3">2.4</a>, <a href="#rfc.xref.Part2.4">2.8.1</a>, <a href="#rfc.xref.Part2.5">3.1.1</a>, <a href="#rfc.xref.Part2.6">3.1.1</a>, <a href="#rfc.xref.Part2.7">3.1.2</a>, <a href="#rfc.xref.Part2.8">3.2</a>, <a href="#rfc.xref.Part2.9">3.2</a>, <a href="#rfc.xref.Part2.10">3.3.1</a>, <a href="#rfc.xref.Part2.11">4.3</a>, <a href="#rfc.xref.Part2.12">5.1</a>, <a href="#rfc.xref.Part2.13">5.3</a>, <a href="#rfc.xref.Part2.14">5.3</a>, <a href="#rfc.xref.Part2.15">5.6.2</a>, <a href="#rfc.xref.Part2.16">5.6.2</a>, <a href="#rfc.xref.Part2.17">5.6.2</a>, <a href="#rfc.xref.Part2.18">5.6.2</a>, <a href="#rfc.xref.Part2.19">5.6.2</a>, <a href="#rfc.xref.Part2.20">5.6.2</a>, <a href="#rfc.xref.Part2.21">5.7</a>, <a href="#rfc.xref.Part2.22">6.3.2.2</a>, <a href="#rfc.xref.Part2.23">6.3.4</a>, <a href="#rfc.xref.Part2.24">6.4.3</a>, <a href="#rfc.xref.Part2.25">6.4.3</a>, <a href="#rfc.xref.Part2.26">6.4.3</a>, <a href="#rfc.xref.Part2.27">6.5</a>, <a href="#rfc.xref.Part2.28">7.4</a>, <a href="#rfc.xref.Part2.29">8.6</a>, <a href="#rfc.xref.Part2.30">8.6</a>, <a href="#Part2"><b>10.1</b></a><ul> 3770 3730 <li><em>Section 2</em> <a href="#rfc.xref.Part2.5">3.1.1</a></li> 3771 3731 <li><em>Section 2.1.2</em> <a href="#rfc.xref.Part2.22">6.3.2.2</a>, <a href="#rfc.xref.Part2.23">6.3.4</a></li> … … 3781 3741 <li><em>Section 4.6.12</em> <a href="#rfc.xref.Part2.6">3.1.1</a>, <a href="#rfc.xref.Part2.29">8.6</a></li> 3782 3742 <li><em>Section 5.4</em> <a href="#rfc.xref.Part2.10">3.3.1</a>, <a href="#rfc.xref.Part2.28">7.4</a></li> 3783 <li><em>Section 8 </em> <a href="#rfc.xref.Part2.11">4.3.1</a></li>3743 <li><em>Section 8.3</em> <a href="#rfc.xref.Part2.11">4.3</a></li> 3784 3744 <li><em>Section 9.5</em> <a href="#rfc.xref.Part2.15">5.6.2</a></li> 3785 3745 <li><em>Section 9.6</em> <a href="#rfc.xref.Part2.18">5.6.2</a></li> … … 3899 3859 <li>target resource <a href="#rfc.iref.t.7"><b>5.1</b></a></li> 3900 3860 <li>target URI <a href="#rfc.iref.t.8"><b>5.1</b></a></li> 3901 <li>TE header field <a href="#rfc.xref.header.te.1">4</a>, <a href="#rfc.xref.header.te.2">4.1</a>, <a href="#rfc.iref.t.5"><b>4.3</b></a>, <a href="#rfc.xref.header.te.3"> 4.3.1</a>, <a href="#rfc.xref.header.te.4">7.1</a></li>3861 <li>TE header field <a href="#rfc.xref.header.te.1">4</a>, <a href="#rfc.xref.header.te.2">4.1</a>, <a href="#rfc.iref.t.5"><b>4.3</b></a>, <a href="#rfc.xref.header.te.3">7.1</a></li> 3902 3862 <li><em>Tou1998</em> <a href="#rfc.xref.Tou1998.1">6.3.1</a>, <a href="#Tou1998"><b>10.2</b></a></li> 3903 3863 <li>Trailer header field <a href="#rfc.xref.header.trailer.1">4.1</a>, <a href="#rfc.iref.t.6"><b>4.4</b></a>, <a href="#rfc.xref.header.trailer.2">7.1</a></li> -
draft-ietf-httpbis/latest/p1-messaging.xml
r1830 r1831 46 46 <!ENTITY methods "<xref target='Part2' x:rel='#methods' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 47 47 <!ENTITY OPTIONS "<xref target='Part2' x:rel='#OPTIONS' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 48 <!ENTITY qvalue "<xref target='Part2' x:rel='#quality.values' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 48 49 <!ENTITY status-codes "<xref target='Part2' x:rel='#status.codes' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 49 50 <!ENTITY status-100 "<xref target='Part2' x:rel='#status.100' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 1982 1983 message. 1983 1984 </t> 1984 <x:note><t>1985 &Note; Use of program names for the identification of encoding formats1986 is not desirable and is discouraged for future encodings. Their1987 use here is representative of historical practice, not good1988 design.1989 </t></x:note>1990 <x:note><t>1991 &Note; For compatibility with previous implementations of HTTP,1992 applications &SHOULD; consider "x-gzip" and "x-compress" to be1993 equivalent to "gzip" and "compress" respectively.1994 </t></x:note>1995 1985 1996 1986 <section title="Compress Coding" anchor="compress.coding"> … … 2000 1990 The "compress" format is produced by the common UNIX file compression 2001 1991 program "compress". This format is an adaptive Lempel-Ziv-Welch 2002 coding (LZW). 1992 coding (LZW). Recipients &SHOULD; consider "x-compress" to be 1993 equivalent to "compress". 2003 1994 </t> 2004 1995 </section> … … 2027 2018 "gzip" (GNU zip), as described in <xref target="RFC1952"/>. This format is a 2028 2019 Lempel-Ziv coding (LZ77) with a 32 bit CRC. 2020 Recipients &SHOULD; consider "x-gzip" to be equivalent to "gzip". 2029 2021 </t> 2030 2022 </section> … … 2037 2029 <x:anchor-alias value="TE"/> 2038 2030 <x:anchor-alias value="t-codings"/> 2039 <x:anchor-alias value="te-params"/> 2040 <x:anchor-alias value="te-ext"/> 2041 <t> 2042 The "TE" header field indicates what extension transfer-codings 2043 the client is willing to accept in the response, and whether or not it is 2044 willing to accept trailer fields in a chunked transfer-coding. 2045 </t> 2046 <t> 2047 Its value consists of the keyword "trailers" and/or a comma-separated 2048 list of extension transfer-coding names with optional accept 2049 parameters (as described in <xref target="transfer.codings"/>). 2050 </t> 2051 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TE"/><iref primary="true" item="Grammar" subitem="t-codings"/><iref primary="true" item="Grammar" subitem="te-params"/><iref primary="true" item="Grammar" subitem="te-ext"/> 2031 <x:anchor-alias value="t-ranking"/> 2032 <x:anchor-alias value="rank"/> 2033 <t> 2034 The "TE" header field in a request indicates what transfer-codings, 2035 besides "chunked", the client is willing to accept in response, and 2036 whether or not the client is willing to accept trailer fields in a 2037 chunked transfer-coding. 2038 </t> 2039 <t> 2040 The TE field-value consists of a comma-separated list of transfer-coding 2041 names, each allowing for optional parameters (as described in 2042 <xref target="transfer.codings"/>), and/or the keyword "trailers". 2043 Clients &MUST-NOT; send the chunked transfer-coding name in TE; 2044 chunked is always acceptable for HTTP/1.1 recipients. 2045 </t> 2046 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TE"/><iref primary="true" item="Grammar" subitem="t-codings"/><iref primary="true" item="Grammar" subitem="t-ranking"/><iref primary="true" item="Grammar" subitem="rank"/> 2052 2047 <x:ref>TE</x:ref> = #<x:ref>t-codings</x:ref> 2053 <x:ref>t-codings</x:ref> = "trailers" / ( <x:ref>transfer-extension</x:ref> [ <x:ref>te-params</x:ref> ] ) 2054 <x:ref>te-params</x:ref> = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> *( <x:ref>te-ext</x:ref> ) 2055 <x:ref>te-ext</x:ref> = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>token</x:ref> [ "=" <x:ref>word</x:ref> ] 2048 <x:ref>t-codings</x:ref> = "trailers" / ( <x:ref>transfer-coding</x:ref> [ <x:ref>t-ranking</x:ref> ] ) 2049 <x:ref>t-ranking</x:ref> = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>rank</x:ref> 2050 <x:ref>rank</x:ref> = ( "0" [ "." 0*3<x:ref>DIGIT</x:ref> ] ) 2051 / ( "1" [ "." 0*3("0") ] ) 2056 2052 </artwork></figure> 2057 2053 <t> 2058 The presence of the keyword "trailers" indicates that the client is 2059 willing to accept trailer fields in a chunked transfer-coding, as 2060 defined in <xref target="chunked.encoding"/>. This keyword is reserved for use with 2061 transfer-coding values even though it does not itself represent a 2062 transfer-coding. 2063 </t> 2064 <t> 2065 Examples of its use are: 2054 Three examples of TE use are below. 2066 2055 </t> 2067 2056 <figure><artwork type="example"> … … 2071 2060 </artwork></figure> 2072 2061 <t> 2073 The TE header field only applies to the immediate connection. 2074 Therefore, the keyword &MUST; be supplied within a <x:ref>Connection</x:ref> 2075 header field (<xref target="header.connection"/>) whenever TE is present in 2076 an HTTP/1.1 message. 2077 </t> 2078 <t> 2079 A server tests whether a transfer-coding is acceptable, according to 2080 a TE field, using these rules: 2081 <list style="numbers"> 2082 <x:lt> 2083 <t>The "chunked" transfer-coding is always acceptable. If the 2084 keyword "trailers" is listed, the client indicates that it is 2085 willing to accept trailer fields in the chunked response on 2086 behalf of itself and any downstream clients. The implication is 2087 that, if given, the client is stating that either all 2088 downstream clients are willing to accept trailer fields in the 2089 forwarded response, or that it will attempt to buffer the 2090 response on behalf of downstream recipients. 2091 </t><t> 2092 &Note; HTTP/1.1 does not define any means to limit the size of a 2093 chunked response such that a client can be assured of buffering 2094 the entire response.</t> 2095 </x:lt> 2096 <x:lt> 2097 <t>If the transfer-coding being tested is one of the transfer-codings 2098 listed in the TE field, then it is acceptable unless it 2099 is accompanied by a qvalue of 0. (As defined in <xref target="quality.values"/>, a 2100 qvalue of 0 means "not acceptable".)</t> 2101 </x:lt> 2102 <x:lt> 2103 <t>If multiple transfer-codings are acceptable, then the 2104 acceptable transfer-coding with the highest non-zero qvalue is 2105 preferred. The "chunked" transfer-coding always has a qvalue 2106 of 1.</t> 2107 </x:lt> 2108 </list> 2062 The presence of the keyword "trailers" indicates that the client is 2063 willing to accept trailer fields in a chunked transfer-coding, 2064 as defined in <xref target="chunked.encoding"/>, on behalf of itself and 2065 any downstream clients. For chained requests, this implies that either: 2066 (a) all downstream clients are willing to accept trailer fields in the 2067 forwarded response; or, 2068 (b) the client will attempt to buffer the response on behalf of downstream 2069 recipients. 2070 Note that HTTP/1.1 does not define any means to limit the size of a 2071 chunked response such that a client can be assured of buffering the 2072 entire response. 2073 </t> 2074 <t> 2075 When multiple transfer-codings are acceptable, the client &MAY; rank the 2076 codings by preference using a "q" parameter (similar to the qvalues 2077 used in content negotiation fields, &qvalue;). The rank value is a real 2078 number in the range 0 through 1, where 0.001 is the least preferred and 2079 1 is the most preferred; a value of 0 means "not acceptable". 2109 2080 </t> 2110 2081 <t> 2111 2082 If the TE field-value is empty or if no TE field is present, the only 2112 acceptable transfer-coding is "chunked". A message with no transfer-coding is 2113 always acceptable. 2114 </t> 2115 2116 <section title="Quality Values" anchor="quality.values"> 2117 <x:anchor-alias value="qvalue"/> 2118 <t> 2119 Both transfer codings (<x:ref>TE</x:ref> request header field, 2120 <xref target="header.te"/>) and content negotiation (&content.negotiation;) 2121 use short "floating point" numbers to indicate the relative importance 2122 ("weight") of various negotiable parameters. A weight is normalized to a 2123 real number in the range 0 through 1, where 0 is the minimum and 1 the 2124 maximum value. If a parameter has a quality value of 0, then content with 2125 this parameter is "not acceptable" for the client. HTTP/1.1 2126 applications &MUST-NOT; generate more than three digits after the 2127 decimal point. User configuration of these values &SHOULD; also be 2128 limited in this fashion. 2129 </t> 2130 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="qvalue"/> 2131 <x:ref>qvalue</x:ref> = ( "0" [ "." 0*3<x:ref>DIGIT</x:ref> ] ) 2132 / ( "1" [ "." 0*3("0") ] ) 2133 </artwork></figure> 2134 <x:note> 2135 <t> 2136 &Note; "Quality values" is a misnomer, since these values merely represent 2137 relative degradation in desired quality. 2138 </t> 2139 </x:note> 2140 </section> 2083 acceptable transfer-coding is "chunked". A message with no transfer-coding 2084 is always acceptable. 2085 </t> 2086 <t> 2087 Since the TE header field only applies to the immediate connection, 2088 a sender of TE &MUST; also send a "TE" connection option within the 2089 <x:ref>Connection</x:ref> header field (<xref target="header.connection"/>) 2090 in order to prevent the TE field from being forwarded by intermediaries 2091 that do not support its semantics. 2092 </t> 2141 2093 </section> 2142 2094 … … 3585 3537 <t> 3586 3538 Names of transfer codings &MUST-NOT; overlap with names of content codings 3587 (&content-codings;) unless the encoding transformation is identical, as it3539 (&content-codings;) unless the encoding transformation is identical, as 3588 3540 is the case for the compression codings defined in 3589 3541 <xref target="compression.codings"/>. … … 3593 3545 <xref target="RFC5226" x:fmt="of" x:sec="4.1"/>), and &MUST; 3594 3546 conform to the purpose of transfer coding defined in this section. 3547 Use of program names for the identification of encoding formats 3548 is not desirable and is discouraged for future encodings. 3595 3549 </t> 3596 3550 <t> … … 5191 5145 <x:ref>quoted-str-nf</x:ref> = DQUOTE *( qdtext-nf / quoted-pair ) DQUOTE 5192 5146 <x:ref>quoted-string</x:ref> = DQUOTE *( qdtext / quoted-pair ) DQUOTE 5193 <x:ref>qvalue</x:ref> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 5194 5147 5148 <x:ref>rank</x:ref> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 5195 5149 <x:ref>reason-phrase</x:ref> = *( HTAB / SP / VCHAR / obs-text ) 5196 5150 <x:ref>received-by</x:ref> = ( uri-host [ ":" port ] ) / pseudonym … … 5207 5161 <x:ref>status-line</x:ref> = HTTP-version SP status-code SP reason-phrase CRLF 5208 5162 5209 <x:ref>t-codings</x:ref> = "trailers" / ( transfer-extension [ te-params ] ) 5163 <x:ref>t-codings</x:ref> = "trailers" / ( transfer-coding [ t-ranking ] ) 5164 <x:ref>t-ranking</x:ref> = OWS ";" OWS "q=" rank 5210 5165 <x:ref>tchar</x:ref> = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / 5211 5166 "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA 5212 <x:ref>te-ext</x:ref> = OWS ";" OWS token [ "=" word ]5213 <x:ref>te-params</x:ref> = OWS ";" OWS "q=" qvalue *te-ext5214 5167 <x:ref>token</x:ref> = 1*tchar 5215 5168 <x:ref>trailer-part</x:ref> = *( header-field CRLF ) -
draft-ietf-httpbis/latest/p2-semantics.html
r1828 r1831 449 449 } 450 450 @bottom-center { 451 content: "Expires February 19, 2013";451 content: "Expires February 20, 2013"; 452 452 } 453 453 @bottom-right { … … 498 498 <meta name="dct.creator" content="Reschke, J. F."> 499 499 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p2-semantics-latest"> 500 <meta name="dct.issued" scheme="ISO8601" content="2012-08-1 8">500 <meta name="dct.issued" scheme="ISO8601" content="2012-08-19"> 501 501 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> 502 502 <meta name="dct.abstract" content="The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation."> … … 529 529 </tr> 530 530 <tr> 531 <td class="left">Expires: February 19, 2013</td>531 <td class="left">Expires: February 20, 2013</td> 532 532 <td class="right">greenbytes</td> 533 533 </tr> 534 534 <tr> 535 535 <td class="left"></td> 536 <td class="right">August 1 8, 2012</td>536 <td class="right">August 19, 2012</td> 537 537 </tr> 538 538 </tbody> … … 561 561 in progress”. 562 562 </p> 563 <p>This Internet-Draft will expire on February 19, 2013.</p>563 <p>This Internet-Draft will expire on February 20, 2013.</p> 564 564 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 565 565 <p>Copyright © 2012 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 702 702 <li><a href="#rfc.section.8.1">8.1</a> <a href="#server-driven.negotiation">Server-driven Negotiation</a></li> 703 703 <li><a href="#rfc.section.8.2">8.2</a> <a href="#agent-driven.negotiation">Agent-driven Negotiation</a></li> 704 <li><a href="#rfc.section.8.3">8.3</a> <a href="#quality.values">Quality Values</a></li> 704 705 </ul> 705 706 </li> … … 2474 2475 to choose from is very large, agent-driven negotiation might not be appropriate. 2475 2476 </p> 2476 <p id="rfc.section.8.p.5">Note that in all cases, the supplier of representations has the responsibility for determining which representations might2477 <p id="rfc.section.8.p.5">Note that, in all cases, the supplier of representations has the responsibility for determining which representations might 2477 2478 be considered to be the "same information". 2478 2479 </p> … … 2505 2506 (Not Acceptable)</a> response. 2506 2507 </p> 2507 <p id="rfc.section.8.1.p.5">Many of the mechanisms for expressing preferences use quality values to declare relative preference. See <a href="p1-messaging.html#quality.values" title="Quality Values">Section 4.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.34"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a> for more information. 2508 </p> 2509 <p id="rfc.section.8.1.p.6">HTTP/1.1 includes the following header fields for enabling server-driven negotiation through description of user agent capabilities 2508 <p id="rfc.section.8.1.p.5">HTTP/1.1 includes the following header fields for enabling server-driven negotiation through description of user agent capabilities 2510 2509 and user preferences: <a href="#header.accept" class="smpl">Accept</a> (<a href="#header.accept" id="rfc.xref.header.accept.3" title="Accept">Section 9.1</a>), <a href="#header.accept-charset" class="smpl">Accept-Charset</a> (<a href="#header.accept-charset" id="rfc.xref.header.accept-charset.2" title="Accept-Charset">Section 9.2</a>), <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> (<a href="#header.accept-encoding" id="rfc.xref.header.accept-encoding.3" title="Accept-Encoding">Section 9.3</a>), <a href="#header.accept-language" class="smpl">Accept-Language</a> (<a href="#header.accept-language" id="rfc.xref.header.accept-language.2" title="Accept-Language">Section 9.4</a>), and <a href="#header.user-agent" class="smpl">User-Agent</a> (<a href="#header.user-agent" id="rfc.xref.header.user-agent.2" title="User-Agent">Section 9.18</a>). However, an origin server is not limited to these dimensions and <em class="bcp14">MAY</em> vary the response based on any aspect of the request, including aspects of the connection (e.g., IP address) or information 2511 2510 within extension header fields not defined by this specification. 2512 2511 </p> 2513 <div class="note" id="rfc.section.8.1.p. 7">2512 <div class="note" id="rfc.section.8.1.p.6"> 2514 2513 <p> <b>Note:</b> In practice, <a href="#header.user-agent" class="smpl">User-Agent</a> based negotiation is fragile, because new clients might not be recognized. 2515 2514 </p> 2516 2515 </div> 2517 <p id="rfc.section.8.1.p. 8">The <a href="p6-cache.html#header.vary" class="smpl">Vary</a> header field (<a href="p6-cache.html#header.vary" title="Vary">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.19"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) can be used to express the parameters the server uses to select a representation that is subject to server-driven negotiation.2516 <p id="rfc.section.8.1.p.7">The <a href="p6-cache.html#header.vary" class="smpl">Vary</a> header field (<a href="p6-cache.html#header.vary" title="Vary">Section 7.5</a> of <a href="#Part6" id="rfc.xref.Part6.19"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) can be used to express the parameters the server uses to select a representation that is subject to server-driven negotiation. 2518 2517 </p> 2519 2518 <h2 id="rfc.section.8.2"><a href="#rfc.section.8.2">8.2</a> <a id="agent-driven.negotiation" href="#agent-driven.negotiation">Agent-driven Negotiation</a></h2> … … 2536 2535 server-driven negotiation. 2537 2536 </p> 2537 <h2 id="rfc.section.8.3"><a href="#rfc.section.8.3">8.3</a> <a id="quality.values" href="#quality.values">Quality Values</a></h2> 2538 <p id="rfc.section.8.3.p.1">Many of the request header fields for server-driven content negotiation use a common parameter, named "q", to assign a relative 2539 "weight" to the preference for that associated kind of content. This weight is referred to as a "quality value" (or "qvalue") 2540 because the same parameter name is often used within server configurations to assign a weight to the relative quality of the 2541 various representations that can be selected for a resource. 2542 </p> 2543 <p id="rfc.section.8.3.p.2">The weight is normalized to a real number in the range 0 through 1, where 0.001 is the least preferred and 1 is the most preferred; 2544 a value of 0 means "not acceptable". If no "q" parameter is present, the default weight is 1. 2545 </p> 2546 <div id="rfc.figure.u.22"></div><pre class="inline"><span id="rfc.iref.g.31"></span><span id="rfc.iref.g.32"></span> <a href="#quality.values" class="smpl">weight</a> = <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> "q=" <a href="#quality.values" class="smpl">qvalue</a> 2547 <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." 0*3<a href="#imported.abnf" class="smpl">DIGIT</a> ] ) 2548 / ( "1" [ "." 0*3("0") ] ) 2549 </pre><p id="rfc.section.8.3.p.4">A sender of qvalue <em class="bcp14">MUST NOT</em> generate more than three digits after the decimal point. User configuration of these values ought to be limited in the same 2550 fashion. 2551 </p> 2538 2552 <h1 id="rfc.section.9"><a href="#rfc.section.9">9.</a> <a id="header.field.definitions" href="#header.field.definitions">Header Field Definitions</a></h1> 2539 2553 <p id="rfc.section.9.p.1">This section defines the syntax and semantics of HTTP/1.1 header fields related to request and response semantics and to the … … 2547 2561 for an in-line image. 2548 2562 </p> 2549 <div id="rfc.figure.u.2 2"></div><pre class="inline"><span id="rfc.iref.g.31"></span><span id="rfc.iref.g.32"></span><span id="rfc.iref.g.33"></span><span id="rfc.iref.g.34"></span> <a href="#header.accept" class="smpl">Accept</a> = #( <a href="#header.accept" class="smpl">media-range</a> [ <a href="#header.accept" class="smpl">accept-params</a> ] )2563 <div id="rfc.figure.u.23"></div><pre class="inline"><span id="rfc.iref.g.33"></span><span id="rfc.iref.g.34"></span><span id="rfc.iref.g.35"></span><span id="rfc.iref.g.36"></span> <a href="#header.accept" class="smpl">Accept</a> = #( <a href="#header.accept" class="smpl">media-range</a> [ <a href="#header.accept" class="smpl">accept-params</a> ] ) 2550 2564 2551 2565 <a href="#header.accept" class="smpl">media-range</a> = ( "*/*" … … 2553 2567 / ( <a href="#media.types" class="smpl">type</a> "/" <a href="#media.types" class="smpl">subtype</a> ) 2554 2568 ) *( <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> <a href="#rule.parameter" class="smpl">parameter</a> ) 2555 <a href="#header.accept" class="smpl">accept-params</a> = <a href="# imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> "q=" <a href="#imported.abnf" class="smpl">qvalue</a> *( <a href="#header.accept" class="smpl">accept-ext</a> )2569 <a href="#header.accept" class="smpl">accept-params</a> = <a href="#quality.values" class="smpl">weight</a> *( <a href="#header.accept" class="smpl">accept-ext</a> ) 2556 2570 <a href="#header.accept" class="smpl">accept-ext</a> = <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> <a href="#imported.abnf" class="smpl">token</a> [ "=" <a href="#imported.abnf" class="smpl">word</a> ] 2557 2571 </pre><p id="rfc.section.9.1.p.3">The asterisk "*" character is used to group media types into ranges, with "*/*" indicating all media types and "type/*" indicating 2558 2572 all subtypes of that type. The media-range <em class="bcp14">MAY</em> include media type parameters that are applicable to that range. 2559 2573 </p> 2560 <p id="rfc.section.9.1.p.4">Each media-range <em class="bcp14">MAY</em> be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative quality factor. The first 2561 "q" parameter (if any) separates the media-range parameter(s) from the accept-params. Quality factors allow the user or user 2562 agent to indicate the relative degree of preference for that media-range, using the qvalue scale from 0 to 1 (<a href="p1-messaging.html#quality.values" title="Quality Values">Section 4.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.35"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>). The default value is q=1. 2574 <p id="rfc.section.9.1.p.4">Each media-range <em class="bcp14">MAY</em> be followed by one or more accept-params, beginning with the "q" parameter for indicating a relative weight, as defined in <a href="#quality.values" title="Quality Values">Section 8.3</a>. The first "q" parameter (if any) separates the media-range parameter(s) from the accept-params. 2563 2575 </p> 2564 2576 <div class="note" id="rfc.section.9.1.p.5"> … … 2570 2582 </div> 2571 2583 <p id="rfc.section.9.1.p.6">The example</p> 2572 <div id="rfc.figure.u.2 3"></div><pre class="text"> Accept: audio/*; q=0.2, audio/basic2584 <div id="rfc.figure.u.24"></div><pre class="text"> Accept: audio/*; q=0.2, audio/basic 2573 2585 </pre><p id="rfc.section.9.1.p.8"> <em class="bcp14">SHOULD</em> be interpreted as "I prefer audio/basic, but send me any audio type if it is the best available after an 80% mark-down in 2574 2586 quality". … … 2579 2591 </p> 2580 2592 <p id="rfc.section.9.1.p.10">A more elaborate example is</p> 2581 <div id="rfc.figure.u.2 4"></div><pre class="text"> Accept: text/plain; q=0.5, text/html,2593 <div id="rfc.figure.u.25"></div><pre class="text"> Accept: text/plain; q=0.5, text/html, 2582 2594 text/x-dvi; q=0.8, text/x-c 2583 2595 </pre><p id="rfc.section.9.1.p.12">Verbally, this would be interpreted as "text/html and text/x-c are the preferred media types, but if they do not exist, then … … 2587 2599 to a given type, the most specific reference has precedence. For example, 2588 2600 </p> 2589 <div id="rfc.figure.u.2 5"></div><pre class="text"> Accept: text/*, text/plain, text/plain;format=flowed, */*2601 <div id="rfc.figure.u.26"></div><pre class="text"> Accept: text/*, text/plain, text/plain;format=flowed, */* 2590 2602 </pre><p id="rfc.section.9.1.p.15">have the following precedence: </p> 2591 2603 <ol> … … 2598 2610 which matches that type. For example, 2599 2611 </p> 2600 <div id="rfc.figure.u.2 6"></div><pre class="text"> Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1,2612 <div id="rfc.figure.u.27"></div><pre class="text"> Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1, 2601 2613 text/html;level=2;q=0.4, */*;q=0.5 2602 2614 </pre><p id="rfc.section.9.1.p.18">would cause the following values to be associated:</p> … … 2647 2659 that capability to a server which is capable of representing documents in those character encodings. 2648 2660 </p> 2649 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.35"></span> <a href="#header.accept-charset" class="smpl">Accept-Charset</a> = 1#( ( <a href="#rule.charset" class="smpl">charset</a> / "*" ) 2650 [ <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> "q=" <a href="#imported.abnf" class="smpl">qvalue</a> ] ) 2651 </pre><p id="rfc.section.9.2.p.3">Character encoding values (a.k.a., charsets) are described in <a href="#character.sets" title="Character Encodings (charset)">Section 5.3</a>. Each charset <em class="bcp14">MAY</em> be given an associated quality value which represents the user's preference for that charset. The default value is q=1. An 2652 example is 2653 </p> 2654 <div id="rfc.figure.u.28"></div><pre class="text"> Accept-Charset: iso-8859-5, unicode-1-1;q=0.8 2661 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.37"></span> <a href="#header.accept-charset" class="smpl">Accept-Charset</a> = 1#( ( <a href="#rule.charset" class="smpl">charset</a> / "*" ) [ <a href="#quality.values" class="smpl">weight</a> ] ) 2662 </pre><p id="rfc.section.9.2.p.3">Character encoding values (a.k.a., charsets) are described in <a href="#character.sets" title="Character Encodings (charset)">Section 5.3</a>. Each charset <em class="bcp14">MAY</em> be given an associated quality value which represents the user's preference for that charset, as defined in <a href="#quality.values" title="Quality Values">Section 8.3</a>. An example is 2663 </p> 2664 <div id="rfc.figure.u.29"></div><pre class="text"> Accept-Charset: iso-8859-5, unicode-1-1;q=0.8 2655 2665 </pre><p id="rfc.section.9.2.p.5">The special value "*", if present in the Accept-Charset field, matches every character encoding which is not mentioned elsewhere 2656 in the Accept-Charset field. If no "*" is present in an Accept-Charset field, then a llcharacter encodings not explicitly2657 mentioned get a quality value of 0.2658 </p> 2659 <p id="rfc.section.9.2.p.6">A request without any Accept-Charset header field implies that the user agent will accept any character encoding in response. 2660 2666 in the Accept-Charset field. If no "*" is present in an Accept-Charset field, then any character encodings not explicitly 2667 mentioned in the field are considered "not acceptable" to the client. 2668 </p> 2669 <p id="rfc.section.9.2.p.6">A request without any Accept-Charset header field implies that the user agent will accept any character encoding in response.</p> 2670 <p id="rfc.section.9.2.p.7">If an Accept-Charset header field is present in a request and none of the available representations for the response have 2661 2671 a character encoding that is listed as acceptable, the origin server <em class="bcp14">MAY</em> either honor the Accept-Charset header field by sending a <a href="#status.406" class="smpl">406 (Not Acceptable)</a> response or disregard the Accept-Charset header field by treating the response as if it is not subject to content negotiation. 2662 2672 </p> … … 2667 2677 no encoding is preferred. 2668 2678 </p> 2669 <div id="rfc.figure.u. 29"></div><pre class="inline"><span id="rfc.iref.g.36"></span><span id="rfc.iref.g.37"></span> <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> = #( <a href="#header.accept-encoding" class="smpl">codings</a> [ <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> "q=" <a href="#imported.abnf" class="smpl">qvalue</a> ] )2679 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.38"></span><span id="rfc.iref.g.39"></span> <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> = #( <a href="#header.accept-encoding" class="smpl">codings</a> [ <a href="#quality.values" class="smpl">weight</a> ] ) 2670 2680 <a href="#header.accept-encoding" class="smpl">codings</a> = <a href="#content.codings" class="smpl">content-coding</a> / "identity" / "*" 2671 </pre><p id="rfc.section.9.3.p.3">Each codings value <em class="bcp14">MAY</em> be given an associated quality value which represents the preference for that encoding . The default value is q=1.2681 </pre><p id="rfc.section.9.3.p.3">Each codings value <em class="bcp14">MAY</em> be given an associated quality value which represents the preference for that encoding, as defined in <a href="#quality.values" title="Quality Values">Section 8.3</a>. 2672 2682 </p> 2673 2683 <p id="rfc.section.9.3.p.4">For example,</p> 2674 <div id="rfc.figure.u.3 0"></div><pre class="text"> Accept-Encoding: compress, gzip2684 <div id="rfc.figure.u.31"></div><pre class="text"> Accept-Encoding: compress, gzip 2675 2685 Accept-Encoding: 2676 2686 Accept-Encoding: * … … 2688 2698 </li> 2689 2699 <li>If the representation's content-coding is one of the content-codings listed in the Accept-Encoding field, then it is acceptable 2690 unless it is accompanied by a qvalue of 0. (As defined in <a href=" p1-messaging.html#quality.values" title="Quality Values">Section 4.3.1</a> of <a href="#Part1" id="rfc.xref.Part1.36"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, a qvalue of 0 means "not acceptable".)2700 unless it is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 8.3</a>, a qvalue of 0 means "not acceptable".) 2691 2701 </li> 2692 2702 <li>If multiple content-codings are acceptable, then the acceptable content-coding with the highest non-zero qvalue is preferred.</li> … … 2696 2706 response have a content-coding that is listed as acceptable, the origin server <em class="bcp14">SHOULD</em> send a response without any content-coding. 2697 2707 </p> 2698 <p id="rfc.section.9.3.p.8">A request without an Accept-Encoding header field implies that the user agent will accept any content-coding in response, 2699 but a representation without content-coding is preferred for compatibility with the widest variety of user agents. 2700 </p> 2708 <p id="rfc.section.9.3.p.8">A request without an Accept-Encoding header field implies that the user agent will accept any content-coding in response.</p> 2701 2709 <div class="note" id="rfc.section.9.3.p.9"> 2702 2710 <p> <b>Note:</b> Most HTTP/1.0 applications do not recognize or obey qvalues associated with content-codings. This means that qvalues will … … 2710 2718 in the response. Language tags are defined in <a href="#language.tags" title="Language Tags">Section 5.6</a>. 2711 2719 </p> 2712 <div id="rfc.figure.u.31"></div><pre class="inline"><span id="rfc.iref.g.38"></span><span id="rfc.iref.g.39"></span> <a href="#header.accept-language" class="smpl">Accept-Language</a> = 2713 1#( <a href="#header.accept-language" class="smpl">language-range</a> [ <a href="#imported.abnf" class="smpl">OWS</a> ";" <a href="#imported.abnf" class="smpl">OWS</a> "q=" <a href="#imported.abnf" class="smpl">qvalue</a> ] ) 2720 <div id="rfc.figure.u.32"></div><pre class="inline"><span id="rfc.iref.g.40"></span><span id="rfc.iref.g.41"></span> <a href="#header.accept-language" class="smpl">Accept-Language</a> = 1#( <a href="#header.accept-language" class="smpl">language-range</a> [ <a href="#quality.values" class="smpl">weight</a> ] ) 2714 2721 <a href="#header.accept-language" class="smpl">language-range</a> = 2715 2722 <language-range, defined in <a href="#RFC4647" id="rfc.xref.RFC4647.1"><cite title="Matching of Language Tags">[RFC4647]</cite></a>, <a href="http://tools.ietf.org/html/rfc4647#section-2.1">Section 2.1</a>> 2716 2723 </pre><p id="rfc.section.9.4.p.3">Each language-range can be given an associated quality value which represents an estimate of the user's preference for the 2717 languages specified by that range . The quality value defaults to "q=1". For example,2718 </p> 2719 <div id="rfc.figure.u.3 2"></div><pre class="text"> Accept-Language: da, en-gb;q=0.8, en;q=0.72724 languages specified by that range, as defined in <a href="#quality.values" title="Quality Values">Section 8.3</a>. For example, 2725 </p> 2726 <div id="rfc.figure.u.33"></div><pre class="text"> Accept-Language: da, en-gb;q=0.8, en;q=0.7 2720 2727 </pre><p id="rfc.section.9.4.p.5">would mean: "I prefer Danish, but will accept British English and other types of English". (see also <a href="http://tools.ietf.org/html/rfc4647#section-2.3">Section 2.3</a> of <a href="#RFC4647" id="rfc.xref.RFC4647.2"><cite title="Matching of Language Tags">[RFC4647]</cite></a>) 2721 2728 </p> … … 2745 2752 is strictly to inform the recipient of valid request methods associated with the resource. 2746 2753 </p> 2747 <div id="rfc.figure.u.3 3"></div><pre class="inline"><span id="rfc.iref.g.40"></span> <a href="#header.allow" class="smpl">Allow</a> = #<a href="#methods" class="smpl">method</a>2754 <div id="rfc.figure.u.34"></div><pre class="inline"><span id="rfc.iref.g.42"></span> <a href="#header.allow" class="smpl">Allow</a> = #<a href="#methods" class="smpl">method</a> 2748 2755 </pre><p id="rfc.section.9.5.p.3">Example of use:</p> 2749 <div id="rfc.figure.u.3 4"></div><pre class="text"> Allow: GET, HEAD, PUT2756 <div id="rfc.figure.u.35"></div><pre class="text"> Allow: GET, HEAD, PUT 2750 2757 </pre><p id="rfc.section.9.5.p.5">The actual set of allowed methods is defined by the origin server at the time of each request.</p> 2751 2758 <p id="rfc.section.9.5.p.6">A proxy <em class="bcp14">MUST NOT</em> modify the Allow header field — it does not need to understand all the methods specified in order to handle them according … … 2759 2766 its underlying media type. 2760 2767 </p> 2761 <div id="rfc.figure.u.3 5"></div><pre class="inline"><span id="rfc.iref.g.41"></span> <a href="#header.content-encoding" class="smpl">Content-Encoding</a> = 1#<a href="#content.codings" class="smpl">content-coding</a>2768 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.43"></span> <a href="#header.content-encoding" class="smpl">Content-Encoding</a> = 1#<a href="#content.codings" class="smpl">content-coding</a> 2762 2769 </pre><p id="rfc.section.9.6.p.3">Content codings are defined in <a href="#content.codings" title="Content Codings">Section 5.4</a>. An example of its use is 2763 2770 </p> 2764 <div id="rfc.figure.u.3 6"></div><pre class="text"> Content-Encoding: gzip2771 <div id="rfc.figure.u.37"></div><pre class="text"> Content-Encoding: gzip 2765 2772 </pre><p id="rfc.section.9.6.p.5">The content-coding is a characteristic of the representation. Typically, the representation body is stored with this encoding 2766 2773 and is only decoded before rendering or analogous usage. However, a transforming proxy <em class="bcp14">MAY</em> modify the content-coding if the new coding is known to be acceptable to the recipient, unless the "no-transform" cache-control … … 2786 2793 that this might not be equivalent to all the languages used within the representation. 2787 2794 </p> 2788 <div id="rfc.figure.u.3 7"></div><pre class="inline"><span id="rfc.iref.g.42"></span> <a href="#header.content-language" class="smpl">Content-Language</a> = 1#<a href="#language.tags" class="smpl">language-tag</a>2795 <div id="rfc.figure.u.38"></div><pre class="inline"><span id="rfc.iref.g.44"></span> <a href="#header.content-language" class="smpl">Content-Language</a> = 1#<a href="#language.tags" class="smpl">language-tag</a> 2789 2796 </pre><p id="rfc.section.9.7.p.3">Language tags are defined in <a href="#language.tags" title="Language Tags">Section 5.6</a>. The primary purpose of Content-Language is to allow a user to identify and differentiate representations according to the 2790 2797 user's own preferred language. Thus, if the body content is intended only for a Danish-literate audience, the appropriate 2791 2798 field is 2792 2799 </p> 2793 <div id="rfc.figure.u.3 8"></div><pre class="text"> Content-Language: da2800 <div id="rfc.figure.u.39"></div><pre class="text"> Content-Language: da 2794 2801 </pre><p id="rfc.section.9.7.p.5">If no Content-Language is specified, the default is that the content is intended for all language audiences. This might mean 2795 2802 that the sender does not consider it to be specific to any natural language, or that the sender does not know for which language … … 2799 2806 simultaneously in the original Maori and English versions, would call for 2800 2807 </p> 2801 <div id="rfc.figure.u. 39"></div><pre class="text"> Content-Language: mi, en2808 <div id="rfc.figure.u.40"></div><pre class="text"> Content-Language: mi, en 2802 2809 </pre><p id="rfc.section.9.7.p.8">However, just because multiple languages are present within a representation does not mean that it is intended for multiple 2803 2810 linguistic audiences. An example would be a beginner's language primer, such as "A First Lesson in Latin", which is clearly … … 2812 2819 message. In other words, if one were to perform a GET on this URI at the time of this message's generation, then a <a href="#status.200" class="smpl">200 (OK)</a> response would contain the same representation that is enclosed as payload in this message. 2813 2820 </p> 2814 <div id="rfc.figure.u.4 0"></div><pre class="inline"><span id="rfc.iref.g.43"></span> <a href="#header.content-location" class="smpl">Content-Location</a> = <a href="#imported.abnf" class="smpl">absolute-URI</a> / <a href="#imported.abnf" class="smpl">partial-URI</a>2815 </pre><p id="rfc.section.9.8.p.3">The Content-Location value is not a replacement for the effective Request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.3 7"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>). It is representation metadata. It has the same syntax and semantics as the header field of the same name defined for MIME2821 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.45"></span> <a href="#header.content-location" class="smpl">Content-Location</a> = <a href="#imported.abnf" class="smpl">absolute-URI</a> / <a href="#imported.abnf" class="smpl">partial-URI</a> 2822 </pre><p id="rfc.section.9.8.p.3">The Content-Location value is not a replacement for the effective Request URI (<a href="p1-messaging.html#effective.request.uri" title="Effective Request URI">Section 5.5</a> of <a href="#Part1" id="rfc.xref.Part1.34"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>). It is representation metadata. It has the same syntax and semantics as the header field of the same name defined for MIME 2816 2823 body parts in <a href="http://tools.ietf.org/html/rfc2557#section-4">Section 4</a> of <a href="#RFC2557" id="rfc.xref.RFC2557.1"><cite title="MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)">[RFC2557]</cite></a>. However, its appearance in an HTTP message has some special implications for HTTP recipients. 2817 2824 </p> … … 2852 2859 the media type is that which would have been sent had the request been a GET. 2853 2860 </p> 2854 <div id="rfc.figure.u.4 1"></div><pre class="inline"><span id="rfc.iref.g.44"></span> <a href="#header.content-type" class="smpl">Content-Type</a> = <a href="#media.types" class="smpl">media-type</a>2861 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.46"></span> <a href="#header.content-type" class="smpl">Content-Type</a> = <a href="#media.types" class="smpl">media-type</a> 2855 2862 </pre><p id="rfc.section.9.9.p.3">Media types are defined in <a href="#media.types" title="Media Types">Section 5.5</a>. An example of the field is 2856 2863 </p> 2857 <div id="rfc.figure.u.4 2"></div><pre class="text"> Content-Type: text/html; charset=ISO-8859-42864 <div id="rfc.figure.u.43"></div><pre class="text"> Content-Type: text/html; charset=ISO-8859-4 2858 2865 </pre><p id="rfc.section.9.9.p.5">Further discussion of Content-Type is provided in <a href="#representation.data" title="Representation Data">Section 7.3</a>. 2859 2866 </p> … … 2864 2871 Origination Date Field (orig-date) defined in <a href="http://tools.ietf.org/html/rfc5322#section-3.6.1">Section 3.6.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.2"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as defined in <a href="#http.date" title="Date/Time Formats">Section 5.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 2865 2872 </p> 2866 <div id="rfc.figure.u.4 3"></div><pre class="inline"><span id="rfc.iref.g.45"></span> <a href="#header.date" class="smpl">Date</a> = <a href="#http.date" class="smpl">HTTP-date</a>2873 <div id="rfc.figure.u.44"></div><pre class="inline"><span id="rfc.iref.g.47"></span> <a href="#header.date" class="smpl">Date</a> = <a href="#http.date" class="smpl">HTTP-date</a> 2867 2874 </pre><p id="rfc.section.9.10.p.3">An example is</p> 2868 <div id="rfc.figure.u.4 4"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT2875 <div id="rfc.figure.u.45"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT 2869 2876 </pre><p id="rfc.section.9.10.p.5">Origin servers <em class="bcp14">MUST</em> include a Date header field in all responses, except in these cases: 2870 2877 </p> … … 2892 2899 <h2 id="rfc.section.9.11"><a href="#rfc.section.9.11">9.11</a> <a id="header.expect" href="#header.expect">Expect</a></h2> 2893 2900 <p id="rfc.section.9.11.p.1">The "Expect" header field is used to indicate that particular server behaviors are required by the client.</p> 2894 <div id="rfc.figure.u.4 5"></div><pre class="inline"><span id="rfc.iref.g.46"></span><span id="rfc.iref.g.47"></span><span id="rfc.iref.g.48"></span><span id="rfc.iref.g.49"></span><span id="rfc.iref.g.50"></span> <a href="#header.expect" class="smpl">Expect</a> = 1#<a href="#header.expect" class="smpl">expectation</a>2901 <div id="rfc.figure.u.46"></div><pre class="inline"><span id="rfc.iref.g.48"></span><span id="rfc.iref.g.49"></span><span id="rfc.iref.g.50"></span><span id="rfc.iref.g.51"></span><span id="rfc.iref.g.52"></span> <a href="#header.expect" class="smpl">Expect</a> = 1#<a href="#header.expect" class="smpl">expectation</a> 2895 2902 2896 2903 <a href="#header.expect" class="smpl">expectation</a> = <a href="#header.expect" class="smpl">expect-name</a> [ <a href="#imported.abnf" class="smpl">BWS</a> "=" <a href="#imported.abnf" class="smpl">BWS</a> <a href="#header.expect" class="smpl">expect-value</a> ] … … 2904 2911 </p> 2905 2912 <p id="rfc.section.9.11.p.4">The only expectation defined by this specification is:</p> 2906 <p id="rfc.section.9.11.p.5"><span id="rfc.iref.1 39"></span><span id="rfc.iref.e.2"></span> 100-continue2913 <p id="rfc.section.9.11.p.5"><span id="rfc.iref.141"></span><span id="rfc.iref.e.2"></span> 100-continue 2907 2914 </p> 2908 2915 <ul class="empty"> 2909 <li>The "100-continue" expectation is defined <a href="p1-messaging.html#use.of.the.100.status" title="Use of the 100 (Continue) Status">Section 6.4.3</a> of <a href="#Part1" id="rfc.xref.Part1.3 8"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>. It does not support any expect-params.2916 <li>The "100-continue" expectation is defined <a href="p1-messaging.html#use.of.the.100.status" title="Use of the 100 (Continue) Status">Section 6.4.3</a> of <a href="#Part1" id="rfc.xref.Part1.35"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>. It does not support any expect-params. 2910 2917 </li> 2911 2918 </ul> … … 2920 2927 <p id="rfc.section.9.12.p.1">The "From" header field, if given, <em class="bcp14">SHOULD</em> contain an Internet e-mail address for the human user who controls the requesting user agent. The address <em class="bcp14">SHOULD</em> be machine-usable, as defined by "mailbox" in <a href="http://tools.ietf.org/html/rfc5322#section-3.4">Section 3.4</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.3"><cite title="Internet Message Format">[RFC5322]</cite></a>: 2921 2928 </p> 2922 <div id="rfc.figure.u.4 6"></div><pre class="inline"><span id="rfc.iref.g.51"></span> <a href="#header.from" class="smpl">From</a> = <a href="#header.from" class="smpl">mailbox</a>2929 <div id="rfc.figure.u.47"></div><pre class="inline"><span id="rfc.iref.g.53"></span> <a href="#header.from" class="smpl">From</a> = <a href="#header.from" class="smpl">mailbox</a> 2923 2930 2924 2931 <a href="#header.from" class="smpl">mailbox</a> = <mailbox, defined in <a href="#RFC5322" id="rfc.xref.RFC5322.4"><cite title="Internet Message Format">[RFC5322]</cite></a>, <a href="http://tools.ietf.org/html/rfc5322#section-3.4">Section 3.4</a>> 2925 2932 </pre><p id="rfc.section.9.12.p.3">An example is:</p> 2926 <div id="rfc.figure.u.4 7"></div><pre class="text"> From: webmaster@example.org2933 <div id="rfc.figure.u.48"></div><pre class="text"> From: webmaster@example.org 2927 2934 </pre><p id="rfc.section.9.12.p.5">This header field <em class="bcp14">MAY</em> be used for logging purposes and as a means for identifying the source of invalid or unwanted requests. It <em class="bcp14">SHOULD NOT</em> be used as an insecure form of access protection. The interpretation of this field is that the request is being performed 2928 2935 on behalf of the person given, who accepts responsibility for the method performed. In particular, robot agents <em class="bcp14">SHOULD</em> include this header field so that the person responsible for running the robot can be contacted if problems occur on the receiving … … 2941 2948 <p id="rfc.section.9.13.p.1">The "Location" header field <em class="bcp14">MAY</em> be sent in responses to refer to a specific resource in accordance with the semantics of the status code. 2942 2949 </p> 2943 <div id="rfc.figure.u.4 8"></div><pre class="inline"><span id="rfc.iref.g.52"></span> <a href="#header.location" class="smpl">Location</a> = <a href="#imported.abnf" class="smpl">URI-reference</a>2950 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.54"></span> <a href="#header.location" class="smpl">Location</a> = <a href="#imported.abnf" class="smpl">URI-reference</a> 2944 2951 </pre><p id="rfc.section.9.13.p.3">For <a href="#status.201" class="smpl">201 (Created)</a> responses, the Location is the URI of the new resource which was created by the request. For <a href="#status.3xx" class="smpl">3xx (Redirection)</a> responses, the location <em class="bcp14">SHOULD</em> indicate the server's preferred URI for automatic redirection to the resource. 2945 2952 </p> … … 2947 2954 then the original URI's fragment identifier is added to the final value. 2948 2955 </p> 2949 <div id="rfc.figure.u. 49"></div>2956 <div id="rfc.figure.u.50"></div> 2950 2957 <p>For example, the original URI "http://www.example.org/~tim", combined with a field value given as:</p> <pre class="text"> Location: /pub/WWW/People.html#tim 2951 2958 </pre> <p>would result in a final value of "http://www.example.org/pub/WWW/People.html#tim"</p> 2952 <div id="rfc.figure.u.5 0"></div>2959 <div id="rfc.figure.u.51"></div> 2953 2960 <p>An original URI "http://www.example.org/index.html#larry", combined with a field value given as:</p> <pre class="text"> Location: http://www.example.net/index.html 2954 2961 </pre> <p>would result in a final value of "http://www.example.net/index.html#larry", preserving the original fragment identifier.</p> … … 2973 2980 to trace a request which appears to be failing or looping mid-chain. 2974 2981 </p> 2975 <div id="rfc.figure.u.5 1"></div><pre class="inline"><span id="rfc.iref.g.53"></span> <a href="#header.max-forwards" class="smpl">Max-Forwards</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a>2982 <div id="rfc.figure.u.52"></div><pre class="inline"><span id="rfc.iref.g.55"></span> <a href="#header.max-forwards" class="smpl">Max-Forwards</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a> 2976 2983 </pre><p id="rfc.section.9.14.p.3">The Max-Forwards value is a decimal integer indicating the remaining number of times this request message can be forwarded.</p> 2977 2984 <p id="rfc.section.9.14.p.4">Each recipient of a TRACE or OPTIONS request containing a Max-Forwards header field <em class="bcp14">MUST</em> check and update its value prior to forwarding the request. If the received value is zero (0), the recipient <em class="bcp14">MUST NOT</em> forward the request; instead, it <em class="bcp14">MUST</em> respond as the final recipient. If the received Max-Forwards value is greater than zero, then the forwarded message <em class="bcp14">MUST</em> contain an updated Max-Forwards field with a value decremented by one (1). … … 2993 3000 non-HTTP URIs (e.g., FTP). 2994 3001 </p> 2995 <div id="rfc.figure.u.5 2"></div><pre class="inline"><span id="rfc.iref.g.54"></span> <a href="#header.referer" class="smpl">Referer</a> = <a href="#imported.abnf" class="smpl">absolute-URI</a> / <a href="#imported.abnf" class="smpl">partial-URI</a>3002 <div id="rfc.figure.u.53"></div><pre class="inline"><span id="rfc.iref.g.56"></span> <a href="#header.referer" class="smpl">Referer</a> = <a href="#imported.abnf" class="smpl">absolute-URI</a> / <a href="#imported.abnf" class="smpl">partial-URI</a> 2996 3003 </pre><p id="rfc.section.9.15.p.5">Example:</p> 2997 <div id="rfc.figure.u.5 3"></div><pre class="text"> Referer: http://www.example.org/hypertext/Overview.html3004 <div id="rfc.figure.u.54"></div><pre class="text"> Referer: http://www.example.org/hypertext/Overview.html 2998 3005 </pre><p id="rfc.section.9.15.p.7">If the field value is a relative URI, it <em class="bcp14">SHOULD</em> be interpreted relative to the effective request URI. The URI <em class="bcp14">MUST NOT</em> include a fragment. See <a href="#encoding.sensitive.information.in.uris" title="Encoding Sensitive Information in URIs">Section 11.2</a> for security considerations. 2999 3006 </p> … … 3005 3012 </p> 3006 3013 <p id="rfc.section.9.16.p.2">The value of this field can be either an HTTP-date or an integer number of seconds (in decimal) after the time of the response.</p> 3007 <div id="rfc.figure.u.5 4"></div><pre class="inline"><span id="rfc.iref.g.55"></span> <a href="#header.retry-after" class="smpl">Retry-After</a> = <a href="#http.date" class="smpl">HTTP-date</a> / <a href="#rule.delta-seconds" class="smpl">delta-seconds</a>3014 <div id="rfc.figure.u.55"></div><pre class="inline"><span id="rfc.iref.g.57"></span> <a href="#header.retry-after" class="smpl">Retry-After</a> = <a href="#http.date" class="smpl">HTTP-date</a> / <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> 3008 3015 </pre><div id="rule.delta-seconds"> 3009 3016 <p id="rfc.section.9.16.p.4"> Time spans are non-negative decimal integers, representing time in seconds.</p> 3010 3017 </div> 3011 <div id="rfc.figure.u.5 5"></div><pre class="inline"><span id="rfc.iref.g.56"></span> <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a>3018 <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.58"></span> <a href="#rule.delta-seconds" class="smpl">delta-seconds</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a> 3012 3019 </pre><p id="rfc.section.9.16.p.6">Two examples of its use are</p> 3013 <div id="rfc.figure.u.5 6"></div><pre class="text"> Retry-After: Fri, 31 Dec 1999 23:59:59 GMT3020 <div id="rfc.figure.u.57"></div><pre class="text"> Retry-After: Fri, 31 Dec 1999 23:59:59 GMT 3014 3021 Retry-After: 120 3015 3022 </pre><p id="rfc.section.9.16.p.8">In the latter example, the delay is 2 minutes.</p> … … 3018 3025 <h2 id="rfc.section.9.17"><a href="#rfc.section.9.17">9.17</a> <a id="header.server" href="#header.server">Server</a></h2> 3019 3026 <p id="rfc.section.9.17.p.1">The "Server" header field contains information about the software used by the origin server to handle the request.</p> 3020 <p id="rfc.section.9.17.p.2">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 5.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.3 9"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>) identifying the server and any significant subproducts. The product tokens are listed in order of their significance for3027 <p id="rfc.section.9.17.p.2">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 5.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.36"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>) identifying the server and any significant subproducts. The product tokens are listed in order of their significance for 3021 3028 identifying the application. 3022 3029 </p> 3023 <div id="rfc.figure.u.5 7"></div><pre class="inline"><span id="rfc.iref.g.57"></span> <a href="#header.server" class="smpl">Server</a> = <a href="#product.tokens" class="smpl">product</a> *( <a href="#imported.abnf" class="smpl">RWS</a> ( <a href="#product.tokens" class="smpl">product</a> / <a href="#imported.abnf" class="smpl">comment</a> ) )3030 <div id="rfc.figure.u.58"></div><pre class="inline"><span id="rfc.iref.g.59"></span> <a href="#header.server" class="smpl">Server</a> = <a href="#product.tokens" class="smpl">product</a> *( <a href="#imported.abnf" class="smpl">RWS</a> ( <a href="#product.tokens" class="smpl">product</a> / <a href="#imported.abnf" class="smpl">comment</a> ) ) 3024 3031 </pre><p id="rfc.section.9.17.p.4">Example:</p> 3025 <div id="rfc.figure.u.5 8"></div><pre class="text"> Server: CERN/3.0 libwww/2.173026 </pre><p id="rfc.section.9.17.p.6">If the response is being forwarded through a proxy, the proxy application <em class="bcp14">MUST NOT</em> modify the <a href="#header.server" class="smpl">Server</a> header field. Instead, it <em class="bcp14">MUST</em> include a <a href="p1-messaging.html#header.via" class="smpl">Via</a> field (as described in <a href="p1-messaging.html#header.via" title="Via">Section 6.2</a> of <a href="#Part1" id="rfc.xref.Part1. 40"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>).3032 <div id="rfc.figure.u.59"></div><pre class="text"> Server: CERN/3.0 libwww/2.17 3033 </pre><p id="rfc.section.9.17.p.6">If the response is being forwarded through a proxy, the proxy application <em class="bcp14">MUST NOT</em> modify the <a href="#header.server" class="smpl">Server</a> header field. Instead, it <em class="bcp14">MUST</em> include a <a href="p1-messaging.html#header.via" class="smpl">Via</a> field (as described in <a href="p1-messaging.html#header.via" title="Via">Section 6.2</a> of <a href="#Part1" id="rfc.xref.Part1.37"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>). 3027 3034 </p> 3028 3035 <div class="note" id="rfc.section.9.17.p.7"> … … 3040 3047 user agent limitations. 3041 3048 </p> 3042 <p id="rfc.section.9.18.p.3">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 5.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1. 41"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>) identifying the agent and its significant subproducts. By convention, the product tokens are listed in order of their significance3049 <p id="rfc.section.9.18.p.3">The field can contain multiple product tokens (<a href="#product.tokens" title="Product Tokens">Section 5.2</a>) and comments (<a href="p1-messaging.html#header.fields" title="Header Fields">Section 3.2</a> of <a href="#Part1" id="rfc.xref.Part1.38"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>) identifying the agent and its significant subproducts. By convention, the product tokens are listed in order of their significance 3043 3050 for identifying the application. 3044 3051 </p> … … 3051 3058 doing so makes the field value more difficult to parse. 3052 3059 </p> 3053 <div id="rfc.figure.u. 59"></div><pre class="inline"><span id="rfc.iref.g.58"></span> <a href="#header.user-agent" class="smpl">User-Agent</a> = <a href="#product.tokens" class="smpl">product</a> *( <a href="#imported.abnf" class="smpl">RWS</a> ( <a href="#product.tokens" class="smpl">product</a> / <a href="#imported.abnf" class="smpl">comment</a> ) )3060 <div id="rfc.figure.u.60"></div><pre class="inline"><span id="rfc.iref.g.60"></span> <a href="#header.user-agent" class="smpl">User-Agent</a> = <a href="#product.tokens" class="smpl">product</a> *( <a href="#imported.abnf" class="smpl">RWS</a> ( <a href="#product.tokens" class="smpl">product</a> / <a href="#imported.abnf" class="smpl">comment</a> ) ) 3054 3061 </pre><p id="rfc.section.9.18.p.7">Example:</p> 3055 <div id="rfc.figure.u.6 0"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b33062 <div id="rfc.figure.u.61"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 3056 3063 </pre><h1 id="rfc.section.10"><a href="#rfc.section.10">10.</a> <a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1> 3057 3064 <h2 id="rfc.section.10.1"><a href="#rfc.section.10.1">10.1</a> <a id="method.registration" href="#method.registration">Method Registry</a></h2> … … 3537 3544 <td class="left">compress</td> 3538 3545 <td class="left">UNIX "compress" program method</td> 3539 <td class="left"> <a href="p1-messaging.html#compress.coding" title="Compress Coding">Section 4.2.1</a> of <a href="#Part1" id="rfc.xref.Part1. 42"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>3546 <td class="left"> <a href="p1-messaging.html#compress.coding" title="Compress Coding">Section 4.2.1</a> of <a href="#Part1" id="rfc.xref.Part1.39"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a> 3540 3547 </td> 3541 3548 </tr> … … 3544 3551 <td class="left">"deflate" compression mechanism (<a href="#RFC1951" id="rfc.xref.RFC1951.1"><cite title="DEFLATE Compressed Data Format Specification version 1.3">[RFC1951]</cite></a>) used inside the "zlib" data format (<a href="#RFC1950" id="rfc.xref.RFC1950.1"><cite title="ZLIB Compressed Data Format Specification version 3.3">[RFC1950]</cite></a>) 3545 3552 </td> 3546 <td class="left"> <a href="p1-messaging.html#deflate.coding" title="Deflate Coding">Section 4.2.2</a> of <a href="#Part1" id="rfc.xref.Part1.4 3"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>3553 <td class="left"> <a href="p1-messaging.html#deflate.coding" title="Deflate Coding">Section 4.2.2</a> of <a href="#Part1" id="rfc.xref.Part1.40"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a> 3547 3554 </td> 3548 3555 </tr> … … 3550 3557 <td class="left">gzip</td> 3551 3558 <td class="left">Same as GNU zip <a href="#RFC1952" id="rfc.xref.RFC1952.1"><cite title="GZIP file format specification version 4.3">[RFC1952]</cite></a></td> 3552 <td class="left"> <a href="p1-messaging.html#gzip.coding" title="Gzip Coding">Section 4.2.3</a> of <a href="#Part1" id="rfc.xref.Part1.4 4"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>3559 <td class="left"> <a href="p1-messaging.html#gzip.coding" title="Gzip Coding">Section 4.2.3</a> of <a href="#Part1" id="rfc.xref.Part1.41"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a> 3553 3560 </td> 3554 3561 </tr> … … 3642 3649 </p> 3643 3650 <h1 id="rfc.section.12"><a href="#rfc.section.12">12.</a> <a id="acks" href="#acks">Acknowledgments</a></h1> 3644 <p id="rfc.section.12.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 9</a> of <a href="#Part1" id="rfc.xref.Part1.4 5"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>.3651 <p id="rfc.section.12.p.1">See <a href="p1-messaging.html#acks" title="Acknowledgments">Section 9</a> of <a href="#Part1" id="rfc.xref.Part1.42"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>. 3645 3652 </p> 3646 3653 <h1 id="rfc.references"><a id="rfc.section.13" href="#rfc.section.13">13.</a> References … … 3863 3870 MIME environments. 3864 3871 </p> 3865 <div id="rfc.figure.u.6 1"></div><pre class="inline"><span id="rfc.iref.g.59"></span> <a href="#mime-version" class="smpl">MIME-Version</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a> "." 1*<a href="#imported.abnf" class="smpl">DIGIT</a>3872 <div id="rfc.figure.u.62"></div><pre class="inline"><span id="rfc.iref.g.61"></span> <a href="#mime-version" class="smpl">MIME-Version</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a> "." 1*<a href="#imported.abnf" class="smpl">DIGIT</a> 3866 3873 </pre><p id="rfc.section.A.1.p.3">MIME version "1.0" is the default for use in HTTP/1.1. However, HTTP/1.1 message parsing and semantics are defined by this 3867 3874 document and not the MIME specification. … … 3950 3957 <p id="rfc.section.C.p.16">Allow <a href="#header.referer" class="smpl">Referer</a> field value of "about:blank" as alternative to not specifying it. (<a href="#header.referer" id="rfc.xref.header.referer.3" title="Referer">Section 9.15</a>) 3951 3958 </p> 3952 <p id="rfc.section.C.p.17">In the description of the <a href="#header.server" class="smpl">Server</a> header field, the <a href="p1-messaging.html#header.via" class="smpl">Via</a> field was described as a SHOULD. The requirement was and is stated correctly in the description of the Via header field in <a href="p1-messaging.html#header.via" title="Via">Section 6.2</a> of <a href="#Part1" id="rfc.xref.Part1.4 6"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>. (<a href="#header.server" id="rfc.xref.header.server.4" title="Server">Section 9.17</a>)3959 <p id="rfc.section.C.p.17">In the description of the <a href="#header.server" class="smpl">Server</a> header field, the <a href="p1-messaging.html#header.via" class="smpl">Via</a> field was described as a SHOULD. The requirement was and is stated correctly in the description of the Via header field in <a href="p1-messaging.html#header.via" title="Via">Section 6.2</a> of <a href="#Part1" id="rfc.xref.Part1.43"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>. (<a href="#header.server" id="rfc.xref.header.server.4" title="Server">Section 9.17</a>) 3953 3960 </p> 3954 3961 <p id="rfc.section.C.p.18">Clarify contexts that charset is used in. (<a href="#character.sets" title="Character Encodings (charset)">Section 5.3</a>) … … 3978 3985 (any visible US-ASCII character). 3979 3986 </p> 3980 <p id="rfc.section.D.p.2">The rules below are defined in <a href="#Part1" id="rfc.xref.Part1.4 7"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>:3981 </p> 3982 <div id="rfc.figure.u.6 2"></div><pre class="inline"> <a href="#imported.abnf" class="smpl">BWS</a> = <BWS, defined in <a href="#Part1" id="rfc.xref.Part1.48"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>>3983 <a href="#imported.abnf" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.4 9"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>>3984 <a href="#imported.abnf" class="smpl">RWS</a> = <RWS, defined in <a href="#Part1" id="rfc.xref.Part1. 50"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>>3985 <a href="#imported.abnf" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1. 51"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>>3986 <a href="#imported.abnf" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1. 52"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>>3987 <a href="#imported.abnf" class="smpl">word</a> = <word, defined in <a href="#Part1" id="rfc.xref.Part1.5 3"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>>3987 <p id="rfc.section.D.p.2">The rules below are defined in <a href="#Part1" id="rfc.xref.Part1.44"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>: 3988 </p> 3989 <div id="rfc.figure.u.63"></div><pre class="inline"> <a href="#imported.abnf" class="smpl">BWS</a> = <BWS, defined in <a href="#Part1" id="rfc.xref.Part1.45"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>> 3990 <a href="#imported.abnf" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.46"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>> 3991 <a href="#imported.abnf" class="smpl">RWS</a> = <RWS, defined in <a href="#Part1" id="rfc.xref.Part1.47"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.1</a>> 3992 <a href="#imported.abnf" class="smpl">quoted-string</a> = <quoted-string, defined in <a href="#Part1" id="rfc.xref.Part1.48"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>> 3993 <a href="#imported.abnf" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.49"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>> 3994 <a href="#imported.abnf" class="smpl">word</a> = <word, defined in <a href="#Part1" id="rfc.xref.Part1.50"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>> 3988 3995 3989 <a href="#imported.abnf" class="smpl">absolute-URI</a> = <absolute-URI, defined in <a href="#Part1" id="rfc.xref.Part1.54"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>> 3990 <a href="#imported.abnf" class="smpl">comment</a> = <comment, defined in <a href="#Part1" id="rfc.xref.Part1.55"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>> 3991 <a href="#imported.abnf" class="smpl">partial-URI</a> = <partial-URI, defined in <a href="#Part1" id="rfc.xref.Part1.56"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>> 3992 <a href="#imported.abnf" class="smpl">qvalue</a> = <qvalue, defined in <a href="#Part1" id="rfc.xref.Part1.57"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#quality.values" title="Quality Values">Section 4.3.1</a>> 3993 <a href="#imported.abnf" class="smpl">URI-reference</a> = <URI-reference, defined in <a href="#Part1" id="rfc.xref.Part1.58"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>> 3996 <a href="#imported.abnf" class="smpl">absolute-URI</a> = <absolute-URI, defined in <a href="#Part1" id="rfc.xref.Part1.51"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>> 3997 <a href="#imported.abnf" class="smpl">comment</a> = <comment, defined in <a href="#Part1" id="rfc.xref.Part1.52"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.4</a>> 3998 <a href="#imported.abnf" class="smpl">partial-URI</a> = <partial-URI, defined in <a href="#Part1" id="rfc.xref.Part1.53"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>> 3999 <a href="#imported.abnf" class="smpl">URI-reference</a> = <URI-reference, defined in <a href="#Part1" id="rfc.xref.Part1.54"><cite title="HTTP/1.1, part 1: Message Routing and Syntax"">[Part1]</cite></a>, <a href="p1-messaging.html#uri" title="Uniform Resource Identifiers">Section 2.8</a>> 3994 4000 </pre><h1 id="rfc.section.E"><a href="#rfc.section.E">E.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> 3995 <div id="rfc.figure.u.6 3"></div> <pre class="inline"><a href="#header.accept" class="smpl">Accept</a> = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [4001 <div id="rfc.figure.u.64"></div> <pre class="inline"><a href="#header.accept" class="smpl">Accept</a> = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [ 3996 4002 OWS ( media-range [ accept-params ] ) ] ) ] 3997 <a href="#header.accept-charset" class="smpl">Accept-Charset</a> = *( "," OWS ) ( ( charset / "*" ) [ OWS ";" OWS "q=" 3998 qvalue ] ) *( OWS "," [ OWS ( ( charset / "*" ) [ OWS ";" OWS "q=" 3999 qvalue ] ) ] ) 4000 <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> = [ ( "," / ( codings [ OWS ";" OWS "q=" qvalue ] ) ) 4001 *( OWS "," [ OWS ( codings [ OWS ";" OWS "q=" qvalue ] ) ] ) ] 4002 <a href="#header.accept-language" class="smpl">Accept-Language</a> = *( "," OWS ) ( language-range [ OWS ";" OWS "q=" 4003 qvalue ] ) *( OWS "," [ OWS ( language-range [ OWS ";" OWS "q=" 4004 qvalue ] ) ] ) 4003 <a href="#header.accept-charset" class="smpl">Accept-Charset</a> = *( "," OWS ) ( ( charset / "*" ) [ weight ] ) *( OWS 4004 "," [ OWS ( ( charset / "*" ) [ weight ] ) ] ) 4005 <a href="#header.accept-encoding" class="smpl">Accept-Encoding</a> = [ ( "," / ( codings [ weight ] ) ) *( OWS "," [ OWS 4006 ( codings [ weight ] ) ] ) ] 4007 <a href="#header.accept-language" class="smpl">Accept-Language</a> = *( "," OWS ) ( language-range [ weight ] ) *( OWS 4008 "," [ OWS ( language-range [ weight ] ) ] ) 4005 4009 <a href="#header.allow" class="smpl">Allow</a> = [ ( "," / method ) *( OWS "," [ OWS method ] ) ] 4006 4010 … … 4042 4046 <a href="#imported.abnf" class="smpl">absolute-URI</a> = <absolute-URI, defined in [Part1], Section 2.8> 4043 4047 <a href="#header.accept" class="smpl">accept-ext</a> = OWS ";" OWS token [ "=" word ] 4044 <a href="#header.accept" class="smpl">accept-params</a> = OWS ";" OWS "q=" qvalue*accept-ext4048 <a href="#header.accept" class="smpl">accept-params</a> = weight *accept-ext 4045 4049 <a href="#obsolete.date.formats" class="smpl">asctime-date</a> = day-name SP date3 SP time-of-day SP year 4046 4050 <a href="#rule.parameter" class="smpl">attribute</a> = token … … 4109 4113 4110 4114 <a href="#imported.abnf" class="smpl">quoted-string</a> = <quoted-string, defined in [Part1], Section 3.2.4> 4111 <a href="# imported.abnf" class="smpl">qvalue</a> = <qvalue, defined in [Part1], Section 4.3.1>4115 <a href="#quality.values" class="smpl">qvalue</a> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 4112 4116 4113 4117 <a href="#preferred.date.format" class="smpl">rfc1123-date</a> = day-name "," SP date1 SP time-of-day SP GMT … … 4123 4127 <a href="#rule.parameter" class="smpl">value</a> = word 4124 4128 4129 <a href="#quality.values" class="smpl">weight</a> = OWS ";" OWS "q=" qvalue 4125 4130 <a href="#imported.abnf" class="smpl">word</a> = <word, defined in [Part1], Section 3.2.4> 4126 4131 … … 4699 4704 <li><a id="rfc.index.1" href="#rfc.index.1"><b>1</b></a><ul> 4700 4705 <li>100 Continue (status code) <a href="#rfc.xref.status.100.1">4.1</a>, <a href="#rfc.iref.21"><b>4.3.1</b></a>, <a href="#rfc.xref.status.100.2">10.2</a></li> 4701 <li>100-continue (expect value) <a href="#rfc.iref.1 39"><b>9.11</b></a></li>4706 <li>100-continue (expect value) <a href="#rfc.iref.141"><b>9.11</b></a></li> 4702 4707 <li>101 Switching Protocols (status code) <a href="#rfc.xref.status.101.1">4.1</a>, <a href="#rfc.iref.22"><b>4.3.2</b></a>, <a href="#rfc.xref.status.101.2">10.2</a></li> 4703 4708 <li>1xx Informational (status code class) <a href="#rfc.iref.20"><b>4.3</b></a></li> … … 4804 4809 <li><tt>Grammar</tt> 4805 4810 <ul> 4806 <li><tt>Accept</tt> <a href="#rfc.iref.g.3 1"><b>9.1</b></a></li>4807 <li><tt>Accept-Charset</tt> <a href="#rfc.iref.g.3 5"><b>9.2</b></a></li>4808 <li><tt>Accept-Encoding</tt> <a href="#rfc.iref.g.3 6"><b>9.3</b></a></li>4809 <li><tt>accept-ext</tt> <a href="#rfc.iref.g.3 4"><b>9.1</b></a></li>4810 <li><tt>Accept-Language</tt> <a href="#rfc.iref.g. 38"><b>9.4</b></a></li>4811 <li><tt>accept-params</tt> <a href="#rfc.iref.g.3 3"><b>9.1</b></a></li>4812 <li><tt>Allow</tt> <a href="#rfc.iref.g.4 0"><b>9.5</b></a></li>4811 <li><tt>Accept</tt> <a href="#rfc.iref.g.33"><b>9.1</b></a></li> 4812 <li><tt>Accept-Charset</tt> <a href="#rfc.iref.g.37"><b>9.2</b></a></li> 4813 <li><tt>Accept-Encoding</tt> <a href="#rfc.iref.g.38"><b>9.3</b></a></li> 4814 <li><tt>accept-ext</tt> <a href="#rfc.iref.g.36"><b>9.1</b></a></li> 4815 <li><tt>Accept-Language</tt> <a href="#rfc.iref.g.40"><b>9.4</b></a></li> 4816 <li><tt>accept-params</tt> <a href="#rfc.iref.g.35"><b>9.1</b></a></li> 4817 <li><tt>Allow</tt> <a href="#rfc.iref.g.42"><b>9.5</b></a></li> 4813 4818 <li><tt>asctime-date</tt> <a href="#rfc.iref.g.18"><b>5.1</b></a></li> 4814 4819 <li><tt>attribute</tt> <a href="#rfc.iref.g.28"><b>5.5</b></a></li> 4815 4820 <li><tt>charset</tt> <a href="#rfc.iref.g.21"><b>5.3</b></a></li> 4816 <li><tt>codings</tt> <a href="#rfc.iref.g.3 7"><b>9.3</b></a></li>4821 <li><tt>codings</tt> <a href="#rfc.iref.g.39"><b>9.3</b></a></li> 4817 4822 <li><tt>content-coding</tt> <a href="#rfc.iref.g.22"><b>5.4</b></a></li> 4818 <li><tt>Content-Encoding</tt> <a href="#rfc.iref.g.4 1"><b>9.6</b></a></li>4819 <li><tt>Content-Language</tt> <a href="#rfc.iref.g.4 2"><b>9.7</b></a></li>4820 <li><tt>Content-Location</tt> <a href="#rfc.iref.g.4 3"><b>9.8</b></a></li>4821 <li><tt>Content-Type</tt> <a href="#rfc.iref.g.4 4"><b>9.9</b></a></li>4822 <li><tt>Date</tt> <a href="#rfc.iref.g.4 5"><b>9.10</b></a></li>4823 <li><tt>Content-Encoding</tt> <a href="#rfc.iref.g.43"><b>9.6</b></a></li> 4824 <li><tt>Content-Language</tt> <a href="#rfc.iref.g.44"><b>9.7</b></a></li> 4825 <li><tt>Content-Location</tt> <a href="#rfc.iref.g.45"><b>9.8</b></a></li> 4826 <li><tt>Content-Type</tt> <a href="#rfc.iref.g.46"><b>9.9</b></a></li> 4827 <li><tt>Date</tt> <a href="#rfc.iref.g.47"><b>9.10</b></a></li> 4823 4828 <li><tt>date1</tt> <a href="#rfc.iref.g.5"><b>5.1</b></a></li> 4824 4829 <li><tt>day</tt> <a href="#rfc.iref.g.12"><b>5.1</b></a></li> 4825 4830 <li><tt>day-name</tt> <a href="#rfc.iref.g.10"><b>5.1</b></a></li> 4826 4831 <li><tt>day-name-l</tt> <a href="#rfc.iref.g.11"><b>5.1</b></a></li> 4827 <li><tt>delta-seconds</tt> <a href="#rfc.iref.g.5 6"><b>9.16</b></a></li>4828 <li><tt>Expect</tt> <a href="#rfc.iref.g.4 6"><b>9.11</b></a></li>4829 <li><tt>expect-name</tt> <a href="#rfc.iref.g.5 0"><b>9.11</b></a></li>4830 <li><tt>expect-param</tt> <a href="#rfc.iref.g. 48"><b>9.11</b></a></li>4831 <li><tt>expect-value</tt> <a href="#rfc.iref.g. 49"><b>9.11</b></a></li>4832 <li><tt>expectation</tt> <a href="#rfc.iref.g.4 7"><b>9.11</b></a></li>4833 <li><tt>From</tt> <a href="#rfc.iref.g.5 1"><b>9.12</b></a></li>4832 <li><tt>delta-seconds</tt> <a href="#rfc.iref.g.58"><b>9.16</b></a></li> 4833 <li><tt>Expect</tt> <a href="#rfc.iref.g.48"><b>9.11</b></a></li> 4834 <li><tt>expect-name</tt> <a href="#rfc.iref.g.52"><b>9.11</b></a></li> 4835 <li><tt>expect-param</tt> <a href="#rfc.iref.g.50"><b>9.11</b></a></li> 4836 <li><tt>expect-value</tt> <a href="#rfc.iref.g.51"><b>9.11</b></a></li> 4837 <li><tt>expectation</tt> <a href="#rfc.iref.g.49"><b>9.11</b></a></li> 4838 <li><tt>From</tt> <a href="#rfc.iref.g.53"><b>9.12</b></a></li> 4834 4839 <li><tt>GMT</tt> <a href="#rfc.iref.g.15"><b>5.1</b></a></li> 4835 4840 <li><tt>hour</tt> <a href="#rfc.iref.g.7"><b>5.1</b></a></li> 4836 4841 <li><tt>HTTP-date</tt> <a href="#rfc.iref.g.3"><b>5.1</b></a></li> 4837 <li><tt>language-range</tt> <a href="#rfc.iref.g. 39"><b>9.4</b></a></li>4842 <li><tt>language-range</tt> <a href="#rfc.iref.g.41"><b>9.4</b></a></li> 4838 4843 <li><tt>language-tag</tt> <a href="#rfc.iref.g.30"><b>5.6</b></a></li> 4839 <li><tt>Location</tt> <a href="#rfc.iref.g.5 2"><b>9.13</b></a></li>4840 <li><tt>Max-Forwards</tt> <a href="#rfc.iref.g.5 3"><b>9.14</b></a></li>4841 <li><tt>media-range</tt> <a href="#rfc.iref.g.3 2"><b>9.1</b></a></li>4844 <li><tt>Location</tt> <a href="#rfc.iref.g.54"><b>9.13</b></a></li> 4845 <li><tt>Max-Forwards</tt> <a href="#rfc.iref.g.55"><b>9.14</b></a></li> 4846 <li><tt>media-range</tt> <a href="#rfc.iref.g.34"><b>9.1</b></a></li> 4842 4847 <li><tt>media-type</tt> <a href="#rfc.iref.g.24"><b>5.5</b></a></li> 4843 4848 <li><tt>method</tt> <a href="#rfc.iref.g.1"><b>2</b></a></li> 4844 <li><tt>MIME-Version</tt> <a href="#rfc.iref.g. 59"><b>A.1</b></a></li>4849 <li><tt>MIME-Version</tt> <a href="#rfc.iref.g.61"><b>A.1</b></a></li> 4845 4850 <li><tt>minute</tt> <a href="#rfc.iref.g.8"><b>5.1</b></a></li> 4846 4851 <li><tt>month</tt> <a href="#rfc.iref.g.13"><b>5.1</b></a></li> … … 4849 4854 <li><tt>product</tt> <a href="#rfc.iref.g.19"><b>5.2</b></a></li> 4850 4855 <li><tt>product-version</tt> <a href="#rfc.iref.g.20"><b>5.2</b></a></li> 4851 <li><tt>Referer</tt> <a href="#rfc.iref.g.54"><b>9.15</b></a></li> 4852 <li><tt>Retry-After</tt> <a href="#rfc.iref.g.55"><b>9.16</b></a></li> 4856 <li><tt>qvalue</tt> <a href="#rfc.iref.g.32"><b>8.3</b></a></li> 4857 <li><tt>Referer</tt> <a href="#rfc.iref.g.56"><b>9.15</b></a></li> 4858 <li><tt>Retry-After</tt> <a href="#rfc.iref.g.57"><b>9.16</b></a></li> 4853 4859 <li><tt>rfc1123-date</tt> <a href="#rfc.iref.g.4"><b>5.1</b></a></li> 4854 4860 <li><tt>rfc850-date</tt> <a href="#rfc.iref.g.17"><b>5.1</b></a></li> 4855 4861 <li><tt>second</tt> <a href="#rfc.iref.g.9"><b>5.1</b></a></li> 4856 <li><tt>Server</tt> <a href="#rfc.iref.g.5 7"><b>9.17</b></a></li>4862 <li><tt>Server</tt> <a href="#rfc.iref.g.59"><b>9.17</b></a></li> 4857 4863 <li><tt>subtype</tt> <a href="#rfc.iref.g.26"><b>5.5</b></a></li> 4858 4864 <li><tt>time-of-day</tt> <a href="#rfc.iref.g.6"><b>5.1</b></a></li> 4859 4865 <li><tt>type</tt> <a href="#rfc.iref.g.25"><b>5.5</b></a></li> 4860 <li><tt>User-Agent</tt> <a href="#rfc.iref.g. 58"><b>9.18</b></a></li>4866 <li><tt>User-Agent</tt> <a href="#rfc.iref.g.60"><b>9.18</b></a></li> 4861 4867 <li><tt>value</tt> <a href="#rfc.iref.g.29"><b>5.5</b></a></li> 4868 <li><tt>weight</tt> <a href="#rfc.iref.g.31"><b>8.3</b></a></li> 4862 4869 <li><tt>year</tt> <a href="#rfc.iref.g.14"><b>5.1</b></a></li> 4863 4870 </ul> … … 4924 4931 </li> 4925 4932 <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul> 4926 <li><em>Part1</em> <a href="#rfc.xref.Part1.1">1</a>, <a href="#rfc.xref.Part1.2">1.1</a>, <a href="#rfc.xref.Part1.3">1.2</a>, <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.5">2.2.1</a>, <a href="#rfc.xref.Part1.6">2.3.1</a>, <a href="#rfc.xref.Part1.7">2.3.7</a>, <a href="#rfc.xref.Part1.8">2.3.7</a>, <a href="#rfc.xref.Part1.9">2.3.8</a>, <a href="#rfc.xref.Part1.10">3</a>, <a href="#rfc.xref.Part1.11">3.1</a>, <a href="#rfc.xref.Part1.12">3.1</a>, <a href="#rfc.xref.Part1.13">3.1</a>, <a href="#rfc.xref.Part1.14">3.1</a>, <a href="#rfc.xref.Part1.15">3.1</a>, <a href="#rfc.xref.Part1.16">3.2</a>, <a href="#rfc.xref.Part1.17">3.2</a>, <a href="#rfc.xref.Part1.18">3.3</a>, <a href="#rfc.xref.Part1.19">4.3.1</a>, <a href="#rfc.xref.Part1.20">4.3.2</a>, <a href="#rfc.xref.Part1.21">4.4.4</a>, <a href="#rfc.xref.Part1.22">4.4.6</a>, <a href="#rfc.xref.Part1.23">4.6.15</a>, <a href="#rfc.xref.Part1.24">4.7.6</a>, <a href="#rfc.xref.Part1.25">5.4</a>, <a href="#rfc.xref.Part1.26">5.4</a>, <a href="#rfc.xref.Part1.27">5.4</a>, <a href="#rfc.xref.Part1.28">5.4.1</a>, <a href="#rfc.xref.Part1.29">5.4.1</a>, <a href="#rfc.xref.Part1.30">6.1</a>, <a href="#rfc.xref.Part1.31">6.2</a>, <a href="#rfc.xref.Part1.32">7</a>, <a href="#rfc.xref.Part1.33">7.1</a>, <a href="#rfc.xref.Part1.34"> 8.1</a>, <a href="#rfc.xref.Part1.35">9.1</a>, <a href="#rfc.xref.Part1.36">9.3</a>, <a href="#rfc.xref.Part1.37">9.8</a>, <a href="#rfc.xref.Part1.38">9.11</a>, <a href="#rfc.xref.Part1.39">9.17</a>, <a href="#rfc.xref.Part1.40">9.17</a>, <a href="#rfc.xref.Part1.41">9.18</a>, <a href="#rfc.xref.Part1.42">10.4</a>, <a href="#rfc.xref.Part1.43">10.4</a>, <a href="#rfc.xref.Part1.44">10.4</a>, <a href="#rfc.xref.Part1.45">12</a>, <a href="#Part1"><b>13.1</b></a>, <a href="#rfc.xref.Part1.46">C</a>, <a href="#rfc.xref.Part1.47">D</a>, <a href="#rfc.xref.Part1.48">D</a>, <a href="#rfc.xref.Part1.49">D</a>, <a href="#rfc.xref.Part1.50">D</a>, <a href="#rfc.xref.Part1.51">D</a>, <a href="#rfc.xref.Part1.52">D</a>, <a href="#rfc.xref.Part1.53">D</a>, <a href="#rfc.xref.Part1.54">D</a>, <a href="#rfc.xref.Part1.55">D</a>, <a href="#rfc.xref.Part1.56">D</a>, <a href="#rfc.xref.Part1.57">D</a>, <a href="#rfc.xref.Part1.58">D</a><ul>4933 <li><em>Part1</em> <a href="#rfc.xref.Part1.1">1</a>, <a href="#rfc.xref.Part1.2">1.1</a>, <a href="#rfc.xref.Part1.3">1.2</a>, <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.5">2.2.1</a>, <a href="#rfc.xref.Part1.6">2.3.1</a>, <a href="#rfc.xref.Part1.7">2.3.7</a>, <a href="#rfc.xref.Part1.8">2.3.7</a>, <a href="#rfc.xref.Part1.9">2.3.8</a>, <a href="#rfc.xref.Part1.10">3</a>, <a href="#rfc.xref.Part1.11">3.1</a>, <a href="#rfc.xref.Part1.12">3.1</a>, <a href="#rfc.xref.Part1.13">3.1</a>, <a href="#rfc.xref.Part1.14">3.1</a>, <a href="#rfc.xref.Part1.15">3.1</a>, <a href="#rfc.xref.Part1.16">3.2</a>, <a href="#rfc.xref.Part1.17">3.2</a>, <a href="#rfc.xref.Part1.18">3.3</a>, <a href="#rfc.xref.Part1.19">4.3.1</a>, <a href="#rfc.xref.Part1.20">4.3.2</a>, <a href="#rfc.xref.Part1.21">4.4.4</a>, <a href="#rfc.xref.Part1.22">4.4.6</a>, <a href="#rfc.xref.Part1.23">4.6.15</a>, <a href="#rfc.xref.Part1.24">4.7.6</a>, <a href="#rfc.xref.Part1.25">5.4</a>, <a href="#rfc.xref.Part1.26">5.4</a>, <a href="#rfc.xref.Part1.27">5.4</a>, <a href="#rfc.xref.Part1.28">5.4.1</a>, <a href="#rfc.xref.Part1.29">5.4.1</a>, <a href="#rfc.xref.Part1.30">6.1</a>, <a href="#rfc.xref.Part1.31">6.2</a>, <a href="#rfc.xref.Part1.32">7</a>, <a href="#rfc.xref.Part1.33">7.1</a>, <a href="#rfc.xref.Part1.34">9.8</a>, <a href="#rfc.xref.Part1.35">9.11</a>, <a href="#rfc.xref.Part1.36">9.17</a>, <a href="#rfc.xref.Part1.37">9.17</a>, <a href="#rfc.xref.Part1.38">9.18</a>, <a href="#rfc.xref.Part1.39">10.4</a>, <a href="#rfc.xref.Part1.40">10.4</a>, <a href="#rfc.xref.Part1.41">10.4</a>, <a href="#rfc.xref.Part1.42">12</a>, <a href="#Part1"><b>13.1</b></a>, <a href="#rfc.xref.Part1.43">C</a>, <a href="#rfc.xref.Part1.44">D</a>, <a href="#rfc.xref.Part1.45">D</a>, <a href="#rfc.xref.Part1.46">D</a>, <a href="#rfc.xref.Part1.47">D</a>, <a href="#rfc.xref.Part1.48">D</a>, <a href="#rfc.xref.Part1.49">D</a>, <a href="#rfc.xref.Part1.50">D</a>, <a href="#rfc.xref.Part1.51">D</a>, <a href="#rfc.xref.Part1.52">D</a>, <a href="#rfc.xref.Part1.53">D</a>, <a href="#rfc.xref.Part1.54">D</a><ul> 4927 4934 <li><em>Section 1.2</em> <a href="#rfc.xref.Part1.3">1.2</a></li> 4928 4935 <li><em>Section 2</em> <a href="#rfc.xref.Part1.2">1.1</a></li> 4929 4936 <li><em>Section 2.4</em> <a href="#rfc.xref.Part1.21">4.4.4</a></li> 4930 4937 <li><em>Section 2.7</em> <a href="#rfc.xref.Part1.24">4.7.6</a></li> 4931 <li><em>Section 2.8</em> <a href="#rfc.xref.Part1.5 4">D</a>, <a href="#rfc.xref.Part1.56">D</a>, <a href="#rfc.xref.Part1.58">D</a></li>4932 <li><em>Section 3.2</em> <a href="#rfc.xref.Part1.10">3</a>, <a href="#rfc.xref.Part1.13">3.1</a>, <a href="#rfc.xref.Part1.3 9">9.17</a>, <a href="#rfc.xref.Part1.41">9.18</a></li>4933 <li><em>Section 3.2.1</em> <a href="#rfc.xref.Part1.4 8">D</a>, <a href="#rfc.xref.Part1.49">D</a>, <a href="#rfc.xref.Part1.50">D</a></li>4934 <li><em>Section 3.2.4</em> <a href="#rfc.xref.Part1.12">3.1</a>, <a href="#rfc.xref.Part1. 51">D</a>, <a href="#rfc.xref.Part1.52">D</a>, <a href="#rfc.xref.Part1.53">D</a>, <a href="#rfc.xref.Part1.55">D</a></li>4938 <li><em>Section 2.8</em> <a href="#rfc.xref.Part1.51">D</a>, <a href="#rfc.xref.Part1.53">D</a>, <a href="#rfc.xref.Part1.54">D</a></li> 4939 <li><em>Section 3.2</em> <a href="#rfc.xref.Part1.10">3</a>, <a href="#rfc.xref.Part1.13">3.1</a>, <a href="#rfc.xref.Part1.36">9.17</a>, <a href="#rfc.xref.Part1.38">9.18</a></li> 4940 <li><em>Section 3.2.1</em> <a href="#rfc.xref.Part1.45">D</a>, <a href="#rfc.xref.Part1.46">D</a>, <a href="#rfc.xref.Part1.47">D</a></li> 4941 <li><em>Section 3.2.4</em> <a href="#rfc.xref.Part1.12">3.1</a>, <a href="#rfc.xref.Part1.48">D</a>, <a href="#rfc.xref.Part1.49">D</a>, <a href="#rfc.xref.Part1.50">D</a>, <a href="#rfc.xref.Part1.52">D</a></li> 4935 4942 <li><em>Section 3.3</em> <a href="#rfc.xref.Part1.5">2.2.1</a>, <a href="#rfc.xref.Part1.22">4.4.6</a>, <a href="#rfc.xref.Part1.31">6.2</a>, <a href="#rfc.xref.Part1.32">7</a></li> 4936 4943 <li><em>Section 3.3.2</em> <a href="#rfc.xref.Part1.30">6.1</a></li> 4937 4944 <li><em>Section 4</em> <a href="#rfc.xref.Part1.28">5.4.1</a></li> 4938 4945 <li><em>Section 4.1</em> <a href="#rfc.xref.Part1.15">3.1</a></li> 4939 <li><em>Section 4.2.1</em> <a href="#rfc.xref.Part1.25">5.4</a>, <a href="#rfc.xref.Part1. 42">10.4</a></li>4946 <li><em>Section 4.2.1</em> <a href="#rfc.xref.Part1.25">5.4</a>, <a href="#rfc.xref.Part1.39">10.4</a></li> 4940 4947 <li><em>Section 4.2</em> <a href="#rfc.xref.Part1.29">5.4.1</a></li> 4941 <li><em>Section 4.2.2</em> <a href="#rfc.xref.Part1.26">5.4</a>, <a href="#rfc.xref.Part1.4 3">10.4</a></li>4942 <li><em>Section 4.2.3</em> <a href="#rfc.xref.Part1.27">5.4</a>, <a href="#rfc.xref.Part1.4 4">10.4</a></li>4948 <li><em>Section 4.2.2</em> <a href="#rfc.xref.Part1.26">5.4</a>, <a href="#rfc.xref.Part1.40">10.4</a></li> 4949 <li><em>Section 4.2.3</em> <a href="#rfc.xref.Part1.27">5.4</a>, <a href="#rfc.xref.Part1.41">10.4</a></li> 4943 4950 <li><em>Section 4.3</em> <a href="#rfc.xref.Part1.17">3.2</a></li> 4944 <li><em>Section 4.3.1</em> <a href="#rfc.xref.Part1.34">8.1</a>, <a href="#rfc.xref.Part1.35">9.1</a>, <a href="#rfc.xref.Part1.36">9.3</a>, <a href="#rfc.xref.Part1.57">D</a></li>4945 4951 <li><em>Section 5.3</em> <a href="#rfc.xref.Part1.6">2.3.1</a>, <a href="#rfc.xref.Part1.9">2.3.8</a></li> 4946 4952 <li><em>Section 5.4</em> <a href="#rfc.xref.Part1.16">3.2</a></li> 4947 <li><em>Section 5.5</em> <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.18">3.3</a>, <a href="#rfc.xref.Part1.33">7.1</a>, <a href="#rfc.xref.Part1.3 7">9.8</a></li>4953 <li><em>Section 5.5</em> <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.18">3.3</a>, <a href="#rfc.xref.Part1.33">7.1</a>, <a href="#rfc.xref.Part1.34">9.8</a></li> 4948 4954 <li><em>Section 6.1</em> <a href="#rfc.xref.Part1.14">3.1</a></li> 4949 <li><em>Section 6.2</em> <a href="#rfc.xref.Part1.7">2.3.7</a>, <a href="#rfc.xref.Part1. 40">9.17</a>, <a href="#rfc.xref.Part1.46">C</a></li>4950 <li><em>Section 6.4.3</em> <a href="#rfc.xref.Part1.19">4.3.1</a>, <a href="#rfc.xref.Part1.3 8">9.11</a></li>4955 <li><em>Section 6.2</em> <a href="#rfc.xref.Part1.7">2.3.7</a>, <a href="#rfc.xref.Part1.37">9.17</a>, <a href="#rfc.xref.Part1.43">C</a></li> 4956 <li><em>Section 6.4.3</em> <a href="#rfc.xref.Part1.19">4.3.1</a>, <a href="#rfc.xref.Part1.35">9.11</a></li> 4951 4957 <li><em>Section 6.5</em> <a href="#rfc.xref.Part1.20">4.3.2</a>, <a href="#rfc.xref.Part1.23">4.6.15</a></li> 4952 4958 <li><em>Section 7.3.1</em> <a href="#rfc.xref.Part1.8">2.3.7</a></li> 4953 <li><em>Section 9</em> <a href="#rfc.xref.Part1.4 5">12</a></li>4959 <li><em>Section 9</em> <a href="#rfc.xref.Part1.42">12</a></li> 4954 4960 <li><em>Appendix B</em> <a href="#rfc.xref.Part1.11">3.1</a></li> 4955 4961 </ul> -
draft-ietf-httpbis/latest/p2-semantics.xml
r1825 r1831 47 47 <!ENTITY header-cache-control "<xref target='Part6' x:rel='#header.cache-control' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 48 48 <!ENTITY header-connection "<xref target='Part1' x:rel='#header.connection' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 49 <!ENTITY header-content-length "<xref target='Part1' x:rel='#header.content-length' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 49 50 <!ENTITY header-content-location "<xref target='header.content-location' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 50 51 <!ENTITY header-content-range "<xref target='Part5' x:rel='#header.content-range' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 59 60 <!ENTITY header-if-range "<xref target='Part5' x:rel='#header.if-range' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 60 61 <!ENTITY header-if-unmodified-since "<xref target='Part4' x:rel='#header.if-unmodified-since' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 62 <!ENTITY header-last-modified "<xref target='Part4' x:rel='#header.last-modified' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 61 63 <!ENTITY header-pragma "<xref target='Part6' x:rel='#header.pragma' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 62 64 <!ENTITY header-proxy-authenticate "<xref target='Part7' x:rel='#header.proxy-authenticate' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 63 65 <!ENTITY header-proxy-authorization "<xref target='Part7' x:rel='#header.proxy-authorization' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 64 66 <!ENTITY header-range "<xref target='Part5' x:rel='#header.range' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 67 <!ENTITY header-te "<xref target='Part1' x:rel='#header.te' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 68 <!ENTITY header-transfer-encoding "<xref target='Part1' x:rel='#header.transfer-encoding' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 65 69 <!ENTITY header-upgrade "<xref target='Part1' x:rel='#header.upgrade' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 66 <!ENTITY header- te "<xref target='Part1' x:rel='#header.te' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">70 <!ENTITY header-user-agent "<xref target='header.user-agent' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 67 71 <!ENTITY header-vary "<xref target='Part6' x:rel='#header.vary' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 68 72 <!ENTITY header-via "<xref target='Part1' x:rel='#header.via' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 85 89 <!ENTITY p6-invalid "<xref target='Part6' x:rel='#invalidation.after.updates.or.deletions' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 86 90 <!ENTITY p6-head "<xref target='Part6' x:rel='#head.effects' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 91 <!ENTITY qvalue "<xref target='quality.values'/>"> 87 92 <!ENTITY architecture "<xref target='Part1' x:rel='#architecture' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 88 93 <!ENTITY notation "<xref target='Part1' x:rel='#notation' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 92 97 <!ENTITY field-components "<xref target='Part1' x:rel='#field.components' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 93 98 <!ENTITY caching-neg-resp "<xref target='Part6' x:rel='#caching.negotiated.responses' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 94 <!ENTITY header-transfer-encoding "<xref target='Part1' x:rel='#header.transfer-encoding' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">95 <!ENTITY header-content-length "<xref target='Part1' x:rel='#header.content-length' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">96 <!ENTITY header-content-range "<xref target='Part5' x:rel='#header.content-range' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">97 <!ENTITY header-etag "<xref target='Part4' x:rel='#header.etag' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">98 <!ENTITY header-expires "<xref target='Part6' x:rel='#header.expires' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">99 <!ENTITY header-last-modified "<xref target='Part4' x:rel='#header.last-modified' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">100 <!ENTITY header-user-agent "<xref target='header.user-agent' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">101 <!ENTITY header-vary "<xref target='Part6' x:rel='#header.vary' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">102 99 <!ENTITY message-body "<xref target='Part1' x:rel='#message.body' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 103 100 <!ENTITY multipart-byteranges "<xref target='Part5' x:rel='#internet.media.type.multipart.byteranges' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 104 101 <!ENTITY http-date "<xref target='http.date' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 105 <!ENTITY qvalue "<xref target='Part1' x:rel='#quality.values' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">106 102 <!ENTITY uri "<xref target='Part1' x:rel='#uri' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> 107 103 <!ENTITY effective-request-uri "<xref target='Part1' x:rel='#effective.request.uri' xmlns:x='http://purl.org/net/xml2rfc/ext'/>"> … … 2817 2813 </t> 2818 2814 <t> 2819 Note that in all cases, the supplier of representations has the2815 Note that, in all cases, the supplier of representations has the 2820 2816 responsibility for determining which representations might be 2821 2817 considered to be the "same information". … … 2875 2871 sending a response that doesn't conform to them is better than sending a <x:ref>406 2876 2872 (Not Acceptable)</x:ref> response. 2877 </t>2878 <t>2879 Many of the mechanisms for expressing preferences use quality values to2880 declare relative preference. See &qvalue; for more information.2881 2873 </t> 2882 2874 <t> … … 2942 2934 </t> 2943 2935 </section> 2936 2937 <section title="Quality Values" anchor="quality.values"> 2938 <x:anchor-alias value="weight"/> 2939 <x:anchor-alias value="qvalue"/> 2940 <t> 2941 Many of the request header fields for server-driven content negotiation 2942 use a common parameter, named "q", to assign a relative "weight" to the 2943 preference for that associated kind of content. 2944 This weight is referred to as a "quality value" (or "qvalue") because 2945 the same parameter name is often used within server configurations to 2946 assign a weight to the relative quality of the various representations 2947 that can be selected for a resource. 2948 </t> 2949 <t> 2950 The weight is normalized to a real number in the range 0 through 1, 2951 where 0.001 is the least preferred and 1 is the most preferred; 2952 a value of 0 means "not acceptable". If no "q" parameter is present, 2953 the default weight is 1. 2954 </t> 2955 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="weight"/><iref primary="true" item="Grammar" subitem="qvalue"/> 2956 <x:ref>weight</x:ref> = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> 2957 <x:ref>qvalue</x:ref> = ( "0" [ "." 0*3<x:ref>DIGIT</x:ref> ] ) 2958 / ( "1" [ "." 0*3("0") ] ) 2959 </artwork></figure> 2960 <t> 2961 A sender of qvalue &MUST-NOT; generate more than three digits after the 2962 decimal point. User configuration of these values ought to be limited in 2963 the same fashion. 2964 </t> 2965 </section> 2944 2966 </section> 2945 2967 … … 2971 2993 / ( <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> ) 2972 2994 ) *( <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>parameter</x:ref> ) 2973 <x:ref>accept-params</x:ref> = <x:ref> OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> *( <x:ref>accept-ext</x:ref> )2995 <x:ref>accept-params</x:ref> = <x:ref>weight</x:ref> *( <x:ref>accept-ext</x:ref> ) 2974 2996 <x:ref>accept-ext</x:ref> = <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> <x:ref>token</x:ref> [ "=" <x:ref>word</x:ref> ] 2975 2997 </artwork></figure> … … 2982 3004 <t> 2983 3005 Each media-range &MAY; be followed by one or more accept-params, 2984 beginning with the "q" parameter for indicating a relative quality 2985 factor. The first "q" parameter (if any) separates the media-range 2986 parameter(s) from the accept-params. Quality factors allow the user 2987 or user agent to indicate the relative degree of preference for that 2988 media-range, using the qvalue scale from 0 to 1 (&qvalue;). The 2989 default value is q=1. 3006 beginning with the "q" parameter for indicating a relative weight, 3007 as defined in &qvalue;. 3008 The first "q" parameter (if any) separates the media-range 3009 parameter(s) from the accept-params. 2990 3010 </t> 2991 3011 <x:note> … … 3093 3113 </t> 3094 3114 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Charset"/> 3095 <x:ref>Accept-Charset</x:ref> = 1#( ( <x:ref>charset</x:ref> / "*" ) 3096 [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] ) 3115 <x:ref>Accept-Charset</x:ref> = 1#( ( <x:ref>charset</x:ref> / "*" ) [ <x:ref>weight</x:ref> ] ) 3097 3116 </artwork></figure> 3098 3117 <t> … … 3100 3119 <xref target="character.sets"/>. Each charset &MAY; be given an 3101 3120 associated quality value which represents the user's preference 3102 for that charset. The default value is q=1. An example is 3121 for that charset, as defined in &qvalue;. 3122 An example is 3103 3123 </t> 3104 3124 <figure><artwork type="example"> … … 3108 3128 The special value "*", if present in the Accept-Charset field, 3109 3129 matches every character encoding which is not mentioned elsewhere in the 3110 Accept-Charset field. If no "*" is present in an Accept-Charset field, then 3111 all character encodings not explicitly mentioned get a quality value of 0. 3130 Accept-Charset field. If no "*" is present in an Accept-Charset field, 3131 then any character encodings not explicitly mentioned in the field are 3132 considered "not acceptable" to the client. 3112 3133 </t> 3113 3134 <t> 3114 3135 A request without any Accept-Charset header field implies that the user 3115 3136 agent will accept any character encoding in response. 3137 </t> 3138 <t> 3116 3139 If an Accept-Charset header field is present in a request and none of the 3117 3140 available representations for the response have a character encoding that … … 3135 3158 </t> 3136 3159 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Encoding"/><iref primary="true" item="Grammar" subitem="codings"/> 3137 <x:ref>Accept-Encoding</x:ref> = #( <x:ref>codings</x:ref> [ <x:ref> OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] )3160 <x:ref>Accept-Encoding</x:ref> = #( <x:ref>codings</x:ref> [ <x:ref>weight</x:ref> ] ) 3138 3161 <x:ref>codings</x:ref> = <x:ref>content-coding</x:ref> / "identity" / "*" 3139 3162 </artwork></figure> 3140 3163 <t> 3141 3164 Each codings value &MAY; be given an associated quality value which 3142 represents the preference for that encoding . The default value is q=1.3165 represents the preference for that encoding, as defined in &qvalue;. 3143 3166 </t> 3144 3167 <t> … … 3184 3207 <t> 3185 3208 A request without an Accept-Encoding header field implies that the user 3186 agent will accept any content-coding in response, but a representation 3187 without content-coding is preferred for compatibility with the widest 3188 variety of user agents. 3209 agent will accept any content-coding in response. 3189 3210 </t> 3190 3211 <x:note> … … 3208 3229 </t> 3209 3230 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Language"/><iref primary="true" item="Grammar" subitem="language-range"/> 3210 <x:ref>Accept-Language</x:ref> = 3211 1#( <x:ref>language-range</x:ref> [ <x:ref>OWS</x:ref> ";" <x:ref>OWS</x:ref> "q=" <x:ref>qvalue</x:ref> ] ) 3231 <x:ref>Accept-Language</x:ref> = 1#( <x:ref>language-range</x:ref> [ <x:ref>weight</x:ref> ] ) 3212 3232 <x:ref>language-range</x:ref> = 3213 3233 <language-range, defined in <xref target="RFC4647" x:fmt="," x:sec="2.1"/>> … … 3216 3236 Each language-range can be given an associated quality value which 3217 3237 represents an estimate of the user's preference for the languages 3218 specified by that range. The quality value defaults to "q=1". For 3219 example, 3238 specified by that range, as defined in &qvalue;. For example, 3220 3239 </t> 3221 3240 <figure><artwork type="example"> … … 5575 5594 <x:anchor-alias value="comment"/> 5576 5595 <x:anchor-alias value="partial-URI"/> 5577 <x:anchor-alias value="qvalue"/>5578 5596 <x:anchor-alias value="URI-reference"/> 5579 5597 <t> … … 5600 5618 <x:ref>comment</x:ref> = <comment, defined in &field-components;> 5601 5619 <x:ref>partial-URI</x:ref> = <partial-URI, defined in &uri;> 5602 <x:ref>qvalue</x:ref> = <qvalue, defined in &qvalue;>5603 5620 <x:ref>URI-reference</x:ref> = <URI-reference, defined in &uri;> 5604 5621 </artwork></figure> … … 5611 5628 <x:ref>Accept</x:ref> = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [ 5612 5629 OWS ( media-range [ accept-params ] ) ] ) ] 5613 <x:ref>Accept-Charset</x:ref> = *( "," OWS ) ( ( charset / "*" ) [ OWS ";" OWS "q=" 5614 qvalue ] ) *( OWS "," [ OWS ( ( charset / "*" ) [ OWS ";" OWS "q=" 5615 qvalue ] ) ] ) 5616 <x:ref>Accept-Encoding</x:ref> = [ ( "," / ( codings [ OWS ";" OWS "q=" qvalue ] ) ) 5617 *( OWS "," [ OWS ( codings [ OWS ";" OWS "q=" qvalue ] ) ] ) ] 5618 <x:ref>Accept-Language</x:ref> = *( "," OWS ) ( language-range [ OWS ";" OWS "q=" 5619 qvalue ] ) *( OWS "," [ OWS ( language-range [ OWS ";" OWS "q=" 5620 qvalue ] ) ] ) 5630 <x:ref>Accept-Charset</x:ref> = *( "," OWS ) ( ( charset / "*" ) [ weight ] ) *( OWS 5631 "," [ OWS ( ( charset / "*" ) [ weight ] ) ] ) 5632 <x:ref>Accept-Encoding</x:ref> = [ ( "," / ( codings [ weight ] ) ) *( OWS "," [ OWS 5633 ( codings [ weight ] ) ] ) ] 5634 <x:ref>Accept-Language</x:ref> = *( "," OWS ) ( language-range [ weight ] ) *( OWS 5635 "," [ OWS ( language-range [ weight ] ) ] ) 5621 5636 <x:ref>Allow</x:ref> = [ ( "," / method ) *( OWS "," [ OWS method ] ) ] 5622 5637 … … 5658 5673 <x:ref>absolute-URI</x:ref> = <absolute-URI, defined in [Part1], Section 2.8> 5659 5674 <x:ref>accept-ext</x:ref> = OWS ";" OWS token [ "=" word ] 5660 <x:ref>accept-params</x:ref> = OWS ";" OWS "q=" qvalue*accept-ext5675 <x:ref>accept-params</x:ref> = weight *accept-ext 5661 5676 <x:ref>asctime-date</x:ref> = day-name SP date3 SP time-of-day SP year 5662 5677 <x:ref>attribute</x:ref> = token … … 5725 5740 5726 5741 <x:ref>quoted-string</x:ref> = <quoted-string, defined in [Part1], Section 3.2.4> 5727 <x:ref>qvalue</x:ref> = <qvalue, defined in [Part1], Section 4.3.1>5742 <x:ref>qvalue</x:ref> = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) 5728 5743 5729 5744 <x:ref>rfc1123-date</x:ref> = day-name "," SP date1 SP time-of-day SP GMT … … 5739 5754 <x:ref>value</x:ref> = word 5740 5755 5756 <x:ref>weight</x:ref> = OWS ";" OWS "q=" qvalue 5741 5757 <x:ref>word</x:ref> = <word, defined in [Part1], Section 3.2.4> 5742 5758
Note: See TracChangeset
for help on using the changeset viewer.