Ignore:
Timestamp:
Mar 2, 2008, 9:21:57 AM (12 years ago)
Author:
julian.reschke@…
Message:

add linking between ABNF rules (does not affect TXT version), relates to #36.

File:
1 edited

Legend:

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

    r228 r229  
    813813
    814814<section title="Basic Rules" anchor="basic.rules">
    815 <x:anchor-alias value="OCTET"/>
    816 <x:anchor-alias value="CHAR"/>
    817 <x:anchor-alias value="ALPHA"/>
    818 <x:anchor-alias value="DIGIT"/>
    819 <x:anchor-alias value="CTL"/>
    820 <x:anchor-alias value="CR"/>
    821 <x:anchor-alias value="LF"/>
    822 <x:anchor-alias value="SP"/>
    823 <x:anchor-alias value="HTAB"/>
    824 <x:anchor-alias value="CRLF"/>
    825 <x:anchor-alias value="LWS"/>
    826 <x:anchor-alias value="TEXT"/>
    827 <x:anchor-alias value="HEX"/>
    828 <x:anchor-alias value="token"/>
    829 <x:anchor-alias value="separators"/>
    830 <x:anchor-alias value="comment"/>
    831 <x:anchor-alias value="ctext"/>
    832 <x:anchor-alias value="quoted-string"/>
    833 <x:anchor-alias value="qdtext"/>
    834 <x:anchor-alias value="quoted-pair"/>
    835 <t>
     815<t anchor="core.rules">
     816  <x:anchor-alias value="OCTET"/>
     817  <x:anchor-alias value="CHAR"/>
     818  <x:anchor-alias value="ALPHA"/>
     819  <x:anchor-alias value="DIGIT"/>
     820  <x:anchor-alias value="CTL"/>
     821  <x:anchor-alias value="CR"/>
     822  <x:anchor-alias value="LF"/>
     823  <x:anchor-alias value="SP"/>
     824  <x:anchor-alias value="HTAB"/>
     825  <x:anchor-alias value="DQUOTE"/>
    836826   The following rules are used throughout this specification to
    837827   describe basic parsing constructs. The US-ASCII coded character set
     
    839829</t>
    840830<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OCTET"/><iref primary="true" item="Grammar" subitem="CHAR"/><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="HTAB"/><iref primary="true" item="Grammar" subitem="DQUOTE"/>
    841   OCTET          = %x00-FF
     831  <x:ref>OCTET</x:ref>          = %x00-FF
    842832                   ; any 8-bit sequence of data
    843   CHAR           = %x01-7F
     833  <x:ref>CHAR</x:ref>           = %x01-7F
    844834                   ; any US-ASCII character, excluding NUL
    845   ALPHA          = %x41-5A | %x61-7A
     835  <x:ref>ALPHA</x:ref>          = %x41-5A | %x61-7A
    846836                   ; A-Z | a-z
    847   DIGIT          = %x30-39
     837  <x:ref>DIGIT</x:ref>          = %x30-39
    848838                   ; any US-ASCII digit "0".."9"
    849   CTL            = %x00-1F | %x7F
     839  <x:ref>CTL</x:ref>            = %x00-1F | %x7F
    850840                   ; (octets 0 - 31) and DEL (127)
    851   CR             = %x0D
     841  <x:ref>CR</x:ref>             = %x0D
    852842                   ; US-ASCII CR, carriage return (13)
    853   LF             = %x0A
     843  <x:ref>LF</x:ref>             = %x0A
    854844                   ; US-ASCII LF, linefeed (10)
    855   SP             = %x20
     845  <x:ref>SP</x:ref>             = %x20
    856846                   ; US-ASCII SP, space (32)
    857   HTAB           = %x09
     847  <x:ref>HTAB</x:ref>           = %x09
    858848                   ; US-ASCII HT, horizontal-tab (9)
    859   DQUOTE         = %x22
     849  <x:ref>DQUOTE</x:ref>         = %x22
    860850                   ; US-ASCII double-quote mark (34)
    861851</artwork></figure>
    862 <t>
     852<t anchor="rule.CRLF">
     853  <x:anchor-alias value="CRLF"/>
    863854   HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
    864855   protocol elements except the entity-body (see <xref target="tolerant.applications"/> for
     
    867858</t>
    868859<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="CRLF"/>
    869   CRLF           = CR LF
    870 </artwork></figure>
    871 <t>
     860  <x:ref>CRLF</x:ref>           = <x:ref>CR</x:ref> LF
     861</artwork></figure>
     862<t anchor="rule.LWS">
     863  <x:anchor-alias value="LWS"/>
    872864   HTTP/1.1 header field values can be folded onto multiple lines if the
    873865   continuation line begins with a space or horizontal tab. All linear
     
    877869</t>
    878870<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="LWS"/>
    879   LWS            = [CRLF] 1*( SP | HTAB )
    880 </artwork></figure>
    881 <t>
     871  <x:ref>LWS</x:ref>            = [<x:ref>CRLF</x:ref>] 1*( <x:ref>SP</x:ref> | <x:ref>HTAB</x:ref> )
     872</artwork></figure>
     873<t anchor="rule.TEXT">
     874  <x:anchor-alias value="TEXT"/>
    882875   The TEXT rule is only used for descriptive field contents and values
    883876   that are not intended to be interpreted by the message parser. Words
     
    887880</t>
    888881<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT"/>
    889   TEXT           = %x20-7E | %x80-FF | LWS
    890                  ; any OCTET except CTLs, but including LWS
     882  <x:ref>TEXT</x:ref>           = %x20-7E | %x80-FF | <x:ref>LWS</x:ref>
     883                 ; any <x:ref>OCTET</x:ref> except <x:ref>CTL</x:ref>s, but including <x:ref>LWS</x:ref>
    891884</artwork></figure>
    892885<t>
     
    895888   replaced with a single SP before interpretation of the TEXT value.
    896889</t>
    897 <t>
     890<t anchor="rule.HEX">
     891  <x:anchor-alias value="HEX"/>
    898892   Hexadecimal numeric characters are used in several protocol elements.
    899893</t>
    900894<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HEX"/>
    901   HEX            = "A" | "B" | "C" | "D" | "E" | "F"
    902                  | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
    903 </artwork></figure>
    904 <t>
     895  <x:ref>HEX</x:ref>            = "A" | "B" | "C" | "D" | "E" | "F"
     896                 | "a" | "b" | "c" | "d" | "e" | "f" | <x:ref>DIGIT</x:ref>
     897</artwork></figure>
     898<t anchor="rule.token.separators">
     899  <x:anchor-alias value="tchar"/>
     900  <x:anchor-alias value="token"/>
     901  <x:anchor-alias value="separators"/>
    905902   Many HTTP/1.1 header field values consist of words separated by LWS
    906903   or special characters. These special characters &MUST; be in a quoted
     
    909906</t>
    910907<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="token"/><iref primary="true" item="Grammar" subitem="tchar"/><iref primary="true" item="Grammar" subitem="separators"/>
    911   separators     = "(" | ")" | "&lt;" | "&gt;" | "@"
    912                  | "," | ";" | ":" | "\" | DQUOTE
     908  <x:ref>separators</x:ref>     = "(" | ")" | "&lt;" | "&gt;" | "@"
     909                 | "," | ";" | ":" | "\" | <x:ref>DQUOTE</x:ref>
    913910                 | "/" | "[" | "]" | "?" | "="
    914                  | "{" | "}" | SP | HTAB
     911                 | "{" | "}" | <x:ref>SP</x:ref> | <x:ref>HTAB</x:ref>
    915912                 
    916   tchar          = "!" | "#" | "$" | "%" | "&amp;" | "'" | "*"
     913  <x:ref>tchar</x:ref>          = "!" | "#" | "$" | "%" | "&amp;" | "'" | "*"
    917914                 | "+" | "-" | "." | "^" | "_" | "`" | "|" | "~"
    918                  | DIGIT | ALPHA
    919                  ; any CHAR except CTLs or separators
     915                 | <x:ref>DIGIT</x:ref> | <x:ref>ALPHA</x:ref>
     916                 ; any <x:ref>CHAR</x:ref> except <x:ref>CTL</x:ref>s or <x:ref>separators</x:ref>
    920917                 
    921   token          = 1*tchar
    922 </artwork></figure>
    923 <t>
     918  <x:ref>token</x:ref>          = 1*<x:ref>tchar</x:ref>
     919</artwork></figure>
     920<t anchor="rule.comment">
     921  <x:anchor-alias value="comment"/>
     922  <x:anchor-alias value="ctext"/>
    924923   Comments can be included in some HTTP header fields by surrounding
    925924   the comment text with parentheses. Comments are only allowed in
     
    929928</t>
    930929<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="comment"/><iref primary="true" item="Grammar" subitem="ctext"/>
    931   comment        = "(" *( ctext | quoted-pair | comment ) ")"
    932   ctext          = &lt;any TEXT excluding "(" and ")"&gt;
    933 </artwork></figure>
    934 <t>
     930  <x:ref>comment</x:ref>        = "(" *( <x:ref>ctext</x:ref> | <x:ref>quoted-pair</x:ref> | <x:ref>comment</x:ref> ) ")"
     931  <x:ref>ctext</x:ref>          = &lt;any <x:ref>TEXT</x:ref> excluding "(" and ")"&gt;
     932</artwork></figure>
     933<t anchor="rule.quoted-string">
     934  <x:anchor-alias value="quoted-string"/>
     935  <x:anchor-alias value="qdtext"/>
    935936   A string of text is parsed as a single word if it is quoted using
    936937   double-quote marks.
    937938</t>
    938939<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext"/>
    939   quoted-string  = ( DQUOTE *(qdtext | quoted-pair ) DQUOTE )
    940   qdtext         = &lt;any TEXT excluding DQUOTE and "\">
    941 </artwork></figure>
    942 <t>
     940  <x:ref>quoted-string</x:ref>  = ( <x:ref>DQUOTE</x:ref> *(<x:ref>qdtext</x:ref> | <x:ref>quoted-pair</x:ref> ) <x:ref>DQUOTE</x:ref> )
     941  <x:ref>qdtext</x:ref>         = &lt;any <x:ref>TEXT</x:ref> excluding <x:ref>DQUOTE</x:ref> and "\">
     942</artwork></figure>
     943<t anchor="rule.quoted-pair">
     944  <x:anchor-alias value="quoted-pair"/>
    943945   The backslash character ("\") &MAY; be used as a single-character
    944946   quoting mechanism only within quoted-string and comment constructs.
    945947</t>
    946948<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-pair"/>
    947   quoted-pair    = "\" CHAR
     949  <x:ref>quoted-pair</x:ref>    = "\" <x:ref>CHAR</x:ref>
    948950</artwork></figure>
    949951</section>
    950952
    951953<section title="ABNF Rules defined in other Parts of the Specification" anchor="abnf.dependencies">
     954  <x:anchor-alias value="request-header"/>
     955  <x:anchor-alias value="response-header"/>
     956  <x:anchor-alias value="accept-params"/>
     957  <x:anchor-alias value="entity-body"/>
     958  <x:anchor-alias value="entity-header"/>
     959  <x:anchor-alias value="Cache-Control"/>
     960  <x:anchor-alias value="Pragma"/>
     961  <x:anchor-alias value="Warning"/>
    952962<t>
    953963  The ABNF rules below are defined in other parts:
    954964</t>
    955965<figure><!-- Part2--><artwork type="abnf2616">
    956   request-header = &lt;request-header, defined in &request-header-fields;&gt;
    957   response-header = &lt;response-header, defined in &response-header-fields;&gt;
     966  <x:ref>request-header</x:ref>  = &lt;request-header, defined in &request-header-fields;&gt;
     967  <x:ref>response-header</x:ref> = &lt;response-header, defined in &response-header-fields;&gt;
    958968</artwork></figure>
    959969<figure><!-- Part3--><artwork type="abnf2616">
    960   accept-params   = &lt;accept-params, defined in &header-accept;&gt;
    961   entity-body     = &lt;entity-body, defined in &entity-body;&gt;
    962   entity-header   = &lt;entity-header, defined in &entity-header-fields;&gt;
     970  <x:ref>accept-params</x:ref>   = &lt;accept-params, defined in &header-accept;&gt;
     971  <x:ref>entity-body</x:ref>     = &lt;entity-body, defined in &entity-body;&gt;
     972  <x:ref>entity-header</x:ref>   = &lt;entity-header, defined in &entity-header-fields;&gt;
    963973</artwork></figure>
    964974<figure><!-- Part6--><artwork type="abnf2616">
    965   Cache-Control   = &lt;Cache-Control, defined in &header-pragma;&gt;
    966   Pragma          = &lt;Pragma, defined in &header-pragma;&gt;
    967   Warning         = &lt;Warning, defined in &header-warning;&gt;
     975  <x:ref>Cache-Control</x:ref>   = &lt;Cache-Control, defined in &header-pragma;&gt;
     976  <x:ref>Pragma</x:ref>          = &lt;Pragma, defined in &header-pragma;&gt;
     977  <x:ref>Warning</x:ref>         = &lt;Warning, defined in &header-warning;&gt;
    968978</artwork></figure>
    969979</section>
     
    974984
    975985<section title="HTTP Version" anchor="http.version">
     986  <x:anchor-alias value="HTTP-Version"/>
    976987<t>
    977988   HTTP uses a "&lt;major&gt;.&lt;minor&gt;" numbering scheme to indicate versions
     
    9941005</t>
    9951006<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-Version"/>
    996   HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT
     1007  <x:ref>HTTP-Version</x:ref>   = "HTTP" "/" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref>
    9971008</artwork></figure>
    9981009<t>
     
    10541065
    10551066<section title="General Syntax" anchor="general.syntax">
     1067  <x:anchor-alias value="absoluteURI"/>
     1068  <x:anchor-alias value="authority"/>
     1069  <x:anchor-alias value="fragment"/>
     1070  <x:anchor-alias value="path-absolute"/>
     1071  <x:anchor-alias value="port"/>
     1072  <x:anchor-alias value="query"/>
     1073  <x:anchor-alias value="relativeURI"/>
     1074  <x:anchor-alias value="uri-host"/>
    10561075<t>
    10571076   URIs in HTTP can be represented in absolute form or relative to some
     
    10661085</t>
    10671086<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="absoluteURI"/><iref primary="true" item="Grammar" subitem="authority"/><iref primary="true" item="Grammar" subitem="path-absolute"/><iref primary="true" item="Grammar" subitem="port"/><iref primary="true" item="Grammar" subitem="query"/><iref primary="true" item="Grammar" subitem="relativeURI"/><iref primary="true" item="Grammar" subitem="uri-host"/>
    1068   absoluteURI   = &lt;absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
    1069   authority     = &lt;authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>>
    1070   fragment      = &lt;fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>>
    1071   path-absolute = &lt;abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
    1072   port          = &lt;port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
    1073   query         = &lt;query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>>
    1074   relativeURI   = &lt;relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>>
    1075   uri-host      = &lt;host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
     1087  <x:ref>absoluteURI</x:ref>   = &lt;absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
     1088  <x:ref>authority</x:ref>     = &lt;authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>>
     1089  <x:ref>fragment</x:ref>      = &lt;fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>>
     1090  <x:ref>path-absolute</x:ref> = &lt;abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>
     1091  <x:ref>port</x:ref>          = &lt;port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
     1092  <x:ref>query</x:ref>         = &lt;query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>>
     1093  <x:ref>relativeURI</x:ref>   = &lt;relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>>
     1094  <x:ref>uri-host</x:ref>      = &lt;host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>
    10761095</artwork></figure>
    10771096<t>
     
    10951114
    10961115<section title="http URL" anchor="http.url">
     1116  <x:anchor-alias value="http-URL"/>
    10971117<t>
    10981118   The "http" scheme is used to locate network resources via the HTTP
     
    11011121</t>
    11021122<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="http-URL"/>
    1103   http-URL = "http:" "//" uri-host [ ":" port ]
    1104              [ path-absolute [ "?" query ]]
     1123  <x:ref>http-URL</x:ref> = "http:" "//" <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ]
     1124             [ <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ]]
    11051125</artwork></figure>
    11061126<t>
     
    11491169<section title="Date/Time Formats" anchor="date.time.formats">
    11501170<section title="Full Date" anchor="full.date">
     1171  <x:anchor-alias value="HTTP-date"/>
     1172  <x:anchor-alias value="rfc1123-date"/>
     1173  <x:anchor-alias value="rfc850-date"/>
     1174  <x:anchor-alias value="asctime-date"/>
     1175  <x:anchor-alias value="date1"/>
     1176  <x:anchor-alias value="date2"/>
     1177  <x:anchor-alias value="date3"/>
     1178  <x:anchor-alias value="rfc1123-date"/>
     1179  <x:anchor-alias value="time"/>
     1180  <x:anchor-alias value="wkday"/>
     1181  <x:anchor-alias value="weekday"/>
     1182  <x:anchor-alias value="month"/>
    11511183<t>
    11521184   HTTP applications have historically allowed three different formats
     
    11851217</t>
    11861218<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"/>
    1187   HTTP-date    = rfc1123-date | rfc850-date | asctime-date
    1188   rfc1123-date = wkday "," SP date1 SP time SP "GMT"
    1189   rfc850-date  = weekday "," SP date2 SP time SP "GMT"
    1190   asctime-date = wkday SP date3 SP time SP 4DIGIT
    1191   date1        = 2DIGIT SP month SP 4DIGIT
     1219  <x:ref>HTTP-date</x:ref>    = <x:ref>rfc1123-date</x:ref> | <x:ref>rfc850-date</x:ref> | <x:ref>asctime-date</x:ref>
     1220  <x:ref>rfc1123-date</x:ref> = <x:ref>wkday</x:ref> "," <x:ref>SP</x:ref> date1 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT"
     1221  <x:ref>rfc850-date</x:ref>  = <x:ref>weekday</x:ref> "," <x:ref>SP</x:ref> date2 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT"
     1222  <x:ref>asctime-date</x:ref> = <x:ref>wkday</x:ref> <x:ref>SP</x:ref> <x:ref>date3</x:ref> <x:ref>SP</x:ref> <x:ref>time</x:ref> <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref>
     1223  <x:ref>date1</x:ref>        = 2<x:ref>DIGIT</x:ref> <x:ref>SP</x:ref> <x:ref>month</x:ref> <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref>
    11921224                 ; day month year (e.g., 02 Jun 1982)
    1193   date2        = 2DIGIT "-" month "-" 2DIGIT
     1225  <x:ref>date2</x:ref>        = 2<x:ref>DIGIT</x:ref> "-" <x:ref>month</x:ref> "-" 2<x:ref>DIGIT</x:ref>
    11941226                 ; day-month-year (e.g., 02-Jun-82)
    1195   date3        = month SP ( 2DIGIT | ( SP 1DIGIT ))
     1227  <x:ref>date3</x:ref>        = <x:ref>month</x:ref> <x:ref>SP</x:ref> ( 2<x:ref>DIGIT</x:ref> | ( <x:ref>SP</x:ref> 1<x:ref>DIGIT</x:ref> ))
    11961228                 ; month day (e.g., Jun  2)
    1197   time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT
     1229  <x:ref>time</x:ref>         = 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref>
    11981230                 ; 00:00:00 - 23:59:59
    1199   wkday        = "Mon" | "Tue" | "Wed"
     1231  <x:ref>wkday</x:ref>        = "Mon" | "Tue" | "Wed"
    12001232               | "Thu" | "Fri" | "Sat" | "Sun"
    1201   weekday      = "Monday" | "Tuesday" | "Wednesday"
     1233  <x:ref>weekday</x:ref>      = "Monday" | "Tuesday" | "Wednesday"
    12021234               | "Thursday" | "Friday" | "Saturday" | "Sunday"
    1203   month        = "Jan" | "Feb" | "Mar" | "Apr"
     1235  <x:ref>month</x:ref>        = "Jan" | "Feb" | "Mar" | "Apr"
    12041236               | "May" | "Jun" | "Jul" | "Aug"
    12051237               | "Sep" | "Oct" | "Nov" | "Dec"
     
    12151247
    12161248<section title="Transfer Codings" anchor="transfer.codings">
     1249  <x:anchor-alias value="parameter"/>
     1250  <x:anchor-alias value="transfer-coding"/>
     1251  <x:anchor-alias value="transfer-extension"/>
    12171252<t>
    12181253   Transfer-coding values are used to indicate an encoding
     
    12231258</t>
    12241259<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="transfer-coding"/><iref primary="true" item="Grammar" subitem="transfer-extension"/>
    1225   transfer-coding         = "chunked" | transfer-extension
    1226   transfer-extension      = token *( ";" parameter )
    1227 </artwork></figure>
    1228 <t>
     1260  <x:ref>transfer-coding</x:ref>         = "chunked" | <x:ref>transfer-extension</x:ref>
     1261  <x:ref>transfer-extension</x:ref>      = <x:ref>token</x:ref> *( ";" <x:ref>parameter</x:ref> )
     1262</artwork></figure>
     1263<t anchor="rule.parameter">
     1264  <x:anchor-alias value="attribute"/>
     1265  <x:anchor-alias value="parameter"/>
     1266  <x:anchor-alias value="value"/>
    12291267   Parameters are in  the form of attribute/value pairs.
    12301268</t>
    12311269<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"/>
    1232   parameter               = attribute "=" value
    1233   attribute               = token
    1234   value                   = token | quoted-string
     1270  <x:ref>parameter</x:ref>               = <x:ref>attribute</x:ref> "=" <x:ref>value</x:ref>
     1271  <x:ref>attribute</x:ref>               = <x:ref>token</x:ref>
     1272  <x:ref>value</x:ref>                   = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref>
    12351273</artwork></figure>
    12361274<t>
     
    12751313
    12761314<section title="Chunked Transfer Coding" anchor="chunked.transfer.encoding">
     1315  <x:anchor-alias value="chunk"/>
     1316  <x:anchor-alias value="Chunked-Body"/>
     1317  <x:anchor-alias value="chunk-data"/>
     1318  <x:anchor-alias value="chunk-extension"/>
     1319  <x:anchor-alias value="chunk-ext-name"/>
     1320  <x:anchor-alias value="chunk-ext-val"/>
     1321  <x:anchor-alias value="chunk-size"/>
     1322  <x:anchor-alias value="last-chunk"/>
     1323  <x:anchor-alias value="trailer-part"/>
    12771324<t>
    12781325   The chunked encoding modifies the body of a message in order to
     
    12841331</t>
    12851332<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Chunked-Body"/><iref primary="true" item="Grammar" subitem="chunk"/><iref primary="true" item="Grammar" subitem="chunk-size"/><iref primary="true" item="Grammar" subitem="last-chunk"/><iref primary="true" item="Grammar" subitem="chunk-extension"/><iref primary="true" item="Grammar" subitem="chunk-ext-name"/><iref primary="true" item="Grammar" subitem="chunk-ext-val"/><iref primary="true" item="Grammar" subitem="chunk-data"/><iref primary="true" item="Grammar" subitem="trailer-part"/>
    1286   Chunked-Body   = *chunk
    1287                    last-chunk
    1288                    trailer-part
    1289                    CRLF
     1333  <x:ref>Chunked-Body</x:ref>   = *<x:ref>chunk</x:ref>
     1334                   <x:ref>last-chunk</x:ref>
     1335                   <x:ref>trailer-part</x:ref>
     1336                   <x:ref>CRLF</x:ref>
    12901337 
    1291   chunk          = chunk-size [ chunk-extension ] CRLF
    1292                    chunk-data CRLF
    1293   chunk-size     = 1*HEX
    1294   last-chunk     = 1*("0") [ chunk-extension ] CRLF
     1338  <x:ref>chunk</x:ref>          = <x:ref>chunk-size</x:ref> [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref>
     1339                   <x:ref>chunk-data</x:ref> <x:ref>CRLF</x:ref>
     1340  <x:ref>chunk-size</x:ref>     = 1*<x:ref>HEX</x:ref>
     1341  <x:ref>last-chunk</x:ref>     = 1*("0") [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref>
    12951342 
    1296   chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
    1297   chunk-ext-name = token
    1298   chunk-ext-val  = token | quoted-string
    1299   chunk-data     = 1*OCTET ; a sequence of chunk-size octets
    1300   trailer-part   = *(entity-header CRLF)
     1343  <x:ref>chunk-extension</x:ref>= *( ";" <x:ref>chunk-ext-name</x:ref> [ "=" <x:ref>chunk-ext-val</x:ref> ] )
     1344  <x:ref>chunk-ext-name</x:ref> = <x:ref>token</x:ref>
     1345  <x:ref>chunk-ext-val</x:ref>  = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref>
     1346  <x:ref>chunk-data</x:ref>     = 1*<x:ref>OCTET</x:ref> ; a sequence of chunk-size octets
     1347  <x:ref>trailer-part</x:ref>   = *(<x:ref>entity-header</x:ref> <x:ref>CRLF</x:ref>)
    13011348</artwork></figure>
    13021349<t>
     
    13651412
    13661413<section title="Product Tokens" anchor="product.tokens">
     1414  <x:anchor-alias value="product"/>
     1415  <x:anchor-alias value="product-version"/>
    13671416<t>
    13681417   Product tokens are used to allow communicating applications to
     
    13741423</t>
    13751424<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="product"/><iref primary="true" item="Grammar" subitem="product-version"/>
    1376   product         = token ["/" product-version]
    1377   product-version = token
     1425  <x:ref>product</x:ref>         = <x:ref>token</x:ref> ["/" <x:ref>product-version</x:ref>]
     1426  <x:ref>product-version</x:ref> = <x:ref>token</x:ref>
    13781427</artwork></figure>
    13791428<t>
     
    13991448
    14001449<section title="Message Types" anchor="message.types">
     1450  <x:anchor-alias value="generic-message"/>
     1451  <x:anchor-alias value="HTTP-message"/>
     1452  <x:anchor-alias value="start-line"/>
    14011453<t>
    14021454   HTTP messages consist of requests from client to server and responses
     
    14041456</t>
    14051457<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-message"/>
    1406   HTTP-message   = Request | Response     ; HTTP/1.1 messages
     1458  <x:ref>HTTP-message</x:ref>   = <x:ref>Request</x:ref> | <x:ref>Response</x:ref>     ; HTTP/1.1 messages
    14071459</artwork></figure>
    14081460<t>
     
    14151467</t>
    14161468<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="generic-message"/><iref primary="true" item="Grammar" subitem="start-line"/>
    1417   generic-message = start-line
    1418                     *(message-header CRLF)
    1419                     CRLF
    1420                     [ message-body ]
    1421   start-line      = Request-Line | Status-Line
     1469  <x:ref>generic-message</x:ref> = <x:ref>start-line</x:ref>
     1470                    *(<x:ref>message-header</x:ref> <x:ref>CRLF</x:ref>)
     1471                    <x:ref>CRLF</x:ref>
     1472                    [ <x:ref>message-body</x:ref> ]
     1473  <x:ref>start-line</x:ref>      = <x:ref>Request-Line</x:ref> | <x:ref>Status-Line</x:ref>
    14221474</artwork></figure>
    14231475<t>
     
    14361488
    14371489<section title="Message Headers" anchor="message.headers">
     1490  <x:anchor-alias value="field-content"/>
     1491  <x:anchor-alias value="field-name"/>
     1492  <x:anchor-alias value="field-value"/>
     1493  <x:anchor-alias value="message-header"/>
    14381494<t>
    14391495   HTTP header fields, which include general-header (<xref target="general.header.fields"/>),
     
    14511507</t>
    14521508<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"/>
    1453   message-header = field-name ":" [ field-value ]
    1454   field-name     = token
    1455   field-value    = *( field-content | LWS )
    1456   field-content  = &lt;field content&gt;
    1457                    ; the OCTETs making up the field-value
    1458                    ; and consisting of either *TEXT or combinations
    1459                    ; of token, separators, and quoted-string
     1509  <x:ref>message-header</x:ref> = <x:ref>field-name</x:ref> ":" [ <x:ref>field-value</x:ref> ]
     1510  <x:ref>field-name</x:ref>     = <x:ref>token</x:ref>
     1511  <x:ref>field-value</x:ref>    = *( <x:ref>field-content</x:ref> | <x:ref>LWS</x:ref> )
     1512  <x:ref>field-content</x:ref>  = &lt;field content&gt;
     1513                   ; the <x:ref>OCTET</x:ref>s making up the field-value
     1514                   ; and consisting of either *<x:ref>TEXT</x:ref> or combinations
     1515                   ; of <x:ref>token</x:ref>, <x:ref>separators</x:ref>, and <x:ref>quoted-string</x:ref>
    14601516</artwork></figure>
    14611517<t>
     
    14901546
    14911547<section title="Message Body" anchor="message.body">
     1548  <x:anchor-alias value="message-body"/>
    14921549<t>
    14931550   The message-body (if any) of an HTTP message is used to carry the
     
    14971554</t>
    14981555<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-body"/>
    1499   message-body = entity-body
    1500                | &lt;entity-body encoded as per Transfer-Encoding&gt;
     1556  <x:ref>message-body</x:ref> = <x:ref>entity-body</x:ref>
     1557               | &lt;entity-body encoded as per <x:ref>Transfer-Encoding</x:ref>&gt;
    15011558</artwork></figure>
    15021559<t>
     
    16211678
    16221679<section title="General Header Fields" anchor="general.header.fields">
     1680  <x:anchor-alias value="general-header"/>
    16231681<t>
    16241682   There are a few header fields which have general applicability for
     
    16281686</t>
    16291687<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="general-header"/>
    1630   general-header = Cache-Control            ; &header-cache-control;
    1631                  | Connection               ; <xref target="header.connection"/>
    1632                  | Date                     ; <xref target="header.date"/>
    1633                  | Pragma                   ; &header-pragma;
    1634                  | Trailer                  ; <xref target="header.trailer"/>
    1635                  | Transfer-Encoding        ; <xref target="header.transfer-encoding"/>
    1636                  | Upgrade                  ; <xref target="header.upgrade"/>
    1637                  | Via                      ; <xref target="header.via"/>
    1638                  | Warning                  ; &header-warning;
     1688  <x:ref>general-header</x:ref> = <x:ref>Cache-Control</x:ref>            ; &header-cache-control;
     1689                 | <x:ref>Connection</x:ref>               ; <xref target="header.connection"/>
     1690                 | <x:ref>Date</x:ref>                     ; <xref target="header.date"/>
     1691                 | <x:ref>Pragma</x:ref>                   ; &header-pragma;
     1692                 | <x:ref>Trailer</x:ref>                  ; <xref target="header.trailer"/>
     1693                 | <x:ref>Transfer-Encoding</x:ref>        ; <xref target="header.transfer-encoding"/>
     1694                 | <x:ref>Upgrade</x:ref>                  ; <xref target="header.upgrade"/>
     1695                 | <x:ref>Via</x:ref>                      ; <xref target="header.via"/>
     1696                 | <x:ref>Warning</x:ref>                  ; &header-warning;
    16391697</artwork></figure>
    16401698<t>
     
    16501708
    16511709<section title="Request" anchor="request">
     1710  <x:anchor-alias value="Request"/>
    16521711<t>
    16531712   A request message from a client to a server includes, within the
     
    16571716<!--                 Host                      ; should be moved here eventually -->
    16581717<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request"/>
    1659   Request       = Request-Line              ; <xref target="request-line"/>
    1660                   *(( general-header        ; <xref target="general.header.fields"/>
    1661                    | request-header         ; &request-header-fields;
    1662                    | entity-header ) CRLF)  ; &entity-header-fields;
    1663                   CRLF
    1664                   [ message-body ]          ; <xref target="message.body"/>
     1718  <x:ref>Request</x:ref>       = <x:ref>Request-Line</x:ref>              ; <xref target="request-line"/>
     1719                  *(( <x:ref>general-header</x:ref>        ; <xref target="general.header.fields"/>
     1720                   | <x:ref>request-header</x:ref>         ; &request-header-fields;
     1721                   | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>)  ; &entity-header-fields;
     1722                  <x:ref>CRLF</x:ref>
     1723                  [ <x:ref>message-body</x:ref> ]          ; <xref target="message.body"/>
    16651724</artwork></figure>
    16661725
    16671726<section title="Request-Line" anchor="request-line">
     1727  <x:anchor-alias value="Request-Line"/>
    16681728<t>
    16691729   The Request-Line begins with a method token, followed by the
     
    16731733</t>
    16741734<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-Line"/>
    1675   Request-Line   = Method SP Request-URI SP HTTP-Version CRLF
     1735  <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>
    16761736</artwork></figure>
    16771737
    16781738<section title="Method" anchor="method">
     1739  <x:anchor-alias value="Method"/>
    16791740<t>
    16801741   The Method  token indicates the method to be performed on the
     
    16821743</t>
    16831744<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/><iref primary="true" item="Grammar" subitem="extension-method"/>
    1684   Method         = token
     1745  <x:ref>Method</x:ref>         = <x:ref>token</x:ref>
    16851746</artwork></figure>
    16861747</section>
    16871748
    16881749<section title="Request-URI" anchor="request-uri">
     1750  <x:anchor-alias value="Request-URI"/>
    16891751<t>
    16901752   The Request-URI is a Uniform Resource Identifier (<xref target="uri"/>) and
     
    16921754</t>
    16931755<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-URI"/>
    1694   Request-URI    = "*"
    1695                  | absoluteURI
    1696                  | ( path-absolute [ "?" query ] )
    1697                  | authority
     1756  <x:ref>Request-URI</x:ref>    = "*"
     1757                 | <x:ref>absoluteURI</x:ref>
     1758                 | ( <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ] )
     1759                 | <x:ref>authority</x:ref>
    16981760</artwork></figure>
    16991761<t>
     
    18121874
    18131875<section title="Response" anchor="response">
     1876  <x:anchor-alias value="Response"/>
    18141877<t>
    18151878   After receiving and interpreting a request message, a server responds
     
    18171880</t>
    18181881<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Response"/>
    1819   Response      = Status-Line               ; <xref target="status-line"/>
    1820                   *(( general-header        ; <xref target="general.header.fields"/>
    1821                    | response-header        ; &response-header-fields;
    1822                    | entity-header ) CRLF)  ; &entity-header-fields;
    1823                   CRLF
    1824                   [ message-body ]          ; <xref target="message.body"/>
     1882  <x:ref>Response</x:ref>      = <x:ref>Status-Line</x:ref>               ; <xref target="status-line"/>
     1883                  *(( <x:ref>general-header</x:ref>        ; <xref target="general.header.fields"/>
     1884                   | <x:ref>response-header</x:ref>        ; &response-header-fields;
     1885                   | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>)  ; &entity-header-fields;
     1886                  <x:ref>CRLF</x:ref>
     1887                  [ <x:ref>message-body</x:ref> ]          ; <xref target="message.body"/>
    18251888</artwork></figure>
    18261889
    18271890<section title="Status-Line" anchor="status-line">
     1891  <x:anchor-alias value="Status-Line"/>
    18281892<t>
    18291893   The first line of a Response message is the Status-Line, consisting
     
    18331897</t>
    18341898<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Line"/>
    1835   Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
     1899  <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>
    18361900</artwork></figure>
    18371901
    18381902<section title="Status Code and Reason Phrase" anchor="status.code.and.reason.phrase">
     1903  <x:anchor-alias value="Reason-Phrase"/>
     1904  <x:anchor-alias value="Status-Code"/>
    18391905<t>
    18401906   The Status-Code element is a 3-digit integer result code of the
     
    18731939</t>
    18741940<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"/>
    1875   Status-Code    = 3DIGIT
    1876   Reason-Phrase  = *&lt;TEXT, excluding CR, LF&gt;
     1941  <x:ref>Status-Code</x:ref>    = 3<x:ref>DIGIT</x:ref>
     1942  <x:ref>Reason-Phrase</x:ref>  = *&lt;<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>&gt;
    18771943</artwork></figure>
    18781944</section>
     
    22942360  <iref primary="true" item="Connection header" x:for-anchor=""/>
    22952361  <iref primary="true" item="Headers" subitem="Connection" x:for-anchor=""/>
     2362  <x:anchor-alias value="Connection"/>
     2363  <x:anchor-alias value="connection-token"/>
    22962364<t>
    22972365   The Connection general-header field allows the sender to specify
     
    23032371</t>
    23042372<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="connection-token"/>
    2305   Connection = "Connection" ":" 1#(connection-token)
    2306   connection-token  = token
     2373  <x:ref>Connection</x:ref> = "Connection" ":" 1#(<x:ref>connection-token</x:ref>)
     2374  <x:ref>connection-token</x:ref>  = <x:ref>token</x:ref>
    23072375</artwork></figure>
    23082376<t>
     
    23542422  <iref primary="true" item="Content-Length header" x:for-anchor=""/>
    23552423  <iref primary="true" item="Headers" subitem="Content-Length" x:for-anchor=""/>
     2424  <x:anchor-alias value="Content-Length"/>
    23562425<t>
    23572426   The Content-Length entity-header field indicates the size of the
     
    23612430</t>
    23622431<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Length"/>
    2363   Content-Length    = "Content-Length" ":" 1*DIGIT
     2432  <x:ref>Content-Length</x:ref>    = "Content-Length" ":" 1*<x:ref>DIGIT</x:ref>
    23642433</artwork></figure>
    23652434<t>
     
    23912460  <iref primary="true" item="Date header" x:for-anchor=""/>
    23922461  <iref primary="true" item="Headers" subitem="Date" x:for-anchor=""/>
     2462  <x:anchor-alias value="Date"/>
    23932463<t>
    23942464   The Date general-header field represents the date and time at which
     
    23982468</t>
    23992469<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Date"/>
    2400   Date  = "Date" ":" HTTP-date
     2470  <x:ref>Date</x:ref>  = "Date" ":" <x:ref>HTTP-date</x:ref>
    24012471</artwork></figure>
    24022472<t>
     
    24672537  <iref primary="true" item="Host header" x:for-anchor=""/>
    24682538  <iref primary="true" item="Headers" subitem="Host" x:for-anchor=""/>
     2539  <x:anchor-alias value="Host"/>
    24692540<t>
    24702541   The Host request-header field specifies the Internet host and port
     
    24782549</t>
    24792550<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Host"/>
    2480   Host = "Host" ":" uri-host [ ":" port ] ; <xref target="http.url"/>
     2551  <x:ref>Host</x:ref> = "Host" ":" <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ; <xref target="http.url"/>
    24812552</artwork></figure>
    24822553<t>
     
    25112582  <iref primary="true" item="TE header" x:for-anchor=""/>
    25122583  <iref primary="true" item="Headers" subitem="TE" x:for-anchor=""/>
     2584  <x:anchor-alias value="TE"/>
     2585  <x:anchor-alias value="t-codings"/>
    25132586<t>
    25142587   The TE request-header field indicates what extension transfer-codings
     
    25202593</t>
    25212594<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TE"/><iref primary="true" item="Grammar" subitem="t-codings"/>
    2522   TE        = "TE" ":" #( t-codings )
    2523   t-codings = "trailers" | ( transfer-extension [ accept-params ] )
     2595  <x:ref>TE</x:ref>        = "TE" ":" #( <x:ref>t-codings</x:ref> )
     2596  <x:ref>t-codings</x:ref> = "trailers" | ( <x:ref>transfer-extension</x:ref> [ <x:ref>accept-params</x:ref> ] )
    25242597</artwork></figure>
    25252598<t>
     
    25852658  <iref primary="true" item="Trailer header" x:for-anchor=""/>
    25862659  <iref primary="true" item="Headers" subitem="Trailer" x:for-anchor=""/>
     2660  <x:anchor-alias value="Trailer"/>
    25872661<t>
    25882662   The Trailer general field value indicates that the given set of
     
    25912665</t>
    25922666<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Trailer"/>
    2593   Trailer  = "Trailer" ":" 1#field-name
     2667  <x:ref>Trailer</x:ref>  = "Trailer" ":" 1#<x:ref>field-name</x:ref>
    25942668</artwork></figure>
    25952669<t>
     
    26182692  <iref primary="true" item="Transfer-Encoding header" x:for-anchor=""/>
    26192693  <iref primary="true" item="Headers" subitem="Transfer-Encoding" x:for-anchor=""/>
     2694  <x:anchor-alias value="Transfer-Encoding"/>
    26202695<t>
    26212696   The Transfer-Encoding general-header field indicates what (if any)
     
    26262701</t>
    26272702<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Transfer-Encoding"/>
    2628   Transfer-Encoding       = "Transfer-Encoding" ":" 1#transfer-coding
     2703  <x:ref>Transfer-Encoding</x:ref>       = "Transfer-Encoding" ":" 1#<x:ref>transfer-coding</x:ref>
    26292704</artwork></figure>
    26302705<t>
     
    26492724  <iref primary="true" item="Upgrade header" x:for-anchor=""/>
    26502725  <iref primary="true" item="Headers" subitem="Upgrade" x:for-anchor=""/>
     2726  <x:anchor-alias value="Upgrade"/>
    26512727<t>
    26522728   The Upgrade general-header allows the client to specify what
     
    26572733</t>
    26582734<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/>
    2659   Upgrade        = "Upgrade" ":" 1#product
     2735  <x:ref>Upgrade</x:ref>        = "Upgrade" ":" 1#<x:ref>product</x:ref>
    26602736</artwork></figure>
    26612737<t>
     
    27122788  <iref primary="true" item="Via header" x:for-anchor=""/>
    27132789  <iref primary="true" item="Headers" subitem="Via" x:for-anchor=""/>
     2790  <x:anchor-alias value="protocol-name"/>
     2791  <x:anchor-alias value="protocol-version"/>
     2792  <x:anchor-alias value="pseudonym"/>
     2793  <x:anchor-alias value="received-by"/>
     2794  <x:anchor-alias value="received-protocol"/>
     2795  <x:anchor-alias value="Via"/>
    27142796<t>
    27152797   The Via general-header field &MUST; be used by gateways and proxies to
     
    27222804</t>
    27232805<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"/>
    2724   Via =  "Via" ":" 1#( received-protocol received-by [ comment ] )
    2725   received-protocol = [ protocol-name "/" ] protocol-version
    2726   protocol-name     = token
    2727   protocol-version  = token
    2728   received-by       = ( uri-host [ ":" port ] ) | pseudonym
    2729   pseudonym         = token
     2806  <x:ref>Via</x:ref> =  "Via" ":" 1#( <x:ref>received-protocol</x:ref> <x:ref>received-by</x:ref> [ <x:ref>comment</x:ref> ] )
     2807  <x:ref>received-protocol</x:ref> = [ <x:ref>protocol-name</x:ref> "/" ] <x:ref>protocol-version</x:ref>
     2808  <x:ref>protocol-name</x:ref>     = <x:ref>token</x:ref>
     2809  <x:ref>protocol-version</x:ref>  = <x:ref>token</x:ref>
     2810  <x:ref>received-by</x:ref>       = ( <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ) | <x:ref>pseudonym</x:ref>
     2811  <x:ref>pseudonym</x:ref>         = <x:ref>token</x:ref>
    27302812</artwork></figure>
    27312813<t>
Note: See TracChangeset for help on using the changeset viewer.