Netscape Corporation introduced the concept of a cookie into their Navigator browser, prompting the specification to be incorporated into other browsers. Cookies provide a mechanism for the server to instruct the browser to retain certain data elements, and to pass those data elements back to the server on demand.
Detailed information about cookies can be found on Netscape Corporations web site:
http://home.netscape.com
Cookies are implemented in the Basic Web Utility via global strings. If on the first call to utsend.wbb, a global string named $cookies is defined, it is assumed to be a comma-separated list of cookie names. Cookie names refer to other global strings, with names and values passed to the browser through Set-Cookie: headers.
For example, if the global string $cookies is set to fe,fi,fo,fum, the Basic Web Utility looks for four global strings and instructs the browser to store their values. In the Netscape cookie specification, there are additional elements other than data values, such as expiration dates and valid domain and path names. These can be added to the value of the global string if desired, and the Basic Web Utility issues the header Set-Cookie: name=global-string.
The cookie values are returned automatically by the browser in the CGI input stream, and utcgi.wbb looks for these and sets the global string values appropriately.
An example of cookie use would be as a session tracking mechanism. If after calling utcgi.wbb, there is no global string ses_id, a unique code can be generated and placed into a global string ses_id, and that name can be placed in the global string $cookies. From that point, whenever that page is loaded, until the browser is closed on the users system, the ses_id string will be maintained. Using the expires, domain, and path data in the cookie specification, it would be possible for the session ID to be tracked across an entire application for any length of time.