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/p2-semantics.xml

    r228 r229  
    291291
    292292<section title="Notational Conventions and Generic Grammar" anchor="notation">
     293  <x:anchor-alias value="comment"/>
     294  <x:anchor-alias value="DIGIT"/>
     295  <x:anchor-alias value="quoted-string"/>
     296  <x:anchor-alias value="token"/>
    293297<t>
    294298  This specification uses the ABNF syntax defined in &notation-abnf; and
     
    298302</t>
    299303<figure><artwork type="abnf2616">
    300   DIGIT         = &lt;DIGIT, defined in &basic-rules;&gt;
     304  <x:ref>DIGIT</x:ref>         = &lt;DIGIT, defined in &basic-rules;&gt;
    301305</artwork></figure>
    302306<figure><artwork type="abnf2616">
    303   comment       = &lt;comment, defined in &basic-rules;&gt;
    304   quoted-string = &lt;quoted-string, defined in &basic-rules;&gt;
    305   token         = &lt;token, defined in &basic-rules;&gt;
     307  <x:anchor-alias value="Accept"/>
     308  <x:ref>comment</x:ref>       = &lt;comment, defined in &basic-rules;&gt;
     309  <x:ref>quoted-string</x:ref> = &lt;quoted-string, defined in &basic-rules;&gt;
     310  <x:ref>token</x:ref>         = &lt;token, defined in &basic-rules;&gt;
    306311</artwork></figure>
    307312<t anchor="abnf.dependencies">
     313  <x:anchor-alias value="absoluteURI"/>
     314  <x:anchor-alias value="Accept"/>
     315  <x:anchor-alias value="Accept-Charset"/>
     316  <x:anchor-alias value="Accept-Encoding"/>
     317  <x:anchor-alias value="Accept-Language"/>
     318  <x:anchor-alias value="Accept-Ranges"/>
     319  <x:anchor-alias value="Age"/>
     320  <x:anchor-alias value="Authorization"/>
     321  <x:anchor-alias value="ETag"/>
     322  <x:anchor-alias value="fragment"/>
     323  <x:anchor-alias value="Host"/>
     324  <x:anchor-alias value="HTTP-date"/>
     325  <x:anchor-alias value="If-Match"/>
     326  <x:anchor-alias value="If-Modified-Since"/>
     327  <x:anchor-alias value="If-None-Match"/>
     328  <x:anchor-alias value="If-Range"/>
     329  <x:anchor-alias value="If-Unmodified-Since"/>
     330  <x:anchor-alias value="product"/>
     331  <x:anchor-alias value="Proxy-Authenticate"/>
     332  <x:anchor-alias value="Proxy-Authorization"/>
     333  <x:anchor-alias value="Range"/>
     334  <x:anchor-alias value="relativeURI"/>
     335  <x:anchor-alias value="TE"/>
     336  <x:anchor-alias value="Vary"/>
     337  <x:anchor-alias value="WWW-Authenticate"/>
    308338  The ABNF rules below are defined in other parts:
    309339</t>
    310340<figure><!--Part1--><artwork type="abnf2616">
    311   absoluteURI   = &lt;absoluteURI, defined in &general-syntax;&gt;
    312   fragment      = &lt;fragment, defined in &general-syntax;&gt;
    313   Host          = &lt;Host, defined in &header-host;&gt;
    314   HTTP-date     = &lt;HTTP-date, defined in &full-date;&gt;
    315   product       = &lt;product, defined in &product-tokens;&gt;
    316   relativeURI   = &lt;relativeURI, defined in &general-syntax;&gt;
    317   TE            = &lt;TE, defined in &header-te;&gt;
     341  <x:ref>absoluteURI</x:ref>   = &lt;absoluteURI, defined in &general-syntax;&gt;
     342  <x:ref>fragment</x:ref>      = &lt;fragment, defined in &general-syntax;&gt;
     343  <x:ref>Host</x:ref>          = &lt;Host, defined in &header-host;&gt;
     344  <x:ref>HTTP-date</x:ref>     = &lt;HTTP-date, defined in &full-date;&gt;
     345  <x:ref>product</x:ref>       = &lt;product, defined in &product-tokens;&gt;
     346  <x:ref>relativeURI</x:ref>   = &lt;relativeURI, defined in &general-syntax;&gt;
     347  <x:ref>TE</x:ref>            = &lt;TE, defined in &header-te;&gt;
    318348</artwork></figure>
    319349<figure><!--Part3--><artwork type="abnf2616">
    320   Accept        = &lt;Accept, defined in &header-accept;&gt;
    321   Accept-Charset =
     350  <x:ref>Accept</x:ref>        = &lt;Accept, defined in &header-accept;&gt;
     351  <x:ref>Accept-Charset</x:ref> =
    322352             &lt;Accept-Charset, defined in &header-accept-charset;&gt;
    323   Accept-Encoding =
     353  <x:ref>Accept-Encoding</x:ref> =
    324354             &lt;Accept-Encoding, defined in &header-accept-encoding;&gt;
    325   Accept-Language =
     355  <x:ref>Accept-Language</x:ref> =
    326356             &lt;Accept-Language, defined in &header-accept-language;&gt;
    327357</artwork></figure>
    328358<figure><!--Part4--><artwork type="abnf2616">
    329   ETag          = &lt;ETag, defined in &header-etag;&gt;
    330   If-Match      = &lt;If-Match, defined in &header-if-match;&gt;
    331   If-Modified-Since =
     359  <x:ref>ETag</x:ref>          = &lt;ETag, defined in &header-etag;&gt;
     360  <x:ref>If-Match</x:ref>      = &lt;If-Match, defined in &header-if-match;&gt;
     361  <x:ref>If-Modified-Since</x:ref> =
    332362             &lt;If-Modified-Since, defined in &header-if-modified-since;&gt;
    333   If-None-Match = &lt;If-None-Match, defined in &header-if-none-match;&gt;
    334   If-Unmodified-Since =
     363  <x:ref>If-None-Match</x:ref> = &lt;If-None-Match, defined in &header-if-none-match;&gt;
     364  <x:ref>If-Unmodified-Since</x:ref> =
    335365             &lt;If-Unmodified-Since, defined in &header-if-unmodified-since;&gt;
    336366</artwork></figure>
    337367<figure><!--Part5--><artwork type="abnf2616">
    338   Accept-Ranges = &lt;Accept-Ranges, defined in &header-accept-ranges;&gt;
    339   If-Range      = &lt;If-Range, defined in &header-if-range;&gt;
    340   Range         = &lt;Range, defined in &header-range;&gt;
     368  <x:ref>Accept-Ranges</x:ref> = &lt;Accept-Ranges, defined in &header-accept-ranges;&gt;
     369  <x:ref>If-Range</x:ref>      = &lt;If-Range, defined in &header-if-range;&gt;
     370  <x:ref>Range</x:ref>         = &lt;Range, defined in &header-range;&gt;
    341371</artwork></figure>
    342372<figure><!--Part6--><artwork type="abnf2616">
    343   Age           = &lt;Age, defined in &header-age;&gt;
    344   Vary          = &lt;Vary, defined in &header-vary;&gt;
     373  <x:ref>Age</x:ref>           = &lt;Age, defined in &header-age;&gt;
     374  <x:ref>Vary</x:ref>          = &lt;Vary, defined in &header-vary;&gt;
    345375</artwork><!--Part7--></figure>
    346376<figure><artwork type="abnf2616">
    347   Authorization = &lt;Authorization, defined in &header-authorization;&gt;
    348   Proxy-Authenticate =
     377  <x:ref>Authorization</x:ref> = &lt;Authorization, defined in &header-authorization;&gt;
     378  <x:ref>Proxy-Authenticate</x:ref> =
    349379             &lt;Proxy-Authenticate, defined in &header-proxy-authenticate;&gt;
    350   Proxy-Authorization =
     380  <x:ref>Proxy-Authorization</x:ref> =
    351381             &lt;Proxy-Authorization, defined in &header-proxy-authorization;&gt;
    352   WWW-Authenticate =
     382  <x:ref>WWW-Authenticate</x:ref> =
    353383             &lt;WWW-Authenticate, defined in &header-www-authenticate;&gt;
    354384</artwork></figure>
     
    356386
    357387<section title="Method" anchor="method">
     388  <x:anchor-alias value="Method"/>
     389  <x:anchor-alias value="extension-method"/>
    358390<t>
    359391   The Method  token indicates the method to be performed on the
     
    361393</t>
    362394<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/><iref primary="true" item="Grammar" subitem="extension-method"/>
    363   Method         = "OPTIONS"                ; <xref target="OPTIONS"/>
     395  <x:ref>Method</x:ref>         = "OPTIONS"                ; <xref target="OPTIONS"/>
    364396                 | "GET"                    ; <xref target="GET"/>
    365397                 | "HEAD"                   ; <xref target="HEAD"/>
     
    369401                 | "TRACE"                  ; <xref target="TRACE"/>
    370402                 | "CONNECT"                ; <xref target="CONNECT"/>
    371                  | extension-method
    372   extension-method = token
     403                 | <x:ref>extension-method</x:ref>
     404  <x:ref>extension-method</x:ref> = <x:ref>token</x:ref>
    373405</artwork></figure>
    374406<t>
     
    389421
    390422<section title="Request Header Fields" anchor="request.header.fields">
     423  <x:anchor-alias value="extension-code"/>
     424  <x:anchor-alias value="request-header"/>
    391425<t>
    392426   The request-header fields allow the client to pass additional
     
    397431</t>
    398432<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-header"/>
    399   request-header = Accept                   ; &header-accept;
    400                  | Accept-Charset           ; &header-accept-charset;
    401                  | Accept-Encoding          ; &header-accept-encoding;
    402                  | Accept-Language          ; &header-accept-language;
    403                  | Authorization            ; &header-authorization;
    404                  | Expect                   ; <xref target="header.expect"/>
    405                  | From                     ; <xref target="header.from"/>
    406                  | Host                     ; &header-host;
    407                  | If-Match                 ; &header-if-match;
    408                  | If-Modified-Since        ; &header-if-modified-since;
    409                  | If-None-Match            ; &header-if-none-match;
    410                  | If-Range                 ; &header-if-range;
    411                  | If-Unmodified-Since      ; &header-if-unmodified-since;
    412                  | Max-Forwards             ; <xref target="header.max-forwards"/>
    413                  | Proxy-Authorization      ; &header-proxy-authorization;
    414                  | Range                    ; &header-range;
    415                  | Referer                  ; <xref target="header.referer"/>
    416                  | TE                       ; &header-te;
    417                  | User-Agent               ; <xref target="header.user-agent"/>
     433  <x:ref>request-header</x:ref> = <x:ref>Accept</x:ref>                   ; &header-accept;
     434                 | <x:ref>Accept-Charset</x:ref>           ; &header-accept-charset;
     435                 | <x:ref>Accept-Encoding</x:ref>          ; &header-accept-encoding;
     436                 | <x:ref>Accept-Language</x:ref>          ; &header-accept-language;
     437                 | <x:ref>Authorization</x:ref>            ; &header-authorization;
     438                 | <x:ref>Expect</x:ref>                   ; <xref target="header.expect"/>
     439                 | <x:ref>From</x:ref>                     ; <xref target="header.from"/>
     440                 | <x:ref>Host</x:ref>                     ; &header-host;
     441                 | <x:ref>If-Match</x:ref>                 ; &header-if-match;
     442                 | <x:ref>If-Modified-Since</x:ref>        ; &header-if-modified-since;
     443                 | <x:ref>If-None-Match</x:ref>            ; &header-if-none-match;
     444                 | <x:ref>If-Range</x:ref>                 ; &header-if-range;
     445                 | <x:ref>If-Unmodified-Since</x:ref>      ; &header-if-unmodified-since;
     446                 | <x:ref>Max-Forwards</x:ref>             ; <xref target="header.max-forwards"/>
     447                 | <x:ref>Proxy-Authorization</x:ref>      ; &header-proxy-authorization;
     448                 | <x:ref>Range</x:ref>                    ; &header-range;
     449                 | <x:ref>Referer</x:ref>                  ; <xref target="header.referer"/>
     450                 | <x:ref>TE</x:ref>                       ; &header-te;
     451                 | <x:ref>User-Agent</x:ref>               ; <xref target="header.user-agent"/>
    418452</artwork></figure>
    419453<t>
     
    428462
    429463<section title="Status Code and Reason Phrase" anchor="status.code.and.reason.phrase">
     464  <x:anchor-alias value="Reason-Phrase"/>
     465  <x:anchor-alias value="Status-Code"/>
    430466<t>
    431467   The Status-Code element is a 3-digit integer result code of the
     
    445481</t>
    446482<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"/>
    447   Status-Code    =
     483  <x:ref>Status-Code</x:ref>    =
    448484         "100"  ; <xref target="status.100"/>: Continue
    449485       | "101"  ; <xref target="status.101"/>: Switching Protocols
     
    486522       | "504"  ; <xref target="status.504"/>: Gateway Time-out
    487523       | "505"  ; <xref target="status.505"/>: HTTP Version not supported
    488        | extension-code
    489 
    490   extension-code = 3DIGIT
    491   Reason-Phrase  = *&lt;TEXT, excluding CR, LF&gt;
     524       | <x:ref>extension-code</x:ref>
     525
     526  <x:ref>extension-code</x:ref> = 3<x:ref>DIGIT</x:ref>
     527  <x:ref>Reason-Phrase</x:ref>  = *&lt;<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>&gt;
    492528</artwork></figure>
    493529<t>
     
    509545
    510546<section title="Response Header Fields" anchor="response.header.fields">
     547  <x:anchor-alias value="response-header"/>
    511548<t>
    512549   The response-header fields allow the server to pass additional
     
    516553</t>
    517554<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="response-header"/>
    518   response-header = Accept-Ranges           ; &header-accept-ranges;
    519                   | Age                     ; &header-age;
    520                   | ETag                    ; &header-etag;
    521                   | Location                ; <xref target="header.location"/>
    522                   | Proxy-Authenticate      ; &header-proxy-authenticate;
    523                   | Retry-After             ; <xref target="header.retry-after"/>
    524                   | Server                  ; <xref target="header.server"/>
    525                   | Vary                    ; &header-vary;
    526                   | WWW-Authenticate        ; &header-www-authenticate;
     555  <x:ref>response-header</x:ref> = <x:ref>Accept-Ranges</x:ref>           ; &header-accept-ranges;
     556                  | <x:ref>Age</x:ref>                     ; &header-age;
     557                  | <x:ref>ETag</x:ref>                    ; &header-etag;
     558                  | <x:ref>Location</x:ref>                ; <xref target="header.location"/>
     559                  | <x:ref>Proxy-Authenticate</x:ref>      ; &header-proxy-authenticate;
     560                  | <x:ref>Retry-After</x:ref>             ; <xref target="header.retry-after"/>
     561                  | <x:ref>Server</x:ref>                  ; <xref target="header.server"/>
     562                  | <x:ref>Vary</x:ref>                    ; &header-vary;
     563                  | <x:ref>WWW-Authenticate</x:ref>        ; &header-www-authenticate;
    527564</artwork></figure>
    528565<t>
     
    16941731  <iref primary="true" item="Allow header" x:for-anchor=""/>
    16951732  <iref primary="true" item="Headers" subitem="Allow" x:for-anchor=""/>
     1733  <x:anchor-alias value="Allow"/>
    16961734<t>
    16971735      The Allow entity-header field lists the set of methods supported
     
    17021740</t>
    17031741<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Allow"/>
    1704   Allow   = "Allow" ":" #Method
     1742  <x:ref>Allow</x:ref>   = "Allow" ":" #<x:ref>Method</x:ref>
    17051743</artwork></figure>
    17061744<t>
     
    17331771  <iref primary="true" item="Expect header" x:for-anchor=""/>
    17341772  <iref primary="true" item="Headers" subitem="Expect" x:for-anchor=""/>
     1773  <x:anchor-alias value="Expect"/>
     1774  <x:anchor-alias value="expectation"/>
     1775  <x:anchor-alias value="expectation-extension"/>
     1776  <x:anchor-alias value="expect-params"/>
    17351777<t>
    17361778   The Expect request-header field is used to indicate that particular
     
    17381780</t>
    17391781<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Expect"/><iref primary="true" item="Grammar" subitem="expectation"/><iref primary="true" item="Grammar" subitem="expectation-extension"/><iref primary="true" item="Grammar" subitem="expect-params"/>
    1740   Expect       =  "Expect" ":" 1#expectation
     1782  <x:ref>Expect</x:ref>       =  "Expect" ":" 1#<x:ref>expectation</x:ref>
    17411783 
    1742   expectation  =  "100-continue" | expectation-extension
    1743   expectation-extension =  token [ "=" ( token | quoted-string )
    1744                            *expect-params ]
    1745   expect-params =  ";" token [ "=" ( token | quoted-string ) ]
     1784  <x:ref>expectation</x:ref>  =  "100-continue" | <x:ref>expectation-extension</x:ref>
     1785  <x:ref>expectation-extension</x:ref> =  <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> )
     1786                           *<x:ref>expect-params</x:ref> ]
     1787  <x:ref>expect-params</x:ref> =  ";" <x:ref>token</x:ref> [ "=" ( <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> ) ]
    17461788</artwork></figure>
    17471789<t>
     
    17831825  <iref primary="true" item="From header" x:for-anchor=""/>
    17841826  <iref primary="true" item="Headers" subitem="From" x:for-anchor=""/>
     1827  <x:anchor-alias value="From"/>
     1828  <x:anchor-alias value="mailbox"/>
    17851829<t>
    17861830   The From request-header field, if given, &SHOULD; contain an Internet
     
    17901834</t>
    17911835<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="From"/>
    1792   From    = "From" ":" mailbox
     1836  <x:ref>From</x:ref>    = "From" ":" <x:ref>mailbox</x:ref>
    17931837 
    1794   mailbox = &lt;mailbox, defined in <xref x:sec="3.4" x:fmt="," target="RFC2822"/>&gt;
     1838  <x:ref>mailbox</x:ref> = &lt;mailbox, defined in <xref x:sec="3.4" x:fmt="," target="RFC2822"/>&gt;
    17951839</artwork></figure>
    17961840<t>
     
    18281872  <iref primary="true" item="Location header" x:for-anchor=""/>
    18291873  <iref primary="true" item="Headers" subitem="Location" x:for-anchor=""/>
     1874  <x:anchor-alias value="Location"/>
    18301875<t>
    18311876   The Location response-header field is used to redirect the recipient
     
    18381883</t>
    18391884<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Location"/>
    1840   Location       = "Location" ":" absoluteURI [ "#" fragment ]
     1885  <x:ref>Location</x:ref>       = "Location" ":" <x:ref>absoluteURI</x:ref> [ "#" <x:ref>fragment</x:ref> ]
    18411886</artwork></figure>
    18421887<t>
     
    18681913  <iref primary="true" item="Max-Forwards header" x:for-anchor=""/>
    18691914  <iref primary="true" item="Headers" subitem="Max-Forwards" x:for-anchor=""/>
     1915  <x:anchor-alias value="Max-Forwards"/>
    18701916<t>
    18711917   The Max-Forwards request-header field provides a mechanism with the
     
    18771923</t>
    18781924<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Max-Forwards"/>
    1879   Max-Forwards   = "Max-Forwards" ":" 1*DIGIT
     1925  <x:ref>Max-Forwards</x:ref>   = "Max-Forwards" ":" 1*<x:ref>DIGIT</x:ref>
    18801926</artwork></figure>
    18811927<t>
     
    19021948  <iref primary="true" item="Referer header" x:for-anchor=""/>
    19031949  <iref primary="true" item="Headers" subitem="Referer" x:for-anchor=""/>
     1950  <x:anchor-alias value="Referer"/>
    19041951<t>
    19051952   The Referer[sic] request-header field allows the client to specify,
     
    19141961</t>
    19151962<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Referer"/>
    1916   Referer        = "Referer" ":" ( absoluteURI | relativeURI )
     1963  <x:ref>Referer</x:ref>        = "Referer" ":" ( <x:ref>absoluteURI</x:ref> | <x:ref>relativeURI</x:ref> )
    19171964</artwork></figure>
    19181965<t>
     
    19321979  <iref primary="true" item="Retry-After header" x:for-anchor=""/>
    19331980  <iref primary="true" item="Headers" subitem="Retry-After" x:for-anchor=""/>
     1981  <x:anchor-alias value="Retry-After"/>
    19341982<t>
    19351983   The Retry-After response-header field can be used with a 503 (Service
     
    19421990</t>
    19431991<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Retry-After"/>
    1944   Retry-After   = "Retry-After" ":" ( HTTP-date | delta-seconds )
     1992  <x:ref>Retry-After</x:ref>   = "Retry-After" ":" ( <x:ref>HTTP-date</x:ref> | <x:ref>delta-seconds</x:ref> )
    19451993</artwork></figure>
    1946 <t>
     1994<t anchor="rule.delta-seconds">
     1995  <x:anchor-alias value="delta-seconds"/>
    19471996   Time spans are non-negative decimal integers, representing time in
    19481997   seconds.
    19491998</t>
    19501999<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="delta-seconds"/>
    1951   delta-seconds  = 1*DIGIT
     2000  <x:ref>delta-seconds</x:ref>  = 1*<x:ref>DIGIT</x:ref>
    19522001</artwork></figure>
    19532002<t>
     
    19662015  <iref primary="true" item="Server header" x:for-anchor=""/>
    19672016  <iref primary="true" item="Headers" subitem="Server" x:for-anchor=""/>
     2017  <x:anchor-alias value="Server"/>
    19682018<t>
    19692019   The Server response-header field contains information about the
     
    19752025</t>
    19762026<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Server"/>
    1977   Server         = "Server" ":" 1*( product | comment )
     2027  <x:ref>Server</x:ref>         = "Server" ":" 1*( <x:ref>product</x:ref> | <x:ref>comment</x:ref> )
    19782028</artwork></figure>
    19792029<t>
     
    20002050  <iref primary="true" item="User-Agent header" x:for-anchor=""/>
    20012051  <iref primary="true" item="Headers" subitem="User-Agent" x:for-anchor=""/>
     2052  <x:anchor-alias value="User-Agent"/>
    20022053<t>
    20032054   The User-Agent request-header field contains information about the
     
    20132064</t>
    20142065<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="User-Agent"/>
    2015   User-Agent     = "User-Agent" ":" 1*( product | comment )
     2066  <x:ref>User-Agent</x:ref>     = "User-Agent" ":" 1*( <x:ref>product</x:ref> | <x:ref>comment</x:ref> )
    20162067</artwork></figure>
    20172068<t>
Note: See TracChangeset for help on using the changeset viewer.