(HOST) (FULLURL) consensus wording. (try, try again)

If at first you don't succeed, try try again.  My mail and Roy's passed
in the night; this version has his 10.22 incorporated, (by cut and paste).

				- Jim Gettys


Add to section 5.1.2 Request-URI
   To allow for transition to absoluteURIs in all requests in future versions
   of HTTP, HTTP/1.1 servers must accept the absoluteURI form in requests, 
!  even though HTTP/1.1 clients will not normally generate them.
!  Versions of HTTP after HTTP/1.1 may require absoluteURIs everywhere,
!  after HTTP/1.1 or later have become the dominant implementations.

Change the sentence:
   The absoluteURI form is only allowed when the request is being made to
   a proxy.
To:
   The absoluteURI form is required when the request is being made to
   a proxy.  The absoluteURI form is only allowed to an origin server
   if the client knows the server supports HTTP/1.1 or later.
!  If the absoluteURI form is used, any Host request-header included
!  with the request must be ignored.

Add the following sentence to Section 8. Method Definitions:

   Note that the Host request-header field (Section 10.22) must accompany
   HTTP 1.1 requests.

Replace the current 10.22 with the following (From Roy's mail of 1 april):

10.22  Host

   The Host request-header field specifies the Internet host and port
   number of the resource being requested, as obtained from the original
   URL given by the user or referring resource (generally an http URL,
   as described in Section 3.2.2).  The Host field value must represent
   the network location of the origin server or gateway given by the
   original URL.  This allows the origin server or gateway to
   differentiate between internally-ambiguous URLs, such as the root "/"
   URL of a server for multiple hostnames on a single IP address.

       Host = "Host" ":" host [ ":" port ]    ; see Section 3.2.2

   A "host" without any trailing port information implies the default
   port for the service requested (e.g., "80" for an http URL).  For
   example, a request on the origin server for
   <http://www.w3.org/pub/WWW/> must include:

       GET /pub/WWW/ HTTP/1.1
       Host: www.w3.org

   The Host header field must be included in all HTTP/1.1 request
   messages on the Internet (i.e., on any message corresponding to a
   request for a URL which includes an Internet host address for the
   service being requested).  If the Host field is not already present,
   an HTTP/1.1 proxy must add a Host field to the request message prior
   to forwarding it on the Internet.  All Internet-based HTTP/1.1
   servers must respond with a 400 status code to any HTTP/1.1 request
   message which lacks a Host header field.

! (I eliminated the note that was in the draft, and added a list to Appendix D.)

Add to Appendix D (Changes from HTTP/1.0:

!   D.1 Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses

!  The requirements that clients and servers support the Host 
   request-header, report an error if the Host request-header is 
   missing from an HTTP/1.1 request (Section 10.22), 
!  and accept absolute URIs (Section 5.1.2) are among the most important 
   changes from HTTP/1.0.

!  In HTTP/1.0 there is a one-to-one relationship of IP addresses and servers.
   There is no other way to disambiguate the server of a request
   than the IP address of that request.
   This change to HTTP will allow the Internet, once HTTP/1.0
   clients and servers are no longer common, to support multiple Web sites 
   from a single IP address, greatly simplifying large operational Web 
!  servers sites, where allocation of many IP addresses to a single 
   host has created serious problems.  The Internet will also be 
   able to recover the IP addresses that have been used for the sole
   purpose of allowing root-level domain names to be used in HTTP URLs.
   Given the rate of growth of the Web, and the number of servers already
!  deployed, it is extremely important that implementations of HTTP/1.1 
+  correctly implement these new requirements:
+	o both clients and servers must support the Host request-header
+	o Host request-headers are required in HTTP 1.1 requests.
+	o servers must report an error if an HTTP/1.1 request does 
+		not include a Host request-header
+	o servers must accept absolute URIs


------- End of Forwarded Message

Received on Monday, 1 April 1996 13:32:47 UTC