JKL Toy Company enables cookie tracking on HTTP Server

This scenario discusses how to enable cookie tracking for an IBM® HTTP Server for i Web server.

Scenario

The JKL Toy Company (a fictitious company) wants to be able to measure Web site visitor activity and trends. The JKL Web administrator would like to try to measure how many new and unique users visit the intranet Web site. Requiring users to obtain a userid and password is the most accurate way track users; however, this method has the disadvantage of forcing the intranet Web users to register for a userid and password.

Analyzing the data in the log file by IP address could be used to track users. Two disadvantages to this method are:
  • Some ISPs use dynamic IP addressing, assigning random IP addresses to all users.
  • Some ISPs send all traffic through a proxy server, creating a log entry for the IP address of the proxy server only.

Setting a unique number in a cookie in the user's browser the first time that they visit the Web site combined with using a log that records cookies could be used to track users. This log can be analyzed to show how many new cookies have been set and how many old cookies have returned. In addition, the log can also be used to show the sequence of URLs that a particular cookie used to navigate through the Web site. A downside of this method is that users can shut off the browsers ability to record cookies.

The JKL Web administrator has decided to use the cookie method. The JKL Web administrator will store cookie information in a new log called JKLCOOKIE_LOG using a new cookie called JKLCOOKIE.

Prerequisites

Start the IBM Web Administration for i interface

Access the IBM Web Administration for i from your browser. For information about how to access the Web Administration for i interface, see Starting Web Administration for i.

Create a cookie for HTTP Server

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select your HTTP Server from the Server list.

    Example: JKLTEST

  4. Select Global configuration from the Server area list.
  5. Expand Server Properties.
  6. Click Logging.
  7. Click the User Tracking (Cookies) tab in the form.
  8. Select Enabled from the Track user requests in a cookie list.
  9. Enter a name for the cookie in the Cookie name field or use the default.

    Example: JKLCOOKIE

  10. Enter a value in the Expiration period field.

    Example: 1

  11. Select a time period from the Expiration period list.

    Example: Years

  12. Click OK.

Set up the cookie log for HTTP Server

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select Global configuration from the Server area list.
  4. Expand Server Properties.
  5. Click Logging.
  6. Click the Custom Logs tab in the form.
  7. Click Add under the Custom logs table.
  8. Enter logs/[log_name] in the Log column.

    Example: logs/jklcookie_log

  9. Select cookie from the Log format list.
  10. Enter a value in the Expiration field.

    Example: 364

  11. Select a time period from the Expiration list.

    Example: Days

  12. Click Continue.
  13. Click OK.
Note: The rest of the fields on this form are optional.

Restart your HTTP Server

Select one of the following methods below:

Manage one server

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select your HTTP Server from the Server list.
  4. Click the Stop icon if the server is running.
  5. Click the Start icon.

Manage all servers

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select All Servers from the Server list.
  4. Click the All HTTP Servers tab.
  5. Select your HTTP Server name in the table.

    Example: JKLTEST

  6. Click Stop if the server is running.
  7. Click Start.
Note: If your HTTP Server does not start, see Troubleshooting.

Test your HTTP Server

  1. Open a new Web browser.
  2. Turn cookie alerts on in your browser. Consult the Web browser's help documentation for details on enabling cookie alerts.
  3. Enter http://[i_hostname]:[port] in the location or URL field.

    Example: http://jkl_server:1975

View your HTTP Server configuration

Your configuration will look similar if you used the given example in this and previous examples.

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select your HTTP Server from the Server list.

    Example: JKLTEST

  4. Expand Tools.
  5. Click Display Configuration File.
Listen *:1975
DocumentRoot /www/jkltest/htdocs
TraceEnable Off
Options -FollowSymLinks 
LogMaint logs/jklcookie_log 364 0
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{Cookie}n \"%r\" %t" cookie
LogFormat "%{User-agent}i" agent
LogFormat "%{Referer}i -> %U" referer
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log combined
CustomLog logs/jklcookie_log cookie
LogMaint logs/access_log 7 0
LogMaint logs/error_log 7 0
SetEnvIf "User-Agent" "Mozilla/2" nokeepalive
SetEnvIf "User-Agent" "JDK/1\.0" force-response-1.0
SetEnvIf "User-Agent" "Java/1\.0" force-response-1.0
SetEnvIf "User-Agent" "RealPlayer 4\.0" force-response-1.0
SetEnvIf "User-Agent" "MSIE 4\.0b2;" nokeepalive
SetEnvIf "User-Agent" "MSIE 4\.0b2;" force-response-1.0
CookieTracking On
CookieName JKLCOOKIE
CookieExpires 31536000
<Directory />
	Require all denied
</Directory>
<Directory /www/jkltest/htdocs>
	Require all granted
</Directory>