# Protocol Utility Modules

The protocol modules themselves can be registered dynamically (using static binding) but some of the functionality used by the modules are kept in a set of protocol utility modules that are described in this section.

## Access Authorization

In order to prevent unauthorized access on a Web server, a basic authorization scheme has been developed, see Access Authorization for more details on the scheme. The access authorization is implemented in the following modules:

HTAABrow
  This module contains WWW Browser specific code, that is composing the HTTP Authorization Header, recording users information etc.
HTAAUtil
  This module contains the authorization code that is common to both the servers and clients, e.g., handling information on different authentication etc.
UU Encoding and Decoding
  Provides functions to encode and decode a data buffer according to the RFC 1421 "Privacy Enhancement for Internet Electronic Mail".

## Presenting Directory Listings and other Listings

When listings return from the protocol modules they are converted into HTML and parsed to the client. Listings might be HTTP directory listings, Gopher menus, FTP directory listings, CSO Name server etc. The modules providing this functionality are:

HTDir
  This is a very configurable module to actually present the listings
HTDescript
  This module handles the description field in a HTTP directory listing. For a HTML file, the default action is to peek the title of the document.
HTIcons
  This module handles the set of icons used in the listings (HTTP, Gopher, FTP etc.).

## Logging Requests

The HTLog Module is a simple log manager that can log the result of a request to the access manager.