Ignore:
Timestamp:
22/08/08 11:56:21 (12 years ago)
Author:
julian.reschke@…
Message:

Update orig RFCs, also add 2145 and 5234

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/orig/rfc2616.xml

    r8 r311  
    11<?xml version="1.0" encoding="UTF-8"?>
     2<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
     3<?rfc toc="yes" ?>
     4<?rfc symrefs="no" ?>
     5<?rfc-ext allow-markup-in-artwork="yes" ?>
     6<?rfc-ext include-references-in-index="yes" ?>
     7
    28<!DOCTYPE rfc [
    39  <!ENTITY MAY "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MAY</bcp14>">
     
    1218  <!ENTITY SHOULD-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>SHOULD NOT</bcp14>">
    1319]>
    14 <?rfc toc="yes" ?>
    15 <?rfc symrefs="no" ?>
    16 <?rfc compact="yes"?>
    17 <?rfc subcompact="no" ?>
    18 <?rfc linkmailto="no" ?>
    19 <?rfc editing="no" ?>
    20 <?rfc-ext allow-markup-in-artwork="yes" ?>
    21 <?rfc-ext include-references-in-index="yes" ?>
    22 <rfc number="2616" category="std" obsoletes="2068" xmlns:x='http://purl.org/net/xml2rfc/ext' xmlns:ed="http://greenbytes.de/2002/rfcedit" >
     20<rfc number="2616" category="std" obsoletes="2068" xmlns:x='http://purl.org/net/xml2rfc/ext' xmlns:ed="http://greenbytes.de/2002/rfcedit" xmlns:grddl='http://www.w3.org/2003/g/data-view#' grddl:transformation='rfc2629grddl.xslt'>
    2321<x:assign-section-number number="18" builtin-target="authors"/>
    2422<front>
     
    684682      indentation of continuation lines is used to indicate a rule
    685683      definition that spans more than one line. Certain basic rules are
    686       in uppercase, such as SP, LWS, HT, CRLF, DIGIT, ALPHA, etc. Angle
     684      in uppercase, such as <x:ref>SP</x:ref>, <x:ref>LWS</x:ref>, <x:ref>HT</x:ref>, <x:ref>CRLF</x:ref>, <x:ref>DIGIT</x:ref>, <x:ref>ALPHA</x:ref>, etc. Angle
    687685      brackets are used within definitions whenever their presence will
    688686      facilitate discerning the use of rule names.
     
    759757      (",") and &OPTIONAL; linear white space (LWS). This makes the usual
    760758      form of lists very easy; a rule such as
    761     </t>
    762     <t>
    763          ( *LWS element *( *LWS "," *LWS element ))
     759    <figure><artwork type="example">
     760   ( *LWS element *( *LWS "," *LWS element ))
     761</artwork></figure>
    764762    </t>
    765763    <t>
    766764      can be shown as
    767     </t>
    768     <t>
    769          1#element
     765    <figure><artwork type="example">
     766   1#element
     767</artwork></figure>
    770768    </t>
    771769    <t>
     
    792790  </list>
    793791</t>
    794 <t>
     792<t anchor="implied.LWS">
    795793   implied *LWS
    796794  <list>
     
    810808
    811809<section title="Basic Rules" anchor="basic.rules">
    812 <x:anchor-alias value="OCTET"/>
    813 <x:anchor-alias value="CHAR"/>
    814 <x:anchor-alias value="UPALPHA"/>
    815 <x:anchor-alias value="LOALPHA"/>
    816 <x:anchor-alias value="ALPHA"/>
    817 <x:anchor-alias value="DIGIT"/>
    818 <x:anchor-alias value="CTL"/>
    819 <x:anchor-alias value="CR"/>
    820 <x:anchor-alias value="LF"/>
    821 <x:anchor-alias value="SP"/>
    822 <x:anchor-alias value="HT"/>
    823 <x:anchor-alias value="CRLF"/>
    824 <x:anchor-alias value="LWS"/>
    825 <x:anchor-alias value="TEXT"/>
    826 <x:anchor-alias value="HEX"/>
    827 <x:anchor-alias value="token"/>
    828 <x:anchor-alias value="separators"/>
    829 <x:anchor-alias value="comment"/>
    830 <x:anchor-alias value="ctext"/>
    831 <x:anchor-alias value="quoted-string"/>
    832 <x:anchor-alias value="qdtext"/>
    833 <x:anchor-alias value="quoted-pair"/>
     810  <x:anchor-alias value="OCTET"/>
     811  <x:anchor-alias value="CHAR"/>
     812  <x:anchor-alias value="UPALPHA"/>
     813  <x:anchor-alias value="LOALPHA"/>
     814  <x:anchor-alias value="ALPHA"/>
     815  <x:anchor-alias value="DIGIT"/>
     816  <x:anchor-alias value="CTL"/>
     817  <x:anchor-alias value="CR"/>
     818  <x:anchor-alias value="LF"/>
     819  <x:anchor-alias value="SP"/>
     820  <x:anchor-alias value="HT"/>
    834821<t>
    835822   The following rules are used throughout this specification to
     
    837824   is defined by ANSI X3.4-1986 <xref target="USASCII"/>.
    838825</t>
    839 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OCTET"/><iref primary="true" item="Grammar" subitem="CHAR"/><iref primary="true" item="Grammar" subitem="UPALPHA"/><iref primary="true" item="Grammar" subitem="LOALPHA"/><iref primary="true" item="Grammar" subitem="ALPHA"/><iref primary="true" item="Grammar" subitem="DIGIT"/><iref primary="true" item="Grammar" subitem="CTL"/><iref primary="true" item="Grammar" subitem="CR"/><iref primary="true" item="Grammar" subitem="LF"/><iref primary="true" item="Grammar" subitem="SP"/><iref primary="true" item="Grammar" subitem="HT"/>
    840     OCTET          = &lt;any 8-bit sequence of data&gt;
    841     CHAR           = &lt;any US-ASCII character (octets 0 - 127)&gt;
    842     UPALPHA        = &lt;any US-ASCII uppercase letter "A".."Z"&gt;
    843     LOALPHA        = &lt;any US-ASCII lowercase letter "a".."z"&gt;
    844     ALPHA          = UPALPHA | LOALPHA
    845     DIGIT          = &lt;any US-ASCII digit "0".."9"&gt;
    846     CTL            = &lt;any US-ASCII control character
     826<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OCTET" x:for-anchor="OCTET"/><iref primary="true" item="Grammar" subitem="CHAR" x:for-anchor="CHAR"/><iref primary="true" item="Grammar" subitem="UPALPHA" x:for-anchor="UPALPHA"/><iref primary="true" item="Grammar" subitem="LOALPHA" x:for-anchor="LOALPHA"/><iref primary="true" item="Grammar" subitem="ALPHA" x:for-anchor="ALPHA"/><iref primary="true" item="Grammar" subitem="DIGIT" x:for-anchor="DIGIT"/><iref primary="true" item="Grammar" subitem="CTL" x:for-anchor="CTL"/><iref primary="true" item="Grammar" subitem="CR" x:for-anchor="CR"/><iref primary="true" item="Grammar" subitem="LF" x:for-anchor="LF"/><iref primary="true" item="Grammar" subitem="SP" x:for-anchor="SP"/><iref primary="true" item="Grammar" subitem="HT" x:for-anchor="HT"/>
     827    <x:ref>OCTET</x:ref>          = &lt;any 8-bit sequence of data&gt;
     828    <x:ref>CHAR</x:ref>           = &lt;any US-ASCII character (octets 0 - 127)&gt;
     829    <x:ref>UPALPHA</x:ref>        = &lt;any US-ASCII uppercase letter "A".."Z"&gt;
     830    <x:ref>LOALPHA</x:ref>        = &lt;any US-ASCII lowercase letter "a".."z"&gt;
     831    <x:ref>ALPHA</x:ref>          = <x:ref>UPALPHA</x:ref> | <x:ref>LOALPHA</x:ref>
     832    <x:ref>DIGIT</x:ref>          = &lt;any US-ASCII digit "0".."9"&gt;
     833    <x:ref>CTL</x:ref>            = &lt;any US-ASCII control character
    847834                     (octets 0 - 31) and DEL (127)&gt;
    848     CR             = &lt;US-ASCII CR, carriage return (13)&gt;
    849     LF             = &lt;US-ASCII LF, linefeed (10)&gt;
    850     SP             = &lt;US-ASCII SP, space (32)&gt;
    851     HT             = &lt;US-ASCII HT, horizontal-tab (9)&gt;
     835    <x:ref>CR</x:ref>             = &lt;US-ASCII CR, carriage return (13)&gt;
     836    <x:ref>LF</x:ref>             = &lt;US-ASCII LF, linefeed (10)&gt;
     837    <x:ref>SP</x:ref>             = &lt;US-ASCII SP, space (32)&gt;
     838    <x:ref>HT</x:ref>             = &lt;US-ASCII HT, horizontal-tab (9)&gt;
    852839    &lt;"&gt;            = &lt;US-ASCII double-quote mark (34)&gt;
    853840</artwork></figure>
    854 <t>
     841<t anchor="basic.rules.crlf">
     842  <x:anchor-alias value="CRLF"/>
    855843   HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
    856844   protocol elements except the entity-body (see <xref target="tolerant.applications"/> for
     
    858846   is defined by its associated media type, as described in <xref target="media.types"/>.
    859847</t>
    860 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="CRLF"/>
    861     CRLF           = CR LF
    862 </artwork></figure>
    863 <t>
     848<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="CRLF" x:for-anchor="CRLF"/>
     849    <x:ref>CRLF</x:ref>           = <x:ref>CR</x:ref> <x:ref>LF</x:ref>
     850</artwork></figure>
     851<t anchor="basic.rules.lws">
     852  <x:anchor-alias value="LWS"/>
    864853   HTTP/1.1 header field values can be folded onto multiple lines if the
    865854   continuation line begins with a space or horizontal tab. All linear
     
    868857   interpreting the field value or forwarding the message downstream.
    869858</t>
    870 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="LWS"/>
    871     LWS            = [CRLF] 1*( SP | HT )
    872 </artwork></figure>
    873 <t>
     859<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="LWS" x:for-anchor="LWS"/>
     860    <x:ref>LWS</x:ref>            = [<x:ref>CRLF</x:ref>] 1*( <x:ref>SP</x:ref> | <x:ref>HT</x:ref> )
     861</artwork></figure>
     862<t anchor="basic.rules.text">
     863  <x:anchor-alias value="TEXT"/>
    874864   The TEXT rule is only used for descriptive field contents and values
    875865   that are not intended to be interpreted by the message parser. Words
     
    878868   <xref target="RFC2047"/>.
    879869</t>
    880 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT"/>
    881     TEXT           = &lt;any OCTET except CTLs,
    882                      but including LWS&gt;
     870<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT" x:for-anchor="TEXT"/>
     871    <x:ref>TEXT</x:ref>           = &lt;any <x:ref>OCTET</x:ref> except <x:ref>CTL</x:ref>s,
     872                     but including <x:ref>LWS</x:ref>&gt;
    883873</artwork></figure>
    884874<t>
     
    887877   replaced with a single SP before interpretation of the TEXT value.
    888878</t>
    889 <t>
     879<t anchor="basic.rules.hex">
     880  <x:anchor-alias value="HEX"/>
    890881   Hexadecimal numeric characters are used in several protocol elements.
    891882</t>
    892 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HEX"/>
    893     HEX            = "A" | "B" | "C" | "D" | "E" | "F"
    894                    | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
    895 </artwork></figure>
    896 <t>
     883<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HEX" x:for-anchor="HEX"/>
     884    <x:ref>HEX</x:ref>            = "A" | "B" | "C" | "D" | "E" | "F"
     885                   | "a" | "b" | "c" | "d" | "e" | "f" | <x:ref>DIGIT</x:ref>
     886</artwork></figure>
     887<t anchor="basic.rules.token">
     888  <x:anchor-alias value="token"/>
     889  <x:anchor-alias value="separators"/>
    897890   Many HTTP/1.1 header field values consist of words separated by LWS
    898891   or special characters. These special characters &MUST; be in a quoted
     
    900893   <xref target="transfer.codings"/>).
    901894</t>
    902 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="token"/><iref primary="true" item="Grammar" subitem="separators"/>
    903     token          = 1*&lt;any CHAR except CTLs or separators&gt;
    904     separators     = "(" | ")" | "&lt;" | "&gt;" | "@"
     895<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="token" x:for-anchor="token"/><iref primary="true" item="Grammar" subitem="separators" x:for-anchor="separators"/>
     896    <x:ref>token</x:ref>          = 1*&lt;any <x:ref>CHAR</x:ref> except <x:ref>CTL</x:ref>s or <x:ref>separators</x:ref>&gt;
     897    <x:ref>separators</x:ref>     = "(" | ")" | "&lt;" | "&gt;" | "@"
    905898                   | "," | ";" | ":" | "\" | &lt;"&gt;
    906899                   | "/" | "[" | "]" | "?" | "="
    907                    | "{" | "}" | SP | HT
    908 </artwork></figure>
    909 <t>
     900                   | "{" | "}" | <x:ref>SP</x:ref> | <x:ref>HT</x:ref>
     901</artwork></figure>
     902<t anchor="basic.rules.comment">
     903  <x:anchor-alias value="comment"/>
     904  <x:anchor-alias value="ctext"/>
    910905   Comments can be included in some HTTP header fields by surrounding
    911906   the comment text with parentheses. Comments are only allowed in
     
    914909   value.
    915910</t>
    916 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="comment"/><iref primary="true" item="Grammar" subitem="ctext"/>
    917     comment        = "(" *( ctext | quoted-pair | comment ) ")"
    918     ctext          = &lt;any TEXT excluding "(" and ")"&gt;
    919 </artwork></figure>
    920 <t>
     911<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="comment" x:for-anchor="comment"/><iref primary="true" item="Grammar" subitem="ctext" x:for-anchor="ctext"/>
     912    <x:ref>comment</x:ref>        = "(" *( <x:ref>ctext</x:ref> | <x:ref>quoted-pair</x:ref> | <x:ref>comment</x:ref> ) ")"
     913    <x:ref>ctext</x:ref>          = &lt;any <x:ref>TEXT</x:ref> excluding "(" and ")"&gt;
     914</artwork></figure>
     915<t anchor="basic.rules.quoted-string">
     916  <x:anchor-alias value="quoted-string"/>
     917  <x:anchor-alias value="qdtext"/>
     918  <x:anchor-alias value="quoted-pair"/>
    921919   A string of text is parsed as a single word if it is quoted using
    922920   double-quote marks.
    923921</t>
    924 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext"/>
    925     quoted-string  = ( &lt;"&gt; *(qdtext | quoted-pair ) &lt;"&gt; )
    926     qdtext         = &lt;any TEXT except &lt;"&gt;&gt;
     922<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string" x:for-anchor="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext" x:for-anchor="qdtext"/>
     923    <x:ref>quoted-string</x:ref>  = ( &lt;"&gt; *(<x:ref>qdtext</x:ref> | <x:ref>quoted-pair</x:ref> ) &lt;"&gt; )
     924    <x:ref>qdtext</x:ref>         = &lt;any <x:ref>TEXT</x:ref> except &lt;"&gt;&gt;
    927925</artwork></figure>
    928926<t>
     
    930928   quoting mechanism only within quoted-string and comment constructs.
    931929</t>
    932 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-pair"/>
    933     quoted-pair    = "\" CHAR
     930<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-pair" x:for-anchor="quoted-pair"/>
     931    <x:ref>quoted-pair</x:ref>    = "\" <x:ref>CHAR</x:ref>
    934932</artwork></figure>
    935933</section>
     
    939937
    940938<section title="HTTP Version" anchor="http.version">
     939  <x:anchor-alias value="HTTP-Version"/>
    941940<t>
    942941   HTTP uses a "&lt;major&gt;.&lt;minor&gt;" numbering scheme to indicate versions
     
    958957   in the first line of the message.
    959958</t>
    960 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-Version"/>
    961        HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT
     959<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-Version" x:for-anchor="HTTP-Version"/>
     960       <x:ref>HTTP-Version</x:ref>   = "HTTP" "/" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref>
    962961</artwork></figure>
    963962<t>
     
    993992<t>
    994993   Due to interoperability problems with HTTP/1.0 proxies discovered
    995    since the publication of RFC 2068 <xref target="RFC2068"/>, caching proxies MUST, gateways
     994   since the publication of RFC 2068 <xref target="RFC2068"/>, caching proxies &MUST;, gateways
    996995   &MAY;, and tunnels &MUST-NOT; upgrade the request to the highest version
    997996   they support. The proxy/gateway's response to that request &MUST; be in
     
    10191018
    10201019<section title="General Syntax" anchor="general.syntax">
     1020  <x:anchor-alias value="absoluteURI"/>
     1021  <x:anchor-alias value="relativeURI"/>
    10211022<t>
    10221023   URIs in HTTP can be represented in absolute form or relative to some
     
    10361037   serve, and &SHOULD; be able to handle URIs of unbounded length if they
    10371038   provide GET-based forms that could generate such URIs. A server
    1038    &SHOULD; return 414 (Request-URI Too Long) status if a URI is longer
     1039   &SHOULD; return <x:ref>414 (Request-URI Too Long)</x:ref> status if a URI is longer
    10391040   than the server can handle (see <xref target="status.414"/>).
    10401041</t>
     
    10511052
    10521053<section title="http URL" anchor="http.url">
     1054<iref item="http URI scheme" primary="true"/>
     1055<iref item="URI scheme" subitem="http" primary="true"/>
    10531056<t>
    10541057   The "http" scheme is used to locate network resources via the HTTP
     
    10561059   semantics for http URLs.
    10571060</t>
    1058 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="http_URL"/>
     1061<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="http_URL" x:for-anchor="http_URL"/>
    10591062http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
    10601063</artwork></figure>
     
    11061109
    11071110<section title="Full Date" anchor="full.date">
     1111  <x:anchor-alias value="HTTP-date"/>
    11081112<t>
    11091113   HTTP applications have historically allowed three different formats
     
    11411145   grammar.
    11421146</t>
    1143 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-date"/><iref primary="true" item="Grammar" subitem="rfc1123-date"/><iref primary="true" item="Grammar" subitem="rfc850-date"/><iref primary="true" item="Grammar" subitem="asctime-date"/><iref primary="true" item="Grammar" subitem="date1"/><iref primary="true" item="Grammar" subitem="date2"/><iref primary="true" item="Grammar" subitem="date3"/><iref primary="true" item="Grammar" subitem="time"/><iref primary="true" item="Grammar" subitem="wkday"/><iref primary="true" item="Grammar" subitem="weekday"/><iref primary="true" item="Grammar" subitem="month"/>
    1144     HTTP-date    = rfc1123-date | rfc850-date | asctime-date
    1145     rfc1123-date = wkday "," SP date1 SP time SP "GMT"
    1146     rfc850-date  = weekday "," SP date2 SP time SP "GMT"
    1147     asctime-date = wkday SP date3 SP time SP 4DIGIT
    1148     date1        = 2DIGIT SP month SP 4DIGIT
     1147<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-date" x:for-anchor="HTTP-date"/><iref primary="true" item="Grammar" subitem="rfc1123-date"/><iref primary="true" item="Grammar" subitem="rfc850-date"/><iref primary="true" item="Grammar" subitem="asctime-date"/><iref primary="true" item="Grammar" subitem="date1"/><iref primary="true" item="Grammar" subitem="date2"/><iref primary="true" item="Grammar" subitem="date3"/><iref primary="true" item="Grammar" subitem="time"/><iref primary="true" item="Grammar" subitem="wkday"/><iref primary="true" item="Grammar" subitem="weekday"/><iref primary="true" item="Grammar" subitem="month"/>
     1148    <x:ref>HTTP-date</x:ref>    = rfc1123-date | rfc850-date | asctime-date
     1149    rfc1123-date = wkday "," <x:ref>SP</x:ref> date1 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT"
     1150    rfc850-date  = weekday "," <x:ref>SP</x:ref> date2 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT"
     1151    asctime-date = wkday <x:ref>SP</x:ref> date3 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref>
     1152    date1        = 2<x:ref>DIGIT</x:ref> <x:ref>SP</x:ref> month <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref>
    11491153                   ; day month year (e.g., 02 Jun 1982)
    1150     date2        = 2DIGIT "-" month "-" 2DIGIT
     1154    date2        = 2<x:ref>DIGIT</x:ref> "-" month "-" 2<x:ref>DIGIT</x:ref>
    11511155                   ; day-month-year (e.g., 02-Jun-82)
    1152     date3        = month SP ( 2DIGIT | ( SP 1DIGIT ))
     1156    date3        = month <x:ref>SP</x:ref> ( 2<x:ref>DIGIT</x:ref> | ( <x:ref>SP</x:ref> 1<x:ref>DIGIT</x:ref> ))
    11531157                   ; month day (e.g., Jun  2)
    1154     time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT
     1158    time         = 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref>
    11551159                   ; 00:00:00 - 23:59:59
    11561160    wkday        = "Mon" | "Tue" | "Wed"
     
    11711175
    11721176<section title="Delta Seconds" anchor="delta.seconds">
     1177  <x:anchor-alias value="delta-seconds"/>
    11731178<t>
    11741179   Some HTTP header fields allow a time value to be specified as an
     
    11771182</t>
    11781183<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="delta-seconds"/>
    1179     delta-seconds  = 1*DIGIT
     1184    <x:ref>delta-seconds</x:ref>  = 1*<x:ref>DIGIT</x:ref>
    11801185</artwork></figure>
    11811186</section>
     
    12081213      also be shared.
    12091214</t></list></t>
    1210 <t>
     1215<t anchor="charset">
     1216  <x:anchor-alias value="charset"/>
    12111217   HTTP character sets are identified by case-insensitive tokens. The
    12121218   complete set of tokens is defined by the IANA Character Set registry
     
    12141220</t>
    12151221<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="charset"/>
    1216     charset = token
     1222    <x:ref>charset</x:ref> = <x:ref>token</x:ref>
    12171223</artwork></figure>
    12181224<t>
     
    12491255
    12501256<section title="Content Codings" anchor="content.codings">
     1257  <x:anchor-alias value="content-coding"/>
     1258  <iref item="Content Codings" primary="true"/>
    12511259<t>
    12521260   Content coding values indicate an encoding transformation that has
     
    12581266</t>
    12591267<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="content-coding"/>
    1260     content-coding   = token
     1268    <x:ref>content-coding</x:ref>   = <x:ref>token</x:ref>
    12611269</artwork></figure>
    12621270<t>
     
    12741282</t>
    12751283<t>
    1276    gzip<iref item="gzip"/>
     1284   gzip<iref item="gzip (content coding)"/><iref item="Content Codings" subitem="gzip"/>
    12771285  <list>
    12781286    <t>
     
    12841292</t>
    12851293<t>
    1286    compress<iref item="compress"/>
     1294   compress<iref item="compress (content coding)"/><iref item="Content Codings" subitem="compress"/>
    12871295  <list><t>
    12881296        The encoding format produced by the common UNIX file compression
     
    12991307</t>
    13001308<t>
    1301    deflate<iref item="deflate"/>
     1309   deflate<iref item="deflate (content coding)"/><iref item="Content Codings" subitem="deflate"/>
    13021310  <list><t>
    13031311        The "zlib" format defined in RFC 1950 <xref target="RFC1950"/> in combination with
     
    13061314</t>
    13071315<t>
    1308    identity<iref item="identity"/>
     1316   identity<iref item="identity (content coding)"/><iref item="Content Codings" subitem="identity"/>
    13091317  <list><t>
    13101318        The default (identity) encoding; the use of no transformation
     
    13241332
    13251333<section title="Transfer Codings" anchor="transfer.codings">
     1334  <x:anchor-alias value="transfer-coding"/>
    13261335<t>
    13271336   Transfer-coding values are used to indicate an encoding
     
    13321341</t>
    13331342<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="transfer-coding"/><iref primary="true" item="Grammar" subitem="transfer-extension"/>
    1334     transfer-coding         = "chunked" | transfer-extension
    1335     transfer-extension      = token *( ";" parameter )
    1336 </artwork></figure>
    1337 <t>
     1343    <x:ref>transfer-coding</x:ref>         = "chunked" | transfer-extension
     1344    transfer-extension      = <x:ref>token</x:ref> *( ";" <x:ref>parameter</x:ref> )
     1345</artwork></figure>
     1346<t anchor="rule.parameter">
     1347  <x:anchor-alias value="parameter"/>
    13381348   Parameters are in  the form of attribute/value pairs.
    13391349</t>
    13401350<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="parameter"/><iref primary="true" item="Grammar" subitem="attribute"/><iref primary="true" item="Grammar" subitem="value"/>
    1341     parameter               = attribute "=" value
    1342     attribute               = token
    1343     value                   = token | quoted-string
     1351    <x:ref>parameter</x:ref>               = attribute "=" value
     1352    attribute               = <x:ref>token</x:ref>
     1353    value                   = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref>
    13441354</artwork></figure>
    13451355<t>
     
    13791389<t>
    13801390   A server which receives an entity-body with a transfer-coding it does
    1381    not understand &SHOULD; return 501 (Unimplemented), and close the
     1391   not understand &SHOULD; return <x:ref>501 (Unimplemented)</x:ref>, and close the
    13821392   connection. A server &MUST-NOT; send transfer-codings to an HTTP/1.0
    13831393   client.
     
    13971407                     last-chunk
    13981408                     trailer
    1399                      CRLF
    1400 
    1401     chunk          = chunk-size [ chunk-extension ] CRLF
    1402                      chunk-data CRLF
    1403     chunk-size     = 1*HEX
    1404     last-chunk     = 1*("0") [ chunk-extension ] CRLF
     1409                     <x:ref>CRLF</x:ref>
     1410
     1411    chunk          = chunk-size [ chunk-extension ] <x:ref>CRLF</x:ref>
     1412                     chunk-data <x:ref>CRLF</x:ref>
     1413    chunk-size     = 1*<x:ref>HEX</x:ref>
     1414    last-chunk     = 1*("0") [ chunk-extension ] <x:ref>CRLF</x:ref>
    14051415
    14061416    chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
    1407     chunk-ext-name = token
    1408     chunk-ext-val  = token | quoted-string
    1409     chunk-data     = chunk-size(OCTET)
    1410     trailer        = *(entity-header CRLF)
     1417    chunk-ext-name = <x:ref>token</x:ref>
     1418    chunk-ext-val  = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref>
     1419    chunk-data     = chunk-size(<x:ref>OCTET</x:ref>)
     1420    trailer        = *(<x:ref>entity-header</x:ref> <x:ref>CRLF</x:ref>)
    14111421</artwork></figure>
    14121422<t>
     
    14581468
    14591469<section title="Media Types" anchor="media.types">
     1470  <x:anchor-alias value="media-type"/>
     1471  <x:anchor-alias value="type"/>
     1472  <x:anchor-alias value="subtype"/>
    14601473<t>
    14611474   HTTP uses Internet Media Types <xref target="RFC1590"/> in the Content-Type (<xref target="header.content-type"/>)
     
    14641477</t>
    14651478<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="media-type"/><iref primary="true" item="Grammar" subitem="type"/><iref primary="true" item="Grammar" subitem="subtype"/>
    1466     media-type     = type "/" subtype *( ";" parameter )
    1467     type           = token
    1468     subtype        = token
     1479    <x:ref>media-type</x:ref>     = <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> *( ";" <x:ref>parameter</x:ref> )
     1480    <x:ref>type</x:ref>           = <x:ref>token</x:ref>
     1481    <x:ref>subtype</x:ref>        = <x:ref>token</x:ref>
    14691482</artwork></figure>
    14701483<t>
     
    15751588
    15761589<section title="Product Tokens" anchor="product.tokens">
     1590  <x:anchor-alias value="product"/>
    15771591<t>
    15781592   Product tokens are used to allow communicating applications to
     
    15841598</t>
    15851599<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="product"/><iref primary="true" item="Grammar" subitem="product-version"/>
    1586     product         = token ["/" product-version]
    1587     product-version = token
     1600    <x:ref>product</x:ref>         = <x:ref>token</x:ref> ["/" product-version]
     1601    product-version = <x:ref>token</x:ref>
    15881602</artwork></figure>
    15891603<t>
     
    16051619
    16061620<section title="Quality Values" anchor="quality.values">
     1621  <x:anchor-alias value="qvalue"/>
    16071622<t>
    16081623   HTTP content negotiation (<xref target="content.negotiation"/>) uses short "floating point"
     
    16171632</t>
    16181633<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="qvalue"/>
    1619     qvalue         = ( "0" [ "." 0*3DIGIT ] )
     1634    <x:ref>qvalue</x:ref>         = ( "0" [ "." 0*3<x:ref>DIGIT</x:ref> ] )
    16201635                   | ( "1" [ "." 0*3("0") ] )
    16211636</artwork></figure>
     
    16271642
    16281643<section title="Language Tags" anchor="language.tags">
     1644  <x:anchor-alias value="language-tag"/>
    16291645<t>
    16301646   A language tag identifies a natural language spoken, written, or
     
    16411657</t>
    16421658<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="language-tag"/><iref primary="true" item="Grammar" subitem="primary-tag"/><iref primary="true" item="Grammar" subitem="subtag"/>
    1643      language-tag  = primary-tag *( "-" subtag )
    1644      primary-tag   = 1*8ALPHA
    1645      subtag        = 1*8ALPHA
     1659     <x:ref>language-tag</x:ref>  = primary-tag *( "-" subtag )
     1660     primary-tag   = 1*8<x:ref>ALPHA</x:ref>
     1661     subtag        = 1*8<x:ref>ALPHA</x:ref>
    16461662</artwork></figure>
    16471663<t>
     
    16621678
    16631679<section title="Entity Tags" anchor="entity.tags">
     1680  <x:anchor-alias value="entity-tag"/>
    16641681<t>
    16651682   Entity tags are used for comparing two or more entities from the same
     
    16721689</t>
    16731690<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-tag"/><iref primary="true" item="Grammar" subitem="weak"/><iref primary="true" item="Grammar" subitem="opaque-tag"/>
    1674    entity-tag = [ weak ] opaque-tag
     1691   <x:ref>entity-tag</x:ref> = [ weak ] opaque-tag
    16751692   weak       = "W/"
    1676    opaque-tag = quoted-string
     1693   opaque-tag = <x:ref>quoted-string</x:ref>
    16771694</artwork></figure>
    16781695<t>
     
    16971714
    16981715<section title="Range Units" anchor="range.units">
     1716  <x:anchor-alias value="range-unit"/>
    16991717<t>
    17001718   HTTP/1.1 allows a client to request that only part (a range of) the
     
    17051723</t>
    17061724<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="range-unit"/><iref primary="true" item="Grammar" subitem="bytes-unit"/><iref primary="true" item="Grammar" subitem="other-range-unit"/>
    1707    range-unit       = bytes-unit | other-range-unit
     1725   <x:ref>range-unit</x:ref>       = bytes-unit | other-range-unit
    17081726   bytes-unit       = "bytes"
    1709    other-range-unit = token
     1727   other-range-unit = <x:ref>token</x:ref>
    17101728</artwork></figure>
    17111729<t>
     
    17261744
    17271745<section title="Message Types" anchor="message.types">
     1746  <x:anchor-alias value="HTTP-message"/>
    17281747<t>
    17291748   HTTP messages consist of requests from client to server and responses
     
    17311750</t>
    17321751<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-message"/>
    1733     HTTP-message   = Request | Response     ; HTTP/1.1 messages
     1752    HTTP-message   = <x:ref>Request</x:ref> | <x:ref>Response</x:ref>     ; HTTP/1.1 messages
    17341753</artwork></figure>
    17351754<t>
     
    17431762<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="generic-message"/><iref primary="true" item="Grammar" subitem="start-line"/>
    17441763     generic-message = start-line
    1745                        *(message-header CRLF)
    1746                        CRLF
    1747                        [ message-body ]
    1748      start-line      = Request-Line | Status-Line
     1764                       *(<x:ref>message-header</x:ref> <x:ref>CRLF</x:ref>)
     1765                       <x:ref>CRLF</x:ref>
     1766                       [ <x:ref>message-body</x:ref> ]
     1767     start-line      = <x:ref>Request-Line</x:ref> | <x:ref>Status-Line</x:ref>
    17491768</artwork></figure>
    17501769<t>
     
    17631782
    17641783<section title="Message Headers" anchor="message.headers">
     1784  <x:anchor-alias value="message-header"/>
     1785  <x:anchor-alias value="field-name"/>
    17651786<t>
    17661787   HTTP header fields, which include general-header (<xref target="general.header.fields"/>),
     
    17781799</t>
    17791800<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-header"/><iref primary="true" item="Grammar" subitem="field-name"/><iref primary="true" item="Grammar" subitem="field-value"/><iref primary="true" item="Grammar" subitem="field-content"/>
    1780     message-header = field-name ":" [ field-value ]
    1781     field-name     = token
    1782     field-value    = *( field-content | LWS )
    1783     field-content  = &lt;the OCTETs making up the field-value
    1784                      and consisting of either *TEXT or combinations
    1785                      of token, separators, and quoted-string&gt;
     1801    <x:ref>message-header</x:ref> = <x:ref>field-name</x:ref> ":" [ field-value ]
     1802    <x:ref>field-name</x:ref>     = <x:ref>token</x:ref>
     1803    field-value    = *( field-content | <x:ref>LWS</x:ref> )
     1804    field-content  = &lt;the <x:ref>OCTET</x:ref>s making up the field-value
     1805                     and consisting of either *<x:ref>TEXT</x:ref> or combinations
     1806                     of <x:ref>token</x:ref>, <x:ref>separators</x:ref>, and <x:ref>quoted-string</x:ref>&gt;
    17861807</artwork></figure>
    17871808<t>
     
    18161837
    18171838<section title="Message Body" anchor="message.body">
     1839  <x:anchor-alias value="message-body"/>
    18181840<t>
    18191841   The message-body (if any) of an HTTP message is used to carry the
     
    18231845</t>
    18241846<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-body"/>
    1825     message-body = entity-body
    1826                  | &lt;entity-body encoded as per Transfer-Encoding&gt;
     1847    <x:ref>message-body</x:ref> = <x:ref>entity-body</x:ref>
     1848                 | &lt;<x:ref>entity-body</x:ref> encoded as per Transfer-Encoding&gt;
    18271849</artwork></figure>
    18281850<t>
     
    18541876   &MUST-NOT; include a message-body, even though the presence of entity-header
    18551877   fields might lead one to believe they do. All 1xx
    1856    (informational), 204 (no content), and 304 (not modified) responses
     1878   (informational), <x:ref>204 (no content)</x:ref>, and <x:ref>304 (not modified)</x:ref> responses
    18571879   &MUST-NOT; include a message-body. All other responses do include a
    18581880   message-body, although it &MAY; be of zero length.
     
    18851907    <x:lt><t>
    18861908     If a Content-Length header field (<xref target="header.content-length"/>) is present, its
    1887      decimal value in OCTETs represents both the entity-length and the
     1909     decimal value in <x:ref>OCTET</x:ref>s represents both the entity-length and the
    18881910     transfer-length. The Content-Length header field &MUST-NOT; be sent
    18891911     if these two lengths are different (i.e., if a Transfer-Encoding
     
    19191941   field unless the server is known to be HTTP/1.1 compliant. If a
    19201942   request contains a message-body and a Content-Length is not given,
    1921    the server &SHOULD; respond with 400 (bad request) if it cannot
    1922    determine the length of the message, or with 411 (length required) if
     1943   the server &SHOULD; respond with <x:ref>400 (bad request)</x:ref> if it cannot
     1944   determine the length of the message, or with <x:ref>411 (length required)</x:ref> if
    19231945   it wishes to insist on receiving a valid Content-Length.
    19241946</t>
     
    19361958<t>
    19371959   When a Content-Length is given in a message where a message-body is
    1938    allowed, its field value &MUST; exactly match the number of OCTETs in
     1960   allowed, its field value &MUST; exactly match the number of <x:ref>OCTET</x:ref>s in
    19391961   the message-body. HTTP/1.1 user agents &MUST; notify the user when an
    19401962   invalid length is received and detected.
     
    19431965
    19441966<section title="General Header Fields" anchor="general.header.fields">
     1967  <x:anchor-alias value="general-header"/>
    19451968<t>
    19461969   There are a few header fields which have general applicability for
     
    19501973</t>
    19511974<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="general-header"/>
    1952     general-header = Cache-Control            ; <xref target="header.cache-control"/>
     1975    <x:ref>general-header</x:ref> = Cache-Control            ; <xref target="header.cache-control"/>
    19531976                   | Connection               ; <xref target="header.connection"/>
    19541977                   | Date                     ; <xref target="header.date"/>
     
    19721995
    19731996<section title="Request" anchor="request">
     1997  <x:anchor-alias value="Request"/>
    19741998<t>
    19751999   A request message from a client to a server includes, within the
     
    19782002</t>
    19792003<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request"/>
    1980      Request       = Request-Line              ; <xref target="request-line"/>
    1981                      *(( general-header        ; <xref target="general.header.fields"/>
    1982                       | request-header         ; <xref target="request.header.fields"/>
    1983                       | entity-header ) CRLF)  ; <xref target="entity.header.fields"/>
    1984                      CRLF
    1985                      [ message-body ]          ; <xref target="message.body"/>
     2004     <x:ref>Request</x:ref>       = <x:ref>Request-Line</x:ref>              ; <xref target="request-line"/>
     2005                     *(( <x:ref>general-header</x:ref>        ; <xref target="general.header.fields"/>
     2006                      | <x:ref>request-header</x:ref>         ; <xref target="request.header.fields"/>
     2007                      | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>)  ; <xref target="entity.header.fields"/>
     2008                     <x:ref>CRLF</x:ref>
     2009                     [ <x:ref>message-body</x:ref> ]          ; <xref target="message.body"/>
    19862010</artwork></figure>
    19872011
    19882012<section title="Request-Line" anchor="request-line">
     2013  <x:anchor-alias value="Request-Line"/>
    19892014<t>
    19902015   The Request-Line begins with a method token, followed by the
     
    19942019</t>
    19952020<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-Line"/>
    1996      Request-Line   = Method SP Request-URI SP HTTP-Version CRLF
     2021     <x:ref>Request-Line</x:ref>   = <x:ref>Method</x:ref> <x:ref>SP</x:ref> <x:ref>Request-URI</x:ref> <x:ref>SP</x:ref> <x:ref>HTTP-Version</x:ref> <x:ref>CRLF</x:ref>
    19972022</artwork></figure>
    19982023
    19992024<section title="Method" anchor="method">
     2025  <x:anchor-alias value="Method"/>
    20002026<t>
    20012027   The Method  token indicates the method to be performed on the
     
    20122038                   | "CONNECT"                ; <xref target="CONNECT"/>
    20132039                   | extension-method
    2014     extension-method = token
     2040    extension-method = <x:ref>token</x:ref>
    20152041</artwork></figure>
    20162042<t>
     
    20192045   always notifies the client whether a method is currently allowed on a
    20202046   resource, since the set of allowed methods can change dynamically. An
    2021    origin server &SHOULD; return the status code 405 (Method Not Allowed)
     2047   origin server &SHOULD; return the status code <x:ref>405 (Method Not Allowed)</x:ref>
    20222048   if the method is known by the origin server but not allowed for the
    2023    requested resource, and 501 (Not Implemented) if the method is
     2049   requested resource, and <x:ref>501 (Not Implemented)</x:ref> if the method is
    20242050   unrecognized or not implemented by the origin server. The methods GET
    20252051   and HEAD &MUST; be supported by all general-purpose servers. All other
     
    20312057
    20322058<section title="Request-URI" anchor="request-uri">
     2059  <x:anchor-alias value="Request-URI"/>
    20332060<t>
    20342061   The Request-URI is a Uniform Resource Identifier (<xref target="uri"/>) and
     
    20362063</t>
    20372064<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-URI"/>
    2038     Request-URI    = "*" | absoluteURI | abs_path | authority
     2065    <x:ref>Request-URI</x:ref>    = "*" | <x:ref>absoluteURI</x:ref> | abs_path | authority
    20392066</artwork></figure>
    20402067<t>
     
    21382165     field value.</t>
    21392166    <t>If the host as determined by rule 1 or 2 is not a valid host on
    2140      the server, the response &MUST; be a 400 (Bad Request) error message.</t>
     2167     the server, the response &MUST; be a <x:ref>400 (Bad Request)</x:ref> error message.</t>
    21412168  </list>
    21422169</t>
     
    21502177
    21512178<section title="Request Header Fields" anchor="request.header.fields">
     2179  <x:anchor-alias value="request-header"/>
    21522180<t>
    21532181   The request-header fields allow the client to pass additional
     
    21582186</t>
    21592187<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-header"/>
    2160     request-header = Accept                   ; <xref target="header.accept"/>
     2188    <x:ref>request-header</x:ref> = Accept                   ; <xref target="header.accept"/>
    21612189                   | Accept-Charset           ; <xref target="header.accept-charset"/>
    21622190                   | Accept-Encoding          ; <xref target="header.accept-encoding"/>
     
    21912219
    21922220<section title="Response" anchor="response">
     2221  <x:anchor-alias value="Response"/>
    21932222<t>
    21942223   After receiving and interpreting a request message, a server responds
     
    21962225</t>
    21972226<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Response"/>
    2198     Response      = Status-Line               ; <xref target="status-line"/>
    2199                     *(( general-header        ; <xref target="general.header.fields"/>
    2200                      | response-header        ; <xref target="response.header.fields"/>
    2201                      | entity-header ) CRLF)  ; <xref target="entity.header.fields"/>
    2202                     CRLF
    2203                     [ message-body ]          ; <xref target="entity.body"/>
     2227    <x:ref>Response</x:ref>      = <x:ref>Status-Line</x:ref>               ; <xref target="status-line"/>
     2228                    *(( <x:ref>general-header</x:ref>        ; <xref target="general.header.fields"/>
     2229                     | <x:ref>response-header</x:ref>        ; <xref target="response.header.fields"/>
     2230                     | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>)  ; <xref target="entity.header.fields"/>
     2231                    <x:ref>CRLF</x:ref>
     2232                    [ <x:ref>message-body</x:ref> ]          ; <xref target="entity.body"/>
    22042233</artwork></figure>
    22052234
    22062235<section title="Status-Line" anchor="status-line">
     2236  <x:anchor-alias value="Status-Line"/>
    22072237<t>
    22082238   The first line of a Response message is the Status-Line, consisting
     
    22122242</t>
    22132243<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Line"/>
    2214     Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
     2244    <x:ref>Status-Line</x:ref> = <x:ref>HTTP-Version</x:ref> <x:ref>SP</x:ref> <x:ref>Status-Code</x:ref> <x:ref>SP</x:ref> <x:ref>Reason-Phrase</x:ref> <x:ref>CRLF</x:ref>
    22152245</artwork></figure>
    22162246
     
    22502280  </list>
    22512281</t>
    2252 <t> 
     2282<t anchor="status.code.and.reason.phrase.codes">
     2283  <x:anchor-alias value="Status-Code"/> 
     2284  <x:anchor-alias value="Reason-Phrase"/> 
    22532285   The individual values of the numeric status codes defined for
    22542286   HTTP/1.1, and an example set of corresponding Reason-Phrase's, are
     
    22582290</t>
    22592291<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/><iref primary="true" item="Grammar" subitem="extension-code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/>
    2260    Status-Code    =
     2292   <x:ref>Status-Code</x:ref>    =
    22612293         "100"  ; <xref target="status.100"/>: Continue
    22622294       | "101"  ; <xref target="status.101"/>: Switching Protocols
     
    23012333       | extension-code
    23022334
    2303    extension-code = 3DIGIT
    2304    Reason-Phrase  = *&lt;TEXT, excluding CR, LF&gt;
     2335   extension-code = 3<x:ref>DIGIT</x:ref>
     2336   <x:ref>Reason-Phrase</x:ref>  = *&lt;<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>&gt;
    23052337</artwork></figure>
    23062338<t>
     
    23232355
    23242356<section title="Response Header Fields" anchor="response.header.fields">
     2357  <x:anchor-alias value="response-header"/>
    23252358<t>
    23262359   The response-header fields allow the server to pass additional
     
    23302363</t>
    23312364<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="response-header"/>
    2332     response-header = Accept-Ranges           ; <xref target="header.accept-ranges"/>
     2365    <x:ref>response-header</x:ref> = Accept-Ranges           ; <xref target="header.accept-ranges"/>
    23332366                    | Age                     ; <xref target="header.age"/>
    23342367                    | ETag                    ; <xref target="header.etag"/>
     
    23652398
    23662399<section title="Entity Header Fields" anchor="entity.header.fields">
     2400  <x:anchor-alias value="entity-header"/>
    23672401<t>
    23682402   Entity-header fields define metainformation about the entity-body or,
     
    23722406</t>
    23732407<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-header"/><iref primary="true" item="Grammar" subitem="extension-header"/>
    2374     entity-header  = Allow                    ; <xref target="header.allow"/>
     2408    <x:ref>entity-header</x:ref>  = Allow                    ; <xref target="header.allow"/>
    23752409                   | Content-Encoding         ; <xref target="header.content-encoding"/>
    23762410                   | Content-Language         ; <xref target="header.content-language"/>
     
    23842418                   | extension-header
    23852419
    2386     extension-header = message-header
     2420    extension-header = <x:ref>message-header</x:ref>
    23872421</artwork></figure>
    23882422<t>
     
    23962430
    23972431<section title="Entity Body" anchor="entity.body">
     2432  <x:anchor-alias value="entity-body"/>
    23982433<t>
    23992434   The entity-body (if any) sent with an HTTP request or response is in
     
    24012436</t>
    24022437<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="entity-body"/>
    2403     entity-body    = *OCTET
     2438    <x:ref>entity-body</x:ref>    = *<x:ref>OCTET</x:ref>
    24042439</artwork></figure>
    24052440<t>
     
    26822717<section title="Use of the 100 (Continue) Status" anchor="use.of.the.100.status">
    26832718<t>
    2684    The purpose of the 100 (Continue) status (see <xref target="status.100"/>) is to
     2719   The purpose of the <x:ref>100 (Continue)</x:ref> status (see <xref target="status.100"/>) is to
    26852720   allow a client that is sending a request message with a request body
    26862721   to determine if the origin server is willing to accept the request
     
    26942729  <list style="symbols">
    26952730    <t>
    2696         If a client will wait for a 100 (Continue) response before
     2731        If a client will wait for a <x:ref>100 (Continue)</x:ref> response before
    26972732        sending the request body, it &MUST; send an Expect request-header
    26982733        field (<xref target="header.expect"/>) with the "100-continue" expectation.
     
    27082743   Because of the presence of older implementations, the protocol allows
    27092744   ambiguous situations in which a client may send "Expect: 100-continue"
    2710    without receiving either a 417 (Expectation Failed) status
    2711    or a 100 (Continue) status. Therefore, when a client sends this
     2745   without receiving either a <x:ref>417 (Expectation Failed)</x:ref> status
     2746   or a <x:ref>100 (Continue)</x:ref> status. Therefore, when a client sends this
    27122747   header field to an origin server (possibly via a proxy) from which it
    2713    has never seen a 100 (Continue) status, the client &SHOULD-NOT;  wait
     2748   has never seen a <x:ref>100 (Continue)</x:ref> status, the client &SHOULD-NOT;  wait
    27142749   for an indefinite period before sending the request body.
    27152750</t>
     
    27192754    <t> Upon receiving a request which includes an Expect request-header
    27202755        field with the "100-continue" expectation, an origin server &MUST;
    2721         either respond with 100 (Continue) status and continue to read
     2756        either respond with <x:ref>100 (Continue)</x:ref> status and continue to read
    27222757        from the input stream, or respond with a final status code. The
    27232758        origin server &MUST-NOT; wait for the request body before sending
    2724         the 100 (Continue) response. If it responds with a final status
     2759        the <x:ref>100 (Continue)</x:ref> response. If it responds with a final status
    27252760        code, it &MAY; close the transport connection or it &MAY; continue
    27262761        to read and discard the rest of the request.  It &MUST-NOT;
    27272762        perform the requested method if it returns a final status code.
    27282763    </t>
    2729     <t> An origin server &SHOULD-NOT;  send a 100 (Continue) response if
     2764    <t> An origin server &SHOULD-NOT;  send a <x:ref>100 (Continue)</x:ref> response if
    27302765        the request message does not include an Expect request-header
    27312766        field with the "100-continue" expectation, and &MUST-NOT; send a
    2732         100 (Continue) response if such a request comes from an HTTP/1.0
     2767        <x:ref>100 (Continue)</x:ref> response if such a request comes from an HTTP/1.0
    27332768        (or earlier) client. There is an exception to this rule: for
    2734         compatibility with RFC 2068, a server &MAY; send a 100 (Continue)
     2769        compatibility with RFC 2068, a server &MAY; send a <x:ref>100 (Continue)</x:ref>
    27352770        status in response to an HTTP/1.1 PUT or POST request that does
    27362771        not include an Expect request-header field with the "100-continue"
    27372772        expectation. This exception, the purpose of which is
    27382773        to minimize any client processing delays associated with an
    2739         undeclared wait for 100 (Continue) status, applies only to
     2774        undeclared wait for <x:ref>100 (Continue)</x:ref> status, applies only to
    27402775        HTTP/1.1 requests, and not to requests with any other HTTP-version
    27412776        value.
    27422777    </t>
    2743     <t> An origin server &MAY; omit a 100 (Continue) response if it has
     2778    <t> An origin server &MAY; omit a <x:ref>100 (Continue)</x:ref> response if it has
    27442779        already received some or all of the request body for the
    27452780        corresponding request.
    27462781    </t>
    2747     <t> An origin server that sends a 100 (Continue) response &MUST;
     2782    <t> An origin server that sends a <x:ref>100 (Continue)</x:ref> response &MUST;
    27482783    ultimately send a final status code, once the request body is
    27492784        received and processed, unless it terminates the transport
     
    27762811    <t> If the proxy knows that the version of the next-hop server is
    27772812        HTTP/1.0 or lower, it &MUST-NOT; forward the request, and it &MUST;
    2778         respond with a 417 (Expectation Failed) status.
     2813        respond with a <x:ref>417 (Expectation Failed)</x:ref> status.
    27792814    </t>
    27802815    <t> Proxies &SHOULD; maintain a cache recording the HTTP version
    27812816        numbers received from recently-referenced next-hop servers.
    27822817    </t>
    2783     <t> A proxy &MUST-NOT; forward a 100 (Continue) response if the
     2818    <t> A proxy &MUST-NOT; forward a <x:ref>100 (Continue)</x:ref> response if the
    27842819        request message was received from an HTTP/1.0 (or earlier)
    27852820        client and did not include an Expect request-header field with
     
    28542889   this set can be expanded, additional methods cannot be assumed to
    28552890   share the same semantics for separately extended clients and servers.
    2856 
     2891</t>
     2892<t>
    28572893   The Host request-header field (<xref target="header.host"/>) &MUST; accompany all
    28582894   HTTP/1.1 requests.
     
    30693105<t>
    30703106   The action performed by the POST method might not result in a
    3071    resource that can be identified by a URI. In this case, either 200
    3072    (OK) or 204 (No Content) is the appropriate response status,
     3107   resource that can be identified by a URI. In this case, either <x:ref>200 (OK)</x:ref>
     3108   or <x:ref>204 (No Content)</x:ref> is the appropriate response status,
    30733109   depending on whether or not the response includes an entity that
    30743110   describes the result.
     
    30763112<t>
    30773113   If a resource has been created on the origin server, the response
    3078    &SHOULD; be 201 (Created) and contain an entity which describes the
     3114   &SHOULD; be <x:ref>201 (Created)</x:ref> and contain an entity which describes the
    30793115   status of the request and refers to the new resource, and a Location
    30803116   header (see <xref target="header.location"/>).
     
    30833119   Responses to this method are not cacheable, unless the response
    30843120   includes appropriate Cache-Control or Expires header fields. However,
    3085    the 303 (See Other) response can be used to direct the user agent to
     3121   the <x:ref>303 (See Other)</x:ref> response can be used to direct the user agent to
    30863122   retrieve a cacheable resource.
    30873123</t>
     
    31073143   agent, the origin server can create the resource with that URI. If a
    31083144   new resource is created, the origin server &MUST; inform the user agent
    3109    via the 201 (Created) response. If an existing resource is modified,
    3110    either the 200 (OK) or 204 (No Content) response codes &SHOULD; be sent
     3145   via the <x:ref>201 (Created)</x:ref> response. If an existing resource is modified,
     3146   either the <x:ref>200 (OK)</x:ref> or <x:ref>204 (No Content)</x:ref> response codes &SHOULD; be sent
    31113147   to indicate successful completion of the request. If the resource
    31123148   could not be created or modified with the Request-URI, an appropriate
     
    31143150   problem. The recipient of the entity &MUST-NOT; ignore any Content-*
    31153151   (e.g. Content-Range) headers that it does not understand or implement
    3116    and &MUST; return a 501 (Not Implemented) response in such cases.
     3152   and &MUST; return a <x:ref>501 (Not Implemented)</x:ref> response in such cases.
    31173153</t>
    31183154<t>
     
    31313167   server &MUST-NOT; attempt to apply the request to some other resource.
    31323168   If the server desires that the request be applied to a different URI,
    3133    it &MUST; send a 301 (Moved Permanently) response; the user agent &MAY;
     3169   it &MUST; send a <x:ref>301 (Moved Permanently)</x:ref> response; the user agent &MAY;
    31343170   then make its own decision regarding whether or not to redirect the
    31353171   request.
     
    31723208</t>
    31733209<t>
    3174    A successful response &SHOULD; be 200 (OK) if the response includes an
    3175    entity describing the status, 202 (Accepted) if the action has not
    3176    yet been enacted, or 204 (No Content) if the action has been enacted
     3210   A successful response &SHOULD; be <x:ref>200 (OK)</x:ref> if the response includes an
     3211   entity describing the status, <x:ref>202 (Accepted)</x:ref> if the action has not
     3212   yet been enacted, or <x:ref>204 (No Content)</x:ref> if the action has been enacted
    31773213   but the response does not include an entity.
    31783214</t>
     
    31913227   of the request message. The final recipient of the request
    31923228   &SHOULD; reflect the message received back to the client as the
    3193    entity-body of a 200 (OK) response. The final recipient is either the
     3229   entity-body of a <x:ref>200 (OK)</x:ref> response. The final recipient is either the
    31943230   origin server or the first proxy or gateway to receive a Max-Forwards
    31953231   value of zero (0) in the request (see <xref target="header.max-forwards"/>). A TRACE request
     
    32423278<t>
    32433279   A client &MUST; be prepared to accept one or more 1xx status responses
    3244    prior to a regular response, even if the client does not expect a 100
    3245    (Continue) status message. Unexpected 1xx status responses &MAY; be
     3280   prior to a regular response, even if the client does not expect a <x:ref>100 (Continue)</x:ref>
     3281   status message. Unexpected 1xx status responses &MAY; be
    32463282   ignored by a user agent.
    32473283</t>
     
    32513287   requested the generation of the 1xx response. (For example, if a
    32523288   proxy adds a "Expect: 100-continue" field when it forwards a request,
    3253    then it need not forward the corresponding 100 (Continue)
     3289   then it need not forward the corresponding <x:ref>100 (Continue)</x:ref>
    32543290   response(s).)
    32553291</t>
     
    32583294  <iref primary="true" item="100 Continue (status code)" x:for-anchor=""/>
    32593295  <iref primary="true" item="Status Codes" subitem="100 Continue" x:for-anchor=""/>
     3296  <x:anchor-alias value="100 (Continue)"/>
     3297  <x:anchor-alias value="100 (continue)"/>
    32603298<t>
    32613299   The client &SHOULD; continue with its request. This interim response is
     
    32733311  <iref primary="true" item="101 Switching Protocols (status code)" x:for-anchor=""/>
    32743312  <iref primary="true" item="Status Codes" subitem="101 Switching Protocols" x:for-anchor=""/>
     3313  <x:anchor-alias value="101 (Switching Protocols)"/>
    32753314<t>
    32763315   The server understands and is willing to comply with the client's
     
    33003339  <iref primary="true" item="200 OK (status code)" x:for-anchor=""/>
    33013340  <iref primary="true" item="Status Codes" subitem="200 OK" x:for-anchor=""/>
     3341  <x:anchor-alias value="200 (OK)"/>
    33023342<t>
    33033343   The request has succeeded. The information returned with the response
     
    33263366  <iref primary="true" item="201 Created (status code)" x:for-anchor=""/>
    33273367  <iref primary="true" item="Status Codes" subitem="201 Created" x:for-anchor=""/>
     3368  <x:anchor-alias value="201 (Created)"/>
    33283369<t>
    33293370   The request has been fulfilled and resulted in a new resource being
     
    33373378   server &MUST; create the resource before returning the 201 status code.
    33383379   If the action cannot be carried out immediately, the server &SHOULD;
    3339    respond with 202 (Accepted) response instead.
     3380   respond with <x:ref>202 (Accepted)</x:ref> response instead.
    33403381</t>
    33413382<t>
     
    33493390  <iref primary="true" item="202 Accepted (status code)" x:for-anchor=""/>
    33503391  <iref primary="true" item="Status Codes" subitem="202 Accepted" x:for-anchor=""/>
     3392  <x:anchor-alias value="202 (Accepted)"/>
    33513393<t>
    33523394   The request has been accepted for processing, but the processing has
     
    33793421   of the metainformation known by the origin server. Use of this
    33803422   response code is not required and is only appropriate when the
    3381    response would otherwise be 200 (OK).
     3423   response would otherwise be <x:ref>200 (OK)</x:ref>.
    33823424</t>
    33833425</section>
     
    33863428  <iref primary="true" item="204 No Content (status code)" x:for-anchor=""/>
    33873429  <iref primary="true" item="Status Codes" subitem="204 No Content" x:for-anchor=""/>
     3430  <x:anchor-alias value="204 (No Content)"/>
     3431  <x:anchor-alias value="204 (no content)"/>
    33883432<t>
    33893433   The server has fulfilled the request but does not need to return an
     
    34233467  <iref primary="true" item="206 Partial Content (status code)" x:for-anchor=""/>
    34243468  <iref primary="true" item="Status Codes" subitem="206 Partial Content" x:for-anchor=""/>
     3469  <x:anchor-alias value="206 (Partial Content)"/>
     3470  <x:anchor-alias value="206 (Partial content)"/>
     3471  <x:anchor-alias value="206 (Partial)"/>
    34253472<t>
    34263473   The server has fulfilled the partial GET request for the resource.
     
    34373484        Content-Type including Content-Range fields for each part. If a
    34383485        Content-Length header field is present in the response, its
    3439         value &MUST; match the actual number of OCTETs transmitted in the
     3486        value &MUST; match the actual number of <x:ref>OCTET</x:ref>s transmitted in the
    34403487        message-body.
    34413488    </t>
     
    34543501  </list>
    34553502</t>
     3503
    34563504<t>
    34573505   If the 206 response is the result of an If-Range request that used a
     
    34623510   cached entity-bodies and updated headers. Otherwise, the response
    34633511   &MUST; include all of the entity-headers that would have been returned
    3464    with a 200 (OK) response to the same request.
     3512   with a <x:ref>200 (OK)</x:ref> response to the same request.
    34653513</t>
    34663514<t>
     
    34713519<t>
    34723520   A cache that does not support the Range and Content-Range headers
    3473    &MUST-NOT; cache 206 (Partial) responses.
     3521   &MUST-NOT; cache <x:ref>206 (Partial)</x:ref> responses.
    34743522</t>
    34753523</section>
     
    34953543  <iref primary="true" item="300 Multiple Choices (status code)" x:for-anchor=""/>
    34963544  <iref primary="true" item="Status Codes" subitem="300 Multiple Choices" x:for-anchor=""/>
     3545  <x:anchor-alias value="300 (Multiple Choices)"/>
    34973546<t>
    34983547   The requested resource corresponds to any one of a set of
     
    35233572  <iref primary="true" item="301 Moved Permanently (status code)" x:for-anchor=""/>
    35243573  <iref primary="true" item="Status Codes" subitem="301 Moved Permanently" x:for-anchor=""/>
     3574  <x:anchor-alias value="301 (Moved Permanently)"/>
    35253575<t>
    35263576   The requested resource has been assigned a new permanent URI and any
     
    35373587   the new URI(s).
    35383588</t>
     3589
    35393590<t>
    35403591   If the 301 status code is received in response to a request other
     
    35863637  <iref primary="true" item="303 See Other (status code)" x:for-anchor=""/>
    35873638  <iref primary="true" item="Status Codes" subitem="303 See Other" x:for-anchor=""/>
     3639  <x:anchor-alias value="303 (See Other)"/>
    35883640<t>
    35893641   The response to the request can be found under a different URI and
     
    36123664  <iref primary="true" item="304 Not Modified (status code)" x:for-anchor=""/>
    36133665  <iref primary="true" item="Status Codes" subitem="304 Not Modified" x:for-anchor=""/>
     3666  <x:anchor-alias value="304 (Not Modified)"/>
     3667  <x:anchor-alias value="304 (not modified)"/>
    36143668<t>
    36153669   If the client has performed a conditional GET request and access is
     
    36603714  <iref primary="true" item="305 Use Proxy (status code)" x:for-anchor=""/>
    36613715  <iref primary="true" item="Status Codes" subitem="305 Use Proxy" x:for-anchor=""/>
     3716  <x:anchor-alias value="305 (Use Proxy)"/>
     3717  <x:anchor-alias value="305 (Proxy Redirect)"/>
    36623718<t>
    36633719   The requested resource &MUST; be accessed through the proxy given by
     
    37323788  <iref primary="true" item="400 Bad Request (status code)" x:for-anchor=""/>
    37333789  <iref primary="true" item="Status Codes" subitem="400 Bad Request" x:for-anchor=""/>
     3790  <x:anchor-alias value="400 (Bad Request)"/>
     3791  <x:anchor-alias value="400 (bad request)"/>
    37343792<t>
    37353793   The request could not be understood by the server due to malformed
     
    37423800  <iref primary="true" item="401 Unauthorized (status code)" x:for-anchor=""/>
    37433801  <iref primary="true" item="Status Codes" subitem="401 Unauthorized" x:for-anchor=""/>
     3802  <x:anchor-alias value="401 (Unauthorized)"/>
    37443803<t>
    37453804   The request requires user authentication. The response &MUST; include a
     
    37843843  <iref primary="true" item="404 Not Found (status code)" x:for-anchor=""/>
    37853844  <iref primary="true" item="Status Codes" subitem="404 Not Found" x:for-anchor=""/>
     3845  <x:anchor-alias value="404 (Not Found)"/>
    37863846<t>
    37873847   The server has not found anything matching the Request-URI. No
    37883848   indication is given of whether the condition is temporary or
    3789    permanent. The 410 (Gone) status code &SHOULD; be used if the server
     3849   permanent. The <x:ref>410 (Gone)</x:ref> status code &SHOULD; be used if the server
    37903850   knows, through some internally configurable mechanism, that an old
    37913851   resource is permanently unavailable and has no forwarding address.
     
    37993859  <iref primary="true" item="405 Method Not Allowed (status code)" x:for-anchor=""/>
    38003860  <iref primary="true" item="Status Codes" subitem="405 Method Not Allowed" x:for-anchor=""/>
     3861  <x:anchor-alias value="405 (Method Not Allowed)"/>
    38013862<t>
    38023863   The method specified in the Request-Line is not allowed for the
     
    38103871  <iref primary="true" item="406 Not Acceptable (status code)" x:for-anchor=""/>
    38113872  <iref primary="true" item="Status Codes" subitem="406 Not Acceptable" x:for-anchor=""/>
     3873  <x:anchor-alias value="406 (Not Acceptable)"/>
     3874  <x:anchor-alias value="406 (not acceptable)"/>
    38123875<t>
    38133876   The resource identified by the request is only capable of generating
     
    38423905  <iref primary="true" item="407 Proxy Authentication Required (status code)" x:for-anchor=""/>
    38433906  <iref primary="true" item="Status Codes" subitem="407 Proxy Authentication Required" x:for-anchor=""/>
    3844 <t>
    3845    This code is similar to 401 (Unauthorized), but indicates that the
     3907  <x:anchor-alias value="407 (Proxy Authentication Required)"/>
     3908<t>
     3909   This code is similar to <x:ref>401 (Unauthorized)</x:ref>, but indicates that the
    38463910   client must first authenticate itself with the proxy. The proxy &MUST;
    38473911   return a Proxy-Authenticate header field (<xref target="header.proxy-authenticate"/>) containing a
     
    38923956  <iref primary="true" item="410 Gone (status code)" x:for-anchor=""/>
    38933957  <iref primary="true" item="Status Codes" subitem="410 Gone" x:for-anchor=""/>
     3958  <x:anchor-alias value="410 (Gone)"/>
    38943959<t>
    38953960   The requested resource is no longer available at the server and no
     
    38983963   delete references to the Request-URI after user approval. If the
    38993964   server does not know, or has no facility to determine, whether or not
    3900    the condition is permanent, the status code 404 (Not Found) &SHOULD; be
     3965   the condition is permanent, the status code <x:ref>404 (Not Found)</x:ref> &SHOULD; be
    39013966   used instead. This response is cacheable unless indicated otherwise.
    39023967</t>
     
    39173982  <iref primary="true" item="411 Length Required (status code)" x:for-anchor=""/>
    39183983  <iref primary="true" item="Status Codes" subitem="411 Length Required" x:for-anchor=""/>
     3984  <x:anchor-alias value="411 (length required)"/>
    39193985<t>
    39203986   The server refuses to accept the request without a defined Content-Length.
     
    39283994  <iref primary="true" item="412 Precondition Failed (status code)" x:for-anchor=""/>
    39293995  <iref primary="true" item="Status Codes" subitem="412 Precondition Failed" x:for-anchor=""/>
     3996  <x:anchor-alias value="412 (Precondition Failed)"/>
    39303997<t>
    39313998   The precondition given in one or more of the request-header fields
     
    39564023  <iref primary="true" item="414 Request-URI Too Long (status code)" x:for-anchor=""/>
    39574024  <iref primary="true" item="Status Codes" subitem="414 Request-URI Too Long" x:for-anchor=""/>
     4025  <x:anchor-alias value="414 (Request-URI Too Long)"/>
    39584026<t>
    39594027   The server is refusing to service the request because the Request-URI
     
    39724040  <iref primary="true" item="415 Unsupported Media Type (status code)" x:for-anchor=""/>
    39734041  <iref primary="true" item="Status Codes" subitem="415 Unsupported Media Type" x:for-anchor=""/>
     4042  <x:anchor-alias value="415 (Unsupported Media Type)"/>
    39744043<t>
    39754044   The server is refusing to service the request because the entity of
     
    39824051  <iref primary="true" item="416 Requested Range Not Satisfiable (status code)" x:for-anchor=""/>
    39834052  <iref primary="true" item="Status Codes" subitem="416 Requested Range Not Satisfiable" x:for-anchor=""/>
     4053  <x:anchor-alias value="416 (Requested range not satisfiable)"/>
    39844054<t>
    39854055   A server &SHOULD; return a response with this status code if a request
     
    40024072  <iref primary="true" item="417 Expectation Failed (status code)" x:for-anchor=""/>
    40034073  <iref primary="true" item="Status Codes" subitem="417 Expectation Failed" x:for-anchor=""/>
     4074  <x:anchor-alias value="417 (Expectation Failed)"/>
    40044075<t>
    40054076   The expectation given in an Expect request-header field (see <xref target="header.expect"/>)
     
    40254096  <iref primary="true" item="500 Internal Server Error (status code)" x:for-anchor=""/>
    40264097  <iref primary="true" item="Status Codes" subitem="500 Internal Server Error" x:for-anchor=""/>
     4098  <x:anchor-alias value="500 (Internal Server Error)"/>
    40274099<t>
    40284100   The server encountered an unexpected condition which prevented it
     
    40344106  <iref primary="true" item="501 Not Implemented (status code)" x:for-anchor=""/>
    40354107  <iref primary="true" item="Status Codes" subitem="501 Not Implemented" x:for-anchor=""/>
     4108  <x:anchor-alias value="501 (Not Implemented)"/>
     4109  <x:anchor-alias value="501 (Unimplemented)"/>
    40364110<t>
    40374111   The server does not support the functionality required to fulfill the
     
    40554129  <iref primary="true" item="503 Service Unavailable (status code)" x:for-anchor=""/>
    40564130  <iref primary="true" item="Status Codes" subitem="503 Service Unavailable" x:for-anchor=""/>
     4131  <x:anchor-alias value="503 (Service Unavailable)"/>
    40574132<t>
    40584133   The server is currently unable to handle the request due to a
     
    40734148  <iref primary="true" item="504 Gateway Timeout (status code)" x:for-anchor=""/>
    40744149  <iref primary="true" item="Status Codes" subitem="504 Gateway Timeout" x:for-anchor=""/>
     4150  <x:anchor-alias value="504 (Gateway Timeout)"/>
    40754151<t>
    40764152   The server, while acting as a gateway or proxy, did not receive a
     
    42454321</t>
    42464322<t>
    4247    HTTP/1.1 defines the 300 (Multiple Choices) and 406 (Not Acceptable)
     4323   HTTP/1.1 defines the <x:ref>300 (Multiple Choices)</x:ref> and <x:ref>406 (Not Acceptable)</x:ref>
    42484324   status codes for enabling agent-driven negotiation when the server is
    42494325   unwilling or unable to provide a varying response using server-driven
     
    43744450         "no-cache" cache-request-directive; see <xref target="header.cache-control"/>).</t>
    43754451
    4376       <t>It is an appropriate 304 (Not Modified), 305 (Proxy Redirect),
     4452      <t>It is an appropriate <x:ref>304 (Not Modified)</x:ref>, <x:ref>305 (Proxy Redirect)</x:ref>,
    43774453         or error (4xx or 5xx) response message.</t>
    43784454  </list>
     
    49024978   The server then checks that validator against the current validator
    49034979   for the entity, and, if they match (see <xref target="weak.and.strong.validators"/>), it responds
    4904    with a special status code (usually, 304 (Not Modified)) and no
     4980   with a special status code (usually, <x:ref>304 (Not Modified)</x:ref>) and no
    49054981   entity-body. Otherwise, it returns a full response (including
    49064982   entity-body). Thus, we avoid transmitting the full response if the
     
    51615237   If-Unmodified-Since header field) and one or more entity tags (e.g.,
    51625238   in an If-Match, If-None-Match, or If-Range header field) as cache
    5163    validators, &MUST-NOT; return a response status of 304 (Not Modified)
     5239   validators, &MUST-NOT; return a response status of <x:ref>304 (Not Modified)</x:ref>
    51645240   unless doing so is consistent with all of the conditional header
    51655241   fields in the request.
     
    53465422   in the message (see <xref target="header.warning"/>).
    53475423  <list><t>
    5348       Warning: unnecessary modification of end-to-end headers might
     5424      <x:h>Warning:</x:h> unnecessary modification of end-to-end headers might
    53495425      cause authentication failures if stronger authentication
    53505426      mechanisms are introduced in later versions of HTTP. Such
     
    53645440<t>
    53655441   When a cache makes a validating request to a server, and the server
    5366    provides a 304 (Not Modified) response or a 206 (Partial Content)
     5442   provides a <x:ref>304 (Not Modified)</x:ref> response or a <x:ref>206 (Partial Content)</x:ref>
    53675443   response, the cache then constructs a response to send to the
    53685444   requesting client.
    53695445</t>
    53705446<t>
    5371    If the status code is 304 (Not Modified), the cache uses the entity-body
     5447   If the status code is <x:ref>304 (Not Modified)</x:ref>, the cache uses the entity-body
    53725448   stored in the cache entry as the entity-body of this outgoing
    5373    response. If the status code is 206 (Partial Content) and the ETag or
     5449   response. If the status code is <x:ref>206 (Partial Content)</x:ref> and the ETag or
    53745450   Last-Modified headers match exactly, the cache &MAY; combine the
    53755451   contents stored in the cache entry with the new contents received in
     
    54035479   warn-code 1xx, which are deleted even if not overridden).
    54045480  <list><t>
    5405       <x:h>Note:</x:h> this rule allows an origin server to use a 304 (Not
    5406       Modified) or a 206 (Partial Content) response to update any header
     5481      <x:h>Note:</x:h> this rule allows an origin server to use a <x:ref>304 (Not Modified)</x:ref>
     5482      or a <x:ref>206 (Partial Content)</x:ref> response to update any header
    54075483      associated with a previous response for the same entity or sub-ranges
    54085484      thereof, although it might not always be meaningful or
    54095485      correct to do so. This rule does not allow an origin server to use
    5410       a 304 (Not Modified) or a 206 (Partial Content) response to
     5486      a <x:ref>304 (Not Modified)</x:ref> or a <x:ref>206 (Partial Content)</x:ref> response to
    54115487      entirely delete a header that it had provided with a previous
    54125488      response.
     
    54865562   the cache &MUST-NOT; use a cached entry to satisfy the request unless
    54875563   it first relays the new request to the origin server in a conditional
    5488    request and the server responds with 304 (Not Modified), including an
     5564   request and the server responds with <x:ref>304 (Not Modified)</x:ref>, including an
    54895565   entity tag or Content-Location that indicates the entity to be used.
    54905566</t>
     
    55385614   the result might be a full response or might still be
    55395615   partial. A cache &MUST-NOT; return a partial response to a client
    5540    without explicitly marking it as such, using the 206 (Partial
    5541    Content) status code. A cache &MUST-NOT; return a partial response
    5542    using a status code of 200 (OK).
     5616   without explicitly marking it as such, using the <x:ref>206 (Partial Content)</x:ref>
     5617   status code. A cache &MUST-NOT; return a partial response
     5618   using a status code of <x:ref>200 (OK)</x:ref>.
    55435619</t>
    55445620<t>
     
    56245700   transmitted the request to the inbound server, and having received a
    56255701   corresponding response from the inbound server. This does not prevent
    5626    a proxy cache from sending a 100 (Continue) response before the
     5702   a proxy cache from sending a <x:ref>100 (Continue)</x:ref> response before the
    56275703   inbound server has sent its final reply.
    56285704</t>
     
    57215797
    57225798    media-range    = ( "*/*"
    5723                      | ( type "/" "*" )
    5724                      | ( type "/" subtype )
    5725                      ) *( ";" parameter )
    5726     accept-params  = ";" "q" "=" qvalue *( accept-extension )
    5727     accept-extension = ";" token [ "=" ( token | quoted-string ) ]
     5799                     | ( <x:ref>type</x:ref> "/" "*" )
     5800                     | ( <x:ref>type</x:ref> "/" <x:ref>subtype</x:ref> )
     5801                     ) *( ";" <x:ref>parameter</x:ref> )
     5802    accept-params  = ";" "q" "=" <x:ref>qvalue</x:ref> *( accept-extension )
     5803    accept-extension = ";" <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ]
    57285804</artwork></figure>
    57295805<t>
     
    57675843   and if the server cannot send a response which is acceptable
    57685844   according to the combined Accept field value, then the server &SHOULD;
    5769    send a 406 (not acceptable) response.
     5845   send a <x:ref>406 (not acceptable)</x:ref> response.
    57705846</t>
    57715847<t>
     
    58395915<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Charset"/>
    58405916   Accept-Charset = "Accept-Charset" ":"
    5841            1#( ( charset | "*" )[ ";" "q" "=" qvalue ] )
     5917           1#( ( <x:ref>charset</x:ref> | "*" )[ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
    58425918</artwork></figure>
    58435919<t>
     
    58625938   and if the server cannot send a response which is acceptable
    58635939   according to the Accept-Charset header, then the server &SHOULD; send
    5864    an error response with the 406 (not acceptable) status code, though
     5940   an error response with the <x:ref>406 (not acceptable)</x:ref> status code, though
    58655941   the sending of an unacceptable response is also allowed.
    58665942</t>
     
    58775953<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Encoding"/><iref primary="true" item="Grammar" subitem="codings"/>
    58785954    Accept-Encoding  = "Accept-Encoding" ":"
    5879                        1#( codings [ ";" "q" "=" qvalue ] )
    5880     codings          = ( content-coding | "*" )
     5955                       1#( codings [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
     5956    codings          = ( <x:ref>content-coding</x:ref> | "*" )
    58815957</artwork></figure>
    58825958<t>
     
    59185994   server cannot send a response which is acceptable according to the
    59195995   Accept-Encoding header, then the server &SHOULD; send an error response
    5920    with the 406 (Not Acceptable) status code.
     5996   with the <x:ref>406 (Not Acceptable)</x:ref> status code.
    59215997</t>
    59225998<t>
     
    59536029<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Language"/><iref primary="true" item="Grammar" subitem="language-range"/>
    59546030    Accept-Language = "Accept-Language" ":"
    5955                       1#( language-range [ ";" "q" "=" qvalue ] )
    5956     language-range  = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
     6031                      1#( language-range [ ";" "q" "=" <x:ref>qvalue</x:ref> ] )
     6032    language-range  = ( ( 1*8<x:ref>ALPHA</x:ref> *( "-" 1*8<x:ref>ALPHA</x:ref> ) ) | "*" )
    59576033</artwork></figure>
    59586034<t>
     
    60276103<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Accept-Ranges"/><iref primary="true" item="Grammar" subitem="acceptable-ranges"/>
    60286104       Accept-Ranges     = "Accept-Ranges" ":" acceptable-ranges
    6029        acceptable-ranges = 1#range-unit | "none"
     6105       acceptable-ranges = 1#<x:ref>range-unit</x:ref> | "none"
    60306106</artwork></figure>
    60316107<t>
     
    60646140<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Age"/><iref primary="true" item="Grammar" subitem="age-value"/>
    60656141        Age = "Age" ":" age-value
    6066         age-value = delta-seconds
     6142        age-value = <x:ref>delta-seconds</x:ref>
    60676143</artwork></figure>
    60686144<t>
     
    60896165      field is strictly to inform the recipient of valid methods
    60906166      associated with the resource. An Allow header field &MUST; be
    6091       present in a 405 (Method Not Allowed) response.
     6167      present in a <x:ref>405 (Method Not Allowed)</x:ref> response.
    60926168</t>
    60936169<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Allow"/>
    6094        Allow   = "Allow" ":" #Method
     6170       Allow   = "Allow" ":" #<x:ref>Method</x:ref>
    60956171</artwork></figure>
    60966172<t>
     
    62076283          "no-cache"                          ; <xref target="what.is.cacheable"/>
    62086284        | "no-store"                          ; <xref target="what.may.be.stored.by.caches"/>
    6209         | "max-age" "=" delta-seconds         ; <xref target="modifications.of.the.basic.expiration.mechanism"/>, <xref format="counter" target="cache.revalidation.and.reload.controls"/>
    6210         | "max-stale" [ "=" delta-seconds ]   ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
    6211         | "min-fresh" "=" delta-seconds       ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
     6285        | "max-age" "=" <x:ref>delta-seconds</x:ref>         ; <xref target="modifications.of.the.basic.expiration.mechanism"/>, <xref format="counter" target="cache.revalidation.and.reload.controls"/>
     6286        | "max-stale" [ "=" <x:ref>delta-seconds</x:ref> ]   ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
     6287        | "min-fresh" "=" <x:ref>delta-seconds</x:ref>       ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
    62126288        | "no-transform"                      ; <xref target="no-transform.directive"/>
    62136289        | "only-if-cached"                    ; <xref target="cache.revalidation.and.reload.controls"/>
     
    62166292    cache-response-directive =
    62176293          "public"                               ; <xref target="what.is.cacheable"/>
    6218         | "private" [ "=" &lt;"&gt; 1#field-name &lt;"&gt; ] ; <xref target="what.is.cacheable"/>
    6219         | "no-cache" [ "=" &lt;"&gt; 1#field-name &lt;"&gt; ]; <xref target="what.is.cacheable"/>
     6294        | "private" [ "=" &lt;"&gt; 1#<x:ref>field-name</x:ref> &lt;"&gt; ] ; <xref target="what.is.cacheable"/>
     6295        | "no-cache" [ "=" &lt;"&gt; 1#<x:ref>field-name</x:ref> &lt;"&gt; ]; <xref target="what.is.cacheable"/>
    62206296        | "no-store"                             ; <xref target="what.may.be.stored.by.caches"/>
    62216297        | "no-transform"                         ; <xref target="no-transform.directive"/>
    62226298        | "must-revalidate"                      ; <xref target="cache.revalidation.and.reload.controls"/>
    62236299        | "proxy-revalidate"                     ; <xref target="cache.revalidation.and.reload.controls"/>
    6224         | "max-age" "=" delta-seconds            ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
    6225         | "s-maxage" "=" delta-seconds           ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
     6300        | "max-age" "=" <x:ref>delta-seconds</x:ref>            ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
     6301        | "s-maxage" "=" <x:ref>delta-seconds</x:ref>           ; <xref target="modifications.of.the.basic.expiration.mechanism"/>
    62266302        | cache-extension                        ; <xref target="cache.control.extensions"/>
    62276303
    6228    cache-extension = token [ "=" ( token | quoted-string ) ]
     6304   cache-extension = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ]
    62296305</artwork></figure>
    62306306<t>
     
    65536629      validator when making its request. If the server replies with 304
    65546630      (Not Modified), then the cache can return its now validated copy
    6555       to the client with a 200 (OK) response. If the server replies with
     6631      to the client with a <x:ref>200 (OK)</x:ref> response. If the server replies with
    65566632      a new entity and cache validator, however, the intermediate cache
    65576633      can compare the returned validator with the one provided in the
    65586634      client's request, using the strong comparison function. If the
    65596635      client's validator is equal to the origin server's, then the
    6560       intermediate cache simply returns 304 (Not Modified). Otherwise,
    6561       it returns the new entity with a 200 (OK) response.
     6636      intermediate cache simply returns <x:ref>304 (Not Modified)</x:ref>. Otherwise,
     6637      it returns the new entity with a <x:ref>200 (OK)</x:ref> response.
    65626638  </t><t>
    65636639      If a request includes the no-cache directive, it &SHOULD-NOT;
     
    65776653      this directive, a cache &SHOULD; either respond using a cached entry
    65786654      that is consistent with the other constraints of the request, or
    6579       respond with a 504 (Gateway Timeout) status. However, if a group
     6655      respond with a <x:ref>504 (Gateway Timeout)</x:ref> status. However, if a group
    65806656      of caches is being operated as a unified system with good internal
    65816657      connectivity, such a request &MAY; be forwarded within that group of
     
    66046680      HTTP/1.1 cache &MUST; obey the must-revalidate directive; in
    66056681      particular, if the cache cannot reach the origin server for any
    6606       reason, it &MUST; generate a 504 (Gateway Timeout) response.
     6682      reason, it &MUST; generate a <x:ref>504 (Gateway Timeout)</x:ref> response.
    66076683  </t><t>
    66086684      Servers &SHOULD; send the must-revalidate directive if and only if
     
    67316807<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="connection-token"/>
    67326808    Connection = "Connection" ":" 1#(connection-token)
    6733     connection-token  = token
     6809    connection-token  = <x:ref>token</x:ref>
    67346810</artwork></figure>
    67356811<t>
     
    67866862</t>
    67876863<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Encoding"/>
    6788     Content-Encoding  = "Content-Encoding" ":" 1#content-coding
     6864    Content-Encoding  = "Content-Encoding" ":" 1#<x:ref>content-coding</x:ref>
    67896865</artwork></figure>
    67906866<t>
     
    68106886   If the content-coding of an entity in a request message is not
    68116887   acceptable to the origin server, the server &SHOULD; respond with a
    6812    status code of 415 (Unsupported Media Type).
     6888   status code of <x:ref>415 (Unsupported Media Type)</x:ref>.
    68136889</t>
    68146890<t>
     
    68306906</t>
    68316907<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Language"/>
    6832     Content-Language  = "Content-Language" ":" 1#language-tag
     6908    Content-Language  = "Content-Language" ":" 1#<x:ref>language-tag</x:ref>
    68336909</artwork></figure>
    68346910<t>
     
    68766952<t>
    68776953   The Content-Length entity-header field indicates the size of the
    6878    entity-body, in decimal number of OCTETs, sent to the recipient or,
     6954   entity-body, in decimal number of <x:ref>OCTET</x:ref>s, sent to the recipient or,
    68796955   in the case of the HEAD method, the size of the entity-body that
    68806956   would have been sent had the request been a GET.
    68816957</t>
    68826958<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Length"/>
    6883     Content-Length    = "Content-Length" ":" 1*DIGIT
     6959    Content-Length    = "Content-Length" ":" 1*<x:ref>DIGIT</x:ref>
    68846960</artwork></figure>
    68856961<t>
     
    69247000<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Location"/>
    69257001    Content-Location = "Content-Location" ":"
    6926                       ( absoluteURI | relativeURI )
     7002                      ( <x:ref>absoluteURI</x:ref> | <x:ref>relativeURI</x:ref> )
    69277003</artwork></figure>
    69287004<t>
     
    70407116
    70417117    content-range-spec      = byte-content-range-spec
    7042     byte-content-range-spec = bytes-unit SP
     7118    byte-content-range-spec = bytes-unit <x:ref>SP</x:ref>
    70437119                              byte-range-resp-spec "/"
    70447120                              ( instance-length | "*" )
     
    70467122    byte-range-resp-spec = (first-byte-pos "-" last-byte-pos)
    70477123                                   | "*"
    7048     instance-length           = 1*DIGIT
     7124    instance-length           = 1*<x:ref>DIGIT</x:ref>
    70497125</artwork></figure>
    70507126<t>
     
    71537229   not satisfiable) (<xref target="status.416"/>).
    71547230  <list><t>
    7155       <x:h>Note:</x:h> clients cannot depend on servers to send a 416 (Requested
    7156       range not satisfiable) response instead of a 200 (OK) response for
     7231      <x:h>Note:</x:h> clients cannot depend on servers to send a <x:ref>416 (Requested range not satisfiable)</x:ref>
     7232      response instead of a <x:ref>200 (OK)</x:ref> response for
    71577233      an unsatisfiable Range request-header, since not all servers
    71587234      implement this request-header.
     
    71707246</t>
    71717247<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Type"/>
    7172     Content-Type   = "Content-Type" ":" media-type
     7248    Content-Type   = "Content-Type" ":" <x:ref>media-type</x:ref>
    71737249</artwork></figure>
    71747250<t>
     
    71947270</t>
    71957271<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Date"/>
    7196     Date  = "Date" ":" HTTP-date
     7272    Date  = "Date" ":" <x:ref>HTTP-date</x:ref>
    71977273</artwork></figure>
    71987274<t>
     
    72067282   except in these cases:
    72077283  <list style="numbers">
    7208       <t>If the response status code is 100 (Continue) or 101 (Switching
    7209          Protocols), the response &MAY; include a Date header field, at
     7284      <t>If the response status code is <x:ref>100 (Continue)</x:ref> or
     7285         <x:ref>101 (Switching Protocols)</x:ref>, the response &MAY; include a Date header field, at
    72107286         the server's option.</t>
    72117287
    7212       <t>If the response status code conveys a server error, e.g. 500
    7213          (Internal Server Error) or 503 (Service Unavailable), and it is
     7288      <t>If the response status code conveys a server error, e.g. <x:ref>500 (Internal Server Error)</x:ref>
     7289         or <x:ref>503 (Service Unavailable)</x:ref>, and it is
    72147290         inconvenient or impossible to generate a valid Date.</t>
    72157291
     
    72717347</t>
    72727348<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="ETag"/>
    7273     ETag = "ETag" ":" entity-tag
     7349    ETag = "ETag" ":" <x:ref>entity-tag</x:ref>
    72747350</artwork></figure>
    72757351<figure><preamble>
     
    72947370
    72957371   expectation  =  "100-continue" | expectation-extension
    7296    expectation-extension =  token [ "=" ( token | quoted-string )
     7372   expectation-extension =  <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> )
    72977373                            *expect-params ]
    7298    expect-params =  ";" token [ "=" ( token | quoted-string ) ]
     7374   expect-params =  ";" <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ]
    72997375</artwork></figure>
    73007376<t>
    73017377   A server that does not understand or is unable to comply with any of
    73027378   the expectation values in the Expect field of a request &MUST; respond
    7303    with appropriate error status. The server &MUST; respond with a 417
    7304    (Expectation Failed) status if any of the expectations cannot be met
     7379   with appropriate error status. The server &MUST; respond with a <x:ref>417 (Expectation Failed)</x:ref>
     7380   status if any of the expectations cannot be met
    73057381   or, if there are other problems with the request, some other 4xx
    73067382   status.
     
    73107386   future extensions. If a server receives a request containing an
    73117387   Expect field that includes an expectation-extension that it does not
    7312    support, it &MUST; respond with a 417 (Expectation Failed) status.
     7388   support, it &MUST; respond with a <x:ref>417 (Expectation Failed)</x:ref> status.
    73137389</t>
    73147390<t>
     
    73197395<t>
    73207396   The Expect mechanism is hop-by-hop: that is, an HTTP/1.1 proxy &MUST;
    7321    return a 417 (Expectation Failed) status if it receives a request
     7397   return a <x:ref>417 (Expectation Failed)</x:ref> status if it receives a request
    73227398   with an expectation that it cannot meet. However, the Expect
    73237399   request-header itself is end-to-end; it &MUST; be forwarded if the
     
    73297405</t>
    73307406<t>
    7331    See <xref target="use.of.the.100.status"/> for the use of the 100 (continue) status.
     7407   See <xref target="use.of.the.100.status"/> for the use of the <x:ref>100 (continue)</x:ref> status.
    73327408</t>
    73337409</section>
     
    73547430</t>
    73557431<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expires"/>
    7356    Expires = "Expires" ":" HTTP-date
     7432   Expires = "Expires" ":" <x:ref>HTTP-date</x:ref>
    73577433</artwork></figure>
    73587434<t>
     
    74697545   request message it forwards does contain an appropriate Host header
    74707546   field that identifies the service being requested by the proxy. All
    7471    Internet-based HTTP/1.1 servers &MUST; respond with a 400 (Bad Request)
     7547   Internet-based HTTP/1.1 servers &MUST; respond with a <x:ref>400 (Bad Request)</x:ref>
    74727548   status code to any HTTP/1.1 request message which lacks a Host header
    74737549   field.
     
    74967572</t>
    74977573<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Match"/>
    7498     If-Match = "If-Match" ":" ( "*" | 1#entity-tag )
     7574    If-Match = "If-Match" ":" ( "*" | 1#<x:ref>entity-tag</x:ref> )
    74997575</artwork></figure>
    75007576<t>
     
    75137589   If none of the entity tags match, or if "*" is given and no current
    75147590   entity exists, the server &MUST-NOT; perform the requested method, and
    7515    &MUST; return a 412 (Precondition Failed) response. This behavior is
     7591   &MUST; return a <x:ref>412 (Precondition Failed)</x:ref> response. This behavior is
    75167592   most useful when the client wants to prevent an updating method, such
    75177593   as PUT, from modifying a resource that has changed since the client
     
    75577633   make it conditional: if the requested variant has not been modified
    75587634   since the time specified in this field, an entity will not be
    7559    returned from the server; instead, a 304 (not modified) response will
     7635   returned from the server; instead, a <x:ref>304 (not modified)</x:ref> response will
    75607636   be returned without any message-body.
    75617637</t>
    75627638<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Modified-Since"/>
    7563     If-Modified-Since = "If-Modified-Since" ":" HTTP-date
     7639    If-Modified-Since = "If-Modified-Since" ":" <x:ref>HTTP-date</x:ref>
    75647640</artwork></figure>
    75657641<t>
     
    75767652  <list style="numbers">
    75777653      <t>If the request would normally result in anything other than a
    7578          200 (OK) status, or if the passed If-Modified-Since date is
     7654         <x:ref>200 (OK)</x:ref> status, or if the passed If-Modified-Since date is
    75797655         invalid, the response is exactly the same as for a normal GET.
    75807656         A date which is later than the server's current time is
     
    76507726</t>
    76517727<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-None-Match"/>
    7652     If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag )
     7728    If-None-Match = "If-None-Match" ":" ( "*" | 1#<x:ref>entity-tag</x:ref> )
    76537729</artwork></figure>
    76547730<t>
     
    76617737   supplied in an If-Modified-Since header field in the request.
    76627738   Instead, if the request method was GET or HEAD, the server &SHOULD;
    7663    respond with a 304 (Not Modified) response, including the cache-related
     7739   respond with a <x:ref>304 (Not Modified)</x:ref> response, including the cache-related
    76647740   header fields (particularly ETag) of one of the entities that
    76657741   matched. For all other request methods, the server &MUST; respond with
    7666    a status of 412 (Precondition Failed).
     7742   a status of <x:ref>412 (Precondition Failed)</x:ref>.
    76677743</t>
    76687744<t>
     
    76767752   but &MUST; also ignore any If-Modified-Since header field(s) in the
    76777753   request. That is, if no entity tags match, then the server &MUST-NOT;
    7678    return a 304 (Not Modified) response.
     7754   return a <x:ref>304 (Not Modified)</x:ref> response.
    76797755</t>
    76807756<t>
     
    77297805</t>
    77307806<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Range"/>
    7731      If-Range = "If-Range" ":" ( entity-tag | HTTP-date )
     7807     If-Range = "If-Range" ":" ( <x:ref>entity-tag</x:ref> | <x:ref>HTTP-date</x:ref> )
    77327808</artwork></figure>
    77337809<t>
     
    77437819   If the entity tag given in the If-Range header matches the current
    77447820   entity tag for the entity, then the server &SHOULD; provide the
    7745    specified sub-range of the entity using a 206 (Partial content)
     7821   specified sub-range of the entity using a <x:ref>206 (Partial content)</x:ref>
    77467822   response. If the entity tag does not match, then the server &SHOULD;
    7747    return the entire entity using a 200 (OK) response.
     7823   return the entire entity using a <x:ref>200 (OK)</x:ref> response.
    77487824</t>
    77497825</section>
     
    77627838   If the requested variant has been modified since the specified time,
    77637839   the server &MUST-NOT; perform the requested operation, and &MUST; return
    7764    a 412 (Precondition Failed).
     7840   a <x:ref>412 (Precondition Failed)</x:ref>.
    77657841</t>
    77667842<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="If-Unmodified-Since"/>
    7767    If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date
     7843   If-Unmodified-Since = "If-Unmodified-Since" ":" <x:ref>HTTP-date</x:ref>
    77687844</artwork></figure>
    77697845<t>
     
    77967872</t>
    77977873<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Last-Modified"/>
    7798     Last-Modified  = "Last-Modified" ":" HTTP-date
     7874    Last-Modified  = "Last-Modified" ":" <x:ref>HTTP-date</x:ref>
    77997875</artwork></figure>
    78007876<t>
     
    78387914   The Location response-header field is used to redirect the recipient
    78397915   to a location other than the Request-URI for completion of the
    7840    request or identification of a new resource. For 201 (Created)
     7916   request or identification of a new resource. For <x:ref>201 (Created)</x:ref>
    78417917   responses, the Location is that of the new resource which was created
    78427918   by the request. For 3xx responses, the location &SHOULD; indicate the
     
    78457921</t>
    78467922<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Location"/>
    7847     Location       = "Location" ":" absoluteURI
     7923    Location       = "Location" ":" <x:ref>absoluteURI</x:ref>
    78487924</artwork></figure>
    78497925<t>
     
    78777953</t>
    78787954<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Max-Forwards"/>
    7879     Max-Forwards   = "Max-Forwards" ":" 1*DIGIT
     7955    Max-Forwards   = "Max-Forwards" ":" 1*<x:ref>DIGIT</x:ref>
    78807956</artwork></figure>
    78817957<t>
     
    79127988    Pragma            = "Pragma" ":" 1#pragma-directive
    79137989    pragma-directive  = "no-cache" | extension-pragma
    7914     extension-pragma  = token [ "=" ( token | quoted-string ) ]
     7990    extension-pragma  = <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ]
    79157991</artwork></figure>
    79167992<t>
     
    79488024<t>
    79498025   The Proxy-Authenticate response-header field &MUST; be included as part
    7950    of a 407 (Proxy Authentication Required) response. The field value
     8026   of a <x:ref>407 (Proxy Authentication Required)</x:ref> response. The field value
    79518027   consists of a challenge that indicates the authentication scheme and
    79528028   parameters applicable to the proxy for this Request-URI.
     
    80188094    byte-range-set  = 1#( byte-range-spec | suffix-byte-range-spec )
    80198095    byte-range-spec = first-byte-pos "-" [last-byte-pos]
    8020     first-byte-pos  = 1*DIGIT
    8021     last-byte-pos   = 1*DIGIT
     8096    first-byte-pos  = 1*<x:ref>DIGIT</x:ref>
     8097    last-byte-pos   = 1*<x:ref>DIGIT</x:ref>
    80228098</artwork></figure>
    80238099<t>
     
    80468122<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="suffix-byte-range-spec"/><iref primary="true" item="Grammar" subitem="suffix-length"/>
    80478123    suffix-byte-range-spec = "-" suffix-length
    8048     suffix-length = 1*DIGIT
     8124    suffix-length = 1*<x:ref>DIGIT</x:ref>
    80498125</artwork></figure>
    80508126<t>
     
    80628138   Otherwise, the byte-range-set is unsatisfiable. If the byte-range-set
    80638139   is unsatisfiable, the server &SHOULD; return a response with a status
    8064    of 416 (Requested range not satisfiable). Otherwise, the server
    8065    &SHOULD; return a response with a status of 206 (Partial Content)
     8140   of <x:ref>416 (Requested range not satisfiable)</x:ref>. Otherwise, the server
     8141   &SHOULD; return a response with a status of <x:ref>206 (Partial Content)</x:ref>
    80668142   containing the satisfiable ranges of the entity-body.
    80678143</t>
     
    81158191        what is returned if the GET is otherwise successful. In other
    81168192        words, the response carries a status code of 206 (Partial
    8117         Content) instead of 200 (OK).</t>
     8193        Content) instead of <x:ref>200 (OK)</x:ref>.</t>
    81188194
    81198195     <t>The presence of a Range header in a conditional GET (a request
     
    81218197        one or both of If-Unmodified-Since and If-Match) modifies what
    81228198        is returned if the GET is otherwise successful and the
    8123         condition is true. It does not affect the 304 (Not Modified)
     8199        condition is true. It does not affect the <x:ref>304 (Not Modified)</x:ref>
    81248200        response returned if the conditional is false.</t>
    81258201  </list>
     
    81548230</t>
    81558231<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Referer"/>
    8156     Referer        = "Referer" ":" ( absoluteURI | relativeURI )
     8232    Referer        = "Referer" ":" ( <x:ref>absoluteURI</x:ref> | <x:ref>relativeURI</x:ref> )
    81578233</artwork></figure>
    81588234<t>
     
    81828258</t>
    81838259<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Retry-After"/>
    8184     Retry-After  = "Retry-After" ":" ( HTTP-date | delta-seconds )
     8260    Retry-After  = "Retry-After" ":" ( <x:ref>HTTP-date</x:ref> | <x:ref>delta-seconds</x:ref> )
    81858261</artwork></figure>
    81868262<t>
     
    82088284</t>
    82098285<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Server"/>
    8210     Server         = "Server" ":" 1*( product | comment )
     8286    Server         = "Server" ":" 1*( <x:ref>product</x:ref> | <x:ref>comment</x:ref> )
    82118287</artwork></figure>
    82128288<t>
     
    83138389</t>
    83148390<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Trailer"/>
    8315     Trailer  = "Trailer" ":" 1#field-name
     8391    Trailer  = "Trailer" ":" 1#<x:ref>field-name</x:ref>
    83168392</artwork></figure>
    83178393<t>
     
    83488424</t>
    83498425<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Transfer-Encoding"/>
    8350   Transfer-Encoding       = "Transfer-Encoding" ":" 1#transfer-coding
     8426  Transfer-Encoding       = "Transfer-Encoding" ":" 1#<x:ref>transfer-coding</x:ref>
    83518427</artwork></figure>
    83528428<t>
     
    83758451   additional communication protocols it supports and would like to use
    83768452   if the server finds it appropriate to switch protocols. The server
    8377    &MUST; use the Upgrade header field within a 101 (Switching Protocols)
     8453   &MUST; use the Upgrade header field within a <x:ref>101 (Switching Protocols)</x:ref>
    83788454   response to indicate which protocol(s) are being switched.
    83798455</t>
    83808456<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/>
    8381     Upgrade        = "Upgrade" ":" 1#product
     8457    Upgrade        = "Upgrade" ":" 1#<x:ref>product</x:ref>
    83828458</artwork></figure>
    83838459<t>
     
    84478523</t>
    84488524<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="User-Agent"/>
    8449     User-Agent     = "User-Agent" ":" 1*( product | comment )
     8525    User-Agent     = "User-Agent" ":" 1*( <x:ref>product</x:ref> | <x:ref>comment</x:ref> )
    84508526</artwork></figure>
    84518527<t>
     
    84728548</t>
    84738549<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Vary"/>
    8474     Vary  = "Vary" ":" ( "*" | 1#field-name )
     8550    Vary  = "Vary" ":" ( "*" | 1#<x:ref>field-name</x:ref> )
    84758551</artwork></figure>
    84768552<t>
     
    85218597</t>
    85228598<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Via"/><iref primary="true" item="Grammar" subitem="received-protocol"/><iref primary="true" item="Grammar" subitem="protocol-name"/><iref primary="true" item="Grammar" subitem="protocol-version"/><iref primary="true" item="Grammar" subitem="received-by"/><iref primary="true" item="Grammar" subitem="pseudonym"/>
    8523    Via =  "Via" ":" 1#( received-protocol received-by [ comment ] )
     8599   Via =  "Via" ":" 1#( received-protocol received-by [ <x:ref>comment</x:ref> ] )
    85248600   received-protocol = [ protocol-name "/" ] protocol-version
    8525    protocol-name     = token
    8526    protocol-version  = token
     8601   protocol-name     = <x:ref>token</x:ref>
     8602   protocol-version  = <x:ref>token</x:ref>
    85278603   received-by       = ( host [ ":" port ] ) | pseudonym
    8528    pseudonym         = token
     8604   pseudonym         = <x:ref>token</x:ref>
    85298605</artwork></figure>
    85308606<t>
     
    86168692    Warning    = "Warning" ":" 1#warning-value
    86178693
    8618     warning-value = warn-code SP warn-agent SP warn-text
    8619                                           [SP warn-date]
    8620 
    8621     warn-code  = 3DIGIT
     8694    warning-value = warn-code <x:ref>SP</x:ref> warn-agent <x:ref>SP</x:ref> warn-text
     8695                                          [<x:ref>SP</x:ref> warn-date]
     8696
     8697    warn-code  = 3<x:ref>DIGIT</x:ref>
    86228698    warn-agent = ( host [ ":" port ] ) | pseudonym
    86238699                    ; the name or pseudonym of the server adding
    86248700                    ; the Warning header, for use in debugging
    8625     warn-text  = quoted-string
    8626     warn-date  = &lt;"&gt; HTTP-date &lt;"&gt;
     8701    warn-text  = <x:ref>quoted-string</x:ref>
     8702    warn-date  = &lt;"&gt; <x:ref>HTTP-date</x:ref> &lt;"&gt;
    86278703</artwork></figure>
    86288704<t>
     
    86818757</t>
    86828758<t>
     8759  <iref primary="true" item="110 Response is stale (warn code)"/>
     8760  <iref primary="true" item="Warn Codes" subitem="110 Response is stale"/>
    86838761   110 Response is stale
    86848762  <list><t>
     
    86878765</t>
    86888766<t>
     8767  <iref primary="true" item="111 Revalidation failed (warn code)"/>
     8768  <iref primary="true" item="Warn Codes" subitem="111 Revalidation failed"/>
    86898769   111 Revalidation failed
    86908770  <list><t>
     
    86958775</t>
    86968776<t>
     8777  <iref primary="true" item="112 Disconnected operation (warn code)"/>
     8778  <iref primary="true" item="Warn Codes" subitem="112 Disconnected operation"/>
    86978779   112 Disconnected operation
    86988780  <list><t>
     
    87028784</t>
    87038785<t>
     8786  <iref primary="true" item="113 Heuristic expiration (warn code)"/>
     8787  <iref primary="true" item="Warn Codes" subitem="113 Heuristic expiration"/>
    87048788   113 Heuristic expiration
    87058789  <list><t>
     
    87108794</t>
    87118795<t>
     8796  <iref primary="true" item="199 Miscellaneous warning (warn code)"/>
     8797  <iref primary="true" item="Warn Codes" subitem="199 Miscellaneous warning"/>
    87128798   199 Miscellaneous warning
    87138799  <list><t>
     
    87198805</t>
    87208806<t>
     8807  <iref primary="true" item="214 Transformation applied (warn code)"/>
     8808  <iref primary="true" item="Warn Codes" subitem="214 Transformation applied"/>
    87218809   214 Transformation applied
    87228810  <list><t>
     
    87298817</t>
    87308818<t>
     8819  <iref primary="true" item="299 Miscellaneous persistent warning (warn code)"/>
     8820  <iref primary="true" item="Warn Codes" subitem="299 Miscellaneous persistent warning"/>
    87318821   299 Miscellaneous persistent warning
    87328822  <list><t>
     
    90949184</section>
    90959185
    9096 <section title="Acknowledgments" anchor="ack">
     9186<section title="Acknowledgments" anchor="acknowledgments">
     9187
    90979188<t>
    90989189   This specification makes heavy use of the augmented BNF and generic
     
    1073710828<iref item="multipart/byteranges Media Type" primary="true"/>
    1073810829<t>
    10739    When an HTTP 206 (Partial Content) response message includes the
     10830   When an HTTP <x:ref>206 (Partial Content)</x:ref> response message includes the
    1074010831   content of multiple ranges (a response to a request for multiple
    1074110832   non-overlapping ranges), these are transmitted as a multipart
     
    1088110972   might be required.
    1088210973</t>
     10974
    1088310975<section title="MIME-Version" anchor="mime-version">
     10976  <iref primary="true" item="MIME-Version header" x:for-anchor=""/>
     10977  <iref primary="true" item="Headers" subitem="MIME-Version" x:for-anchor=""/>
     10978  <x:anchor-alias value="MIME-Version"/>
    1088410979<t>
    1088510980   HTTP is not a MIME-compliant protocol. However, HTTP/1.1 messages &MAY;
     
    1089210987</t>
    1089310988<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="MIME-Version"/>
    10894     MIME-Version   = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT
     10989    MIME-Version   = "MIME-Version" ":" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref>
    1089510990</artwork></figure>
    1089610991<t>
     
    1104611141     disposition-type = "attachment" | disp-extension-token
    1104711142     disposition-parm = filename-parm | disp-extension-parm
    11048      filename-parm = "filename" "=" quoted-string
    11049      disp-extension-token = token
    11050      disp-extension-parm = token "=" ( token | quoted-string )
     11143     filename-parm = "filename" "=" <x:ref>quoted-string</x:ref>
     11144     disp-extension-token = <x:ref>token</x:ref>
     11145     disp-extension-parm = <x:ref>token</x:ref> "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> )
    1105111146</artwork></figure>
    1105211147<t>
     
    1114511240     <t>A client that sends an HTTP/1.1 request &MUST; send a Host header.</t>
    1114611241
    11147      <t>Servers &MUST; report a 400 (Bad Request) error if an HTTP/1.1
     11242     <t>Servers &MUST; report a <x:ref>400 (Bad Request)</x:ref> error if an HTTP/1.1
    1114811243        request does not include a Host request-header.</t>
    1114911244
     
    1128511380
    1128611381      <t>Require that the origin server &MUST-NOT; wait for the request
    11287          body before it sends a required 100 (Continue) response.</t>
    11288 
    11289       <t>Allow, rather than require, a server to omit 100 (Continue) if
     11382         body before it sends a required <x:ref>100 (Continue)</x:ref> response.</t>
     11383
     11384      <t>Allow, rather than require, a server to omit <x:ref>100 (Continue)</x:ref> if
    1129011385         it has already seen some of the request body.</t>
    1129111386
Note: See TracChangeset for help on using the changeset viewer.