(HOST) (FULLURL) consensus wording.

I received a number of comments; thanks to all.  Hopefully
this now covers all the bases.  Changes from draft indicated by ! and +.

				- 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.
   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:

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
   http URL (Section 3.2.2) given by the user or referring resource.
   The Host field value must represent the network location of the
   origin server or gateway given by the original http URL.  This allows
   the origin server or gateway to differentiate between
   internally-ambiguous URLs (such as the root "/" URL of a server
   harboring multiple virtual hostnames).

       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 an http URL, as described in Section 3.2.2).  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.
   If an HTTP/1.1 request message lacking a Host header field is
!  received via the Internet by an origin server or gateway, that server
   must respond with a 400 status code.

! (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

Received on Monday, 1 April 1996 13:13:57 UTC