Ignore:
Timestamp:
Mar 10, 2012, 2:57:18 AM (8 years ago)
Author:
fielding@…
Message:

Explain first half of message routing. Related to #218.

File:
1 edited

Legend:

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

    r1574 r1575  
    11361136</section>
    11371137
    1138 <section title="request-target" anchor="request-target">
     1138<section title="Request Target" anchor="request-target">
    11391139  <x:anchor-alias value="request-target"/>
    11401140<t>
     
    22952295<section title="Message Routing" anchor="message.routing">
    22962296<t>
    2297    In most cases, the user agent is provided a URI reference
    2298    from which it determines an absolute URI for identifying the target
    2299    resource.  When a request to the resource is initiated, all or part
    2300    of that URI is used to construct the HTTP request-target.
    2301 </t>
     2297   HTTP request message routing is determined by each client based on the
     2298   target resource, the client's proxy configuration, and
     2299   establishment or reuse of an inbound connection.  The corresponding
     2300   response routing follows the same connection chain back to the client.
     2301</t>
     2302
     2303<section title="Identifying a Target Resource" anchor="target-resource">
     2304<t>
     2305   HTTP is used in a wide variety of applications, ranging from
     2306   general-purpose computers to home appliances.  In some cases,
     2307   communication options are hard-coded in a client's configuration.
     2308   However, most HTTP clients rely on the same resource identification
     2309   mechanism and configuration techniques as general-purpose Web browsers.
     2310</t>
     2311<t>
     2312   HTTP communication is initiated by a user agent for some purpose.
     2313   The purpose is a combination of request semantics, which are defined in
     2314   <xref target="Part2"/>, and a target resource upon which to apply those
     2315   semantics.  A URI reference (<xref target="uri"/>) is typically used as
     2316   an identifier for the target resource, which a user agent would resolve to
     2317   its absolute form in order to obtain the target URI.  The target URI
     2318   excludes the reference's fragment identifier component, if any,
     2319   since fragment identifiers are for client-side processing only.
     2320</t>
     2321<t>
     2322   HTTP intermediaries obtain the request semantics and target URI
     2323   from the request-line of an incoming request message.
     2324</t>
     2325</section>
     2326
     2327<section title="Connecting Inbound" anchor="connecting.inbound">
     2328<t>
     2329   Once the target URI is determined, a client needs to decide whether
     2330   a network request is necessary to accomplish the desired semantics and,
     2331   if so, where that request is to be directed.
     2332</t>
     2333<t>
     2334   If the client has a response cache and the request semantics can be
     2335   satisfied by a cache (<xref target="Part6"/>), then the request is
     2336   usually directed to the cache first.
     2337</t>
     2338<t>
     2339   If the request is not satisfied by a cache, then a typical client will
     2340   check its configuration to determine whether a proxy is to be used to
     2341   satisfy the request.  Proxy configuration is implementation-dependent,
     2342   but is often based on URI prefix matching, selective authority matching,
     2343   or both, and the proxy itself is usually identified by an "http" or
     2344   "https" URI.  If a proxy is applicable, the client connects inbound by
     2345   establishing (or reusing) a connection to that proxy.
     2346</t>
     2347<t>
     2348   If no proxy is applicable, a typical client will invoke a handler routine,
     2349   usually specific to the target URI's scheme, to connect directly
     2350   to an authority for the target resource.  How that is accomplished is
     2351   dependent on the target URI scheme and defined by its associated
     2352   specification, similar to how this specification defines origin server
     2353   access for resolution of the "http" (<xref target="http.uri"/>) and
     2354   "https" (<xref target="https.uri"/>) schemes.
     2355</t>
     2356</section>
    23022357
    23032358<section title="Types of Request Target" anchor="request-target-types">
    23042359<t>
    2305    The proper format choice of the four options available to request-target
    2306    depends on the method being requested and if the request is being made to
    2307    a proxy.
     2360   Once an inbound connection is obtained, the client sends an HTTP request
     2361   message (<xref target="http.message"/>) with a request-target derived from
     2362   the target URI.  There are four distinct formats for the request-target
     2363   (<xref target="request-target"/>), depending on both the method being
     2364   requested and whether the request is to a proxy.
    23082365</t>   
    23092366<t anchor="origin-form"><iref item="origin form (of request-target)"/>
Note: See TracChangeset for help on using the changeset viewer.