Administering an ISP Installation

Next Topic

***** *Sending Cookies

Making a site accessible to noncompliant browsers through cookies targets only those browsers that can accept them. Cookies can be attached to hosts on the client side, and will be sent with a request whenever a client accesses the Web site in question. An older browser that supports cookies can use a cookie as a pseudo host header. To allow this, the administrator must set up several components, including registry settings, and add .asp files to the Scripts directory of the Web site.

When a noncompliant browser first accesses a site with multiple hosts, the server cannot detect which site the user wants to visit. With IIS 5.0, you can display a custom menu to these users, listing the Web sites available. This menu can be any documentan .htm file or an .asp file. There are two possible host menu documents that the administrator can set up: one for clients that support HTTP cookies, and the other for clients that do not. The menu documents must exist in a virtual directory of one of the sites on the Web server. The administrator must specify the document names and the host name of the site where these documents can be found. For example, the following process shows what happens if a client tries to access reskit1.microsoft.com through a noncompliant browser:

  1. The client attempts to access https://reskit1.microsoft.com.

  2. Since there is no host header with the request, the server does not know which Web site the client wants.

  3. IIS 5.0 presents the client with an HTML menu prepared by the administrator, which lists the available sites on this particular IP address.

  4. The client selects (and is redirected to) the desired site on the server.

  5. A cookie is returned to the client. This cookie ensures that all subsequent requests for https://reskit1.microsoft.com directly access the appropriate documents. There is no need for a menu, at this point.

In the following example, a request was made for the reskit1.microsoft.com and reskit2.microsoft.com sites. Notice the HTTP 1.0 GET requests and the host lines below them. While initiating an HTTP 1.0 request, Microsoft Internet Explorer 3.02 can communicate with IIS 5.0 through a host header.

CLIENT REQUEST FOR https://reskit1.microsoft.com (from an HTTP/1.0 browser)
GET / HTTP/1.0
Accept: application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: en
UA-pixels: 800x600
UA-color: color16
UA-OS: Windows 2000
UA-CPU: x86
User-Agent: Mozilla/2.0 (compatible; MSIE 3.02; Windows 2000)
Host: reskit1.microsoft.com
Connection: Keep-Alive

CLIENT REQUEST FOR https://reskit2.microsoft.com (from an HTTP/1.0 browser)
GET / HTTP/1.0
Accept: application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: en
UA-pixels: 800x600
UA-color: color16
UA-OS: Windows 2000
UA-CPU: x86
User-Agent: Mozilla/2.0 (compatible; MSIE 3.02; Windows 2000)
Host: reskit2.microsoft.com
Connection: Keep-Alive

In the example that follows, notice that the GET request does not have a host header. Clients that do not support host headers, such as Microsoft Internet Explorer 2.0, will return the error message 404 Object Not Found.

CLIENT REQUEST FOR https://reskit1.microsoft.com (from Internet Explorer 2.0)
GET / HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, */*
Accept-Language: en
User-Agent: Mozilla/1.22 (compatible; MSIE 2.0d; Windows 2000)
Connection: Keep-Alive

SERVER RESPONSE
HTTP/1.1 404 Object Not Found
Server: Microsoft-IIS/5.0
Date: Wed, 14 Oct 1998 17:05:55 GMT
Content-Type: text/html
Content-Length: 102