# Application Preferences

These modules handles all the modules that can be registered either dynamically (using static binding) or statically by the application.

## Default Initializations

The HTInit module defines a standard set of initializations where all protocol modules and converters are setup at startup time of the application in the HTLibInit(). Often you can take this module and just override it with your own preferences.

## Handling a Configuration File

Bindings can also be set up by a rule file that is handled by the Configuration File Manager. The format of the rule file is yet to be specified and it does still need some work.

## Bindings to the local file system

The Bind Module makes bindings between file suffixes and content-type, content-language, charset etc. As an application this is used when talking to, for example FTP servers that do not support media types, and servers use it when performing format negotiation between multiple representations of a document.

## Registering of Methods

The idea behind this module is to allow dynamic registration of HTTP methods, for example PUT, POST, GET etc. and then also allow new methods to be registered. This has not yet been implemented but the structure is there :-)

## Registration of Access Schemes

Access schemes like HTTP, FTP etc. can be registered dynamically (using static binding) and the HTProt module provides the support for this.

## Registration of Proxies and Gateways

The HTProxy Module provides functionality for registering proxies and gateways dynamically. This has traditionally been handled by environment variables, but is now a registration module just like the registration of access schemes.