Ignore:
Timestamp:
Mar 12, 2011, 10:51:57 PM (9 years ago)
Author:
fielding@…
Message:

editorial: clean up some of the language surrounding the URI
scheme definitions and request-target.

File:
1 edited

Legend:

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

    r1170 r1171  
    229229   message payloads for flexible interaction with network-based hypertext
    230230   information systems. HTTP relies upon the Uniform Resource Identifier (URI)
    231    standard <xref target="RFC3986"/> to indicate request targets and
     231   standard <xref target="RFC3986"/> to indicate the target resource and
    232232   relationships between resources.
    233233   Messages are passed in a format similar to that used by Internet mail
     
    625625<t>
    626626   The specific connection protocols to be used for an interaction
    627    are determined by client configuration and the identifier (if any)
    628    provided for the request target.  For example, the "http" URI scheme
     627   are determined by client configuration and the target resource's URI.
     628   For example, the "http" URI scheme
    629629   (<xref target="http.uri"/>) indicates a default connection of TCP
    630630   over IP, with a default TCP port of 80, but the client might be
     
    942942   This specification adopts the definitions of "URI-reference",
    943943   "absolute-URI", "relative-part", "port", "host",
    944    "path-abempty", "path-absolute", "query", and "authority" from
    945    <xref target="RFC3986"/>. In addition, we define a partial-URI rule for
    946    protocol elements that allow a relative URI without a fragment.
     944   "path-abempty", "path-absolute", "query", and "authority" from the
     945   URI generic syntax <xref target="RFC3986"/>.
     946   In addition, we define a partial-URI rule for protocol elements
     947   that allow a relative URI but not a fragment.
    947948</t>
    948949<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="URI-reference"/><iref primary="true" item="Grammar" subitem="absolute-URI"/><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="uri-host"/>
     
    960961</artwork></figure>
    961962<t>
    962    Each protocol element in HTTP that allows a URI reference will indicate in
    963    its ABNF production whether the element allows only a URI in absolute form
    964    (absolute-URI), any relative reference (relative-ref), or some other subset
    965    of the URI-reference grammar. Unless otherwise indicated, URI references
    966    are parsed relative to the request target (the default base URI for both
    967    the request and its corresponding response).
     963   Each protocol element in HTTP that allows a URI reference will indicate
     964   in its ABNF production whether the element allows any form of reference
     965   (URI-reference), only a URI in absolute form (absolute-URI), only the
     966   path and optional query components, or some combination of the above.
     967   Unless otherwise indicated, URI references are parsed relative to the
     968   effective request URI, which defines the default base URI for references
     969   in both the request and its corresponding response.
    968970</t>
    969971
     
    977979   namespace governed by a potential HTTP origin server listening for
    978980   TCP connections on a given port.
    979    The HTTP server is identified via the generic syntax's
    980    <x:ref>authority</x:ref> component, which includes a host
    981    identifier and optional TCP port, and the remainder of the URI is
    982    considered to be identifying data corresponding to a resource for
    983    which that server might provide an HTTP interface.
    984981</t>
    985982<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="http-URI"/>
     
    987984</artwork></figure>
    988985<t>
    989    The host identifier within an <x:ref>authority</x:ref> component is
    990    defined in <xref target="RFC3986" x:fmt="," x:sec="3.2.2"/>.  If host is
    991    provided as an IP literal or IPv4 address, then the HTTP server is any
    992    listener on the indicated TCP port at that IP address. If host is a
    993    registered name, then that name is considered an indirect identifier
    994    and the recipient might use a name resolution service, such as DNS,
    995    to find the address of a listener for that host.
     986   The HTTP origin server is identified by the generic syntax's
     987   <x:ref>authority</x:ref> component, which includes a host identifier
     988   and optional TCP port (<xref target="RFC3986" x:fmt="," x:sec="3.2.2"/>).
     989   The remainder of the URI, consisting of both the hierarchical path
     990   component and optional query component, serves as an identifier for
     991   a potential resource within that origin server's name space.
     992</t>
     993<t>
     994   If the host identifier is provided as an IP literal or IPv4 address,
     995   then the origin server is any listener on the indicated TCP port at
     996   that IP address. If host is a registered name, then that name is
     997   considered an indirect identifier and the recipient might use a name
     998   resolution service, such as DNS, to find the address of a listener
     999   for that host.
    9961000   The host &MUST-NOT; be empty; if an "http" URI is received with an
    9971001   empty host, then it &MUST; be rejected as invalid.
     
    10701074<t>
    10711075   Unlike the "http" scheme, responses to "https" identified requests
    1072    are never "public" and thus are ineligible for shared caching.
    1073    Their default is "private" and might be further constrained via use
    1074    of the Cache-Control header field (&header-cache-control;).
     1076   are never "public" and thus &MUST-NOT; be reused for shared caching.
     1077   They can, however, be reused in a private cache if the message is
     1078   cacheable by default in HTTP or specifically indicated as such by
     1079   the Cache-Control header field (&header-cache-control;).
    10751080</t>
    10761081<t>
    10771082   Resources made available via the "https" scheme have no shared
    10781083   identity with the "http" scheme even if their resource identifiers
    1079    only differ by the single "s" in the scheme name.  They are
    1080    different services governed by different authorities.  However,
    1081    some extensions to HTTP that apply to entire host domains, such
    1082    as the Cookie protocol, do allow one service to effect communication
    1083    with the other services based on host domain matching.
     1084   indicate the same authority (the same host listening to the same
     1085   TCP port).  They are distinct name spaces and are considered to be
     1086   distinct origin servers.  However, an extension to HTTP that is
     1087   defined to apply to entire host domains, such as the Cookie protocol
     1088   <xref target="draft-ietf-httpstate-cookie"/>, can allow information
     1089   set by one service to impact communication with other services
     1090   within a matching group of host domains.
    10841091</t>
    10851092<t>
     
    11151122   http://EXAMPLE.com:/%7esmith/home.html
    11161123</artwork></figure>
    1117 <t>
    1118    <cref anchor="TODO-not-here" source="roy">This paragraph does not belong here.</cref>
    1119    If path-abempty is the empty string (i.e., there is no slash "/"
    1120    path separator following the authority), then the "http" URI
    1121    &MUST; be given as "/" when
    1122    used as a request-target (<xref target="request-target"/>). If a proxy
    1123    receives a host name which is not a fully qualified domain name, it
    1124    &MAY; add its domain to the host name it received. If a proxy receives
    1125    a fully qualified domain name, the proxy &MUST-NOT; change the host
    1126    name.
    1127 </t>
    11281124</section>
    11291125</section>
     
    15821578  <x:anchor-alias value="request-target"/>
    15831579<t>
    1584    The request-target identifies the target resource upon which to apply the request.
     1580   The request-target identifies the target resource upon which to apply
     1581   the request.  In most cases, the user agent is provided a URI reference
     1582   from which it determines an absolute URI for identifying the target
     1583   resource.  When a request to the resource is initiated, all or part
     1584   of that URI is used to construct the HTTP request-target.
    15851585</t>
    15861586<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="request-target"/>
     
    15951595</t>   
    15961596<t><iref item="asterisk form (of request-target)"/>
    1597    The asterisk "*" ("asterisk form") means that the request does not apply to a
    1598    particular resource, but to the server itself. This is only allowed for the
    1599    OPTIONS request method. Thus, the only valid example is
     1597   The asterisk "*" form of request-target, which &MUST-NOT; be used
     1598   with any request method other than OPTIONS, means that the request
     1599   applies to the server as a whole (the listening process) rather than
     1600   to a specific named resource at that server.  For example,
    16001601</t>
    16011602<figure><artwork type="message/http; msgtype=&#34;request&#34;" x:indent-with="  ">
     
    16041605<t><iref item="absolute-URI form (of request-target)"/>
    16051606   The "absolute-URI" form is &REQUIRED; when the request is being made to a
    1606    proxy. The proxy is requested to forward the request or service it
    1607    from a valid cache, and return the response. Note that the proxy &MAY;
     1607   proxy. The proxy is requested to either forward the request or service it
     1608   from a valid cache, and then return the response. Note that the proxy &MAY;
    16081609   forward the request on to another proxy or directly to the server
    16091610   specified by the absolute-URI. In order to avoid request loops, a
    1610    proxy &MUST; be able to recognize all of its server names, including
     1611   proxy that forwards requests to other proxies &MUST; be able to
     1612   recognize and exclude all of its own server names, including
    16111613   any aliases, local variations, and the numeric IP address. An example
    16121614   Request-Line would be:
     
    16211623   them in requests to proxies.
    16221624</t>
     1625<t>
     1626   If a proxy receives a host name that is not a fully qualified domain
     1627   name, it &MAY; add its domain to the host name it received. If a proxy
     1628   receives a fully qualified domain name, the proxy &MUST-NOT; change
     1629   the host name.
     1630</t>
    16231631<t><iref item="authority form (of request-target)"/>
    16241632   The "authority form" is only used by the CONNECT request method (&CONNECT;).
    16251633</t>
    1626 <t><iref item="path-absolute form (of request-target)"/>
    1627    The most common form of request-target is that used to identify a
    1628    resource on an origin server or gateway ("path-absolute form"). In this case the absolute
    1629    path of the URI &MUST; be transmitted (see <xref target="http.uri"/>, path-absolute) as
    1630    the request-target, and the network location of the URI (authority) &MUST;
    1631    be transmitted in a Host header field. For example, a client wishing
    1632    to retrieve the resource above directly from the origin server would
    1633    create a TCP connection to port 80 of the host "www.example.org" and send
    1634    the lines:
     1634<t><iref item="origin form (of request-target)"/>
     1635   The most common form of request-target is that used when making
     1636   a request to an origin server or gateway ("origin form").
     1637   In this case, the absolute path and query components of the URI
     1638   &MUST; be transmitted as the request-target, and the authority component
     1639   &MUST; be transmitted in a Host header field. For example, a client wishing
     1640   to retrieve a representation of the resource, as identified above,
     1641   directly from the origin server would open (or reuse) a TCP connection
     1642   to port 80 of the host "www.example.org" and send the lines:
    16351643</t>
    16361644<figure><artwork type="message/http; msgtype=&#34;request&#34;" x:indent-with="  ">
     
    16391647</artwork></figure>
    16401648<t>
    1641    followed by the remainder of the Request. Note that the absolute path
    1642    cannot be empty; if none is present in the original URI, it &MUST; be
    1643    given as "/" (the server root).
    1644 </t>
    1645 <t>
    1646    If a proxy receives an OPTIONS request without any path in the
    1647    request-target, then the last proxy on the request chain &MUST;
    1648    forward the request with "*" as the final request-target.
     1649   followed by the remainder of the Request. Note that the origin form
     1650   of request-target always starts with an absolute path; if the target
     1651   resource's URI path is empty, then an absolute path of "/" &MUST; be
     1652   provided in the request-target.
     1653</t>
     1654<t>
     1655   If a proxy receives an OPTIONS request with an absolute-URI form of
     1656   request-target in which the URI has an empty path and no query component,
     1657   then the last proxy on the request chain &MUST; use a request-target
     1658   of "*" when it forwards the request to the indicated origin server.
    16491659</t>
    16501660<figure><preamble>   
Note: See TracChangeset for help on using the changeset viewer.