Table of Contents
- Introduction
- Installation
- Handling Challenger
- Virtual Servers
- Configuration Examples
- Modules
- Filesystems

  | · Introduction · Filesystem Modules · Directory Listing Modules · Content Types · File Extension Modules

- RXML Tags
- Graphics
- Proxy
- Databases
- Miscellaneous Modules
- Security Considerations
- Scripting
- Frontpage
- Upgrading
- Third Party Extensions
- Portability
- Reporting Bugs
- Appendix

Content Types
Over HTTP the type of a file is determined by it's MIME content type. A GIF image has the content type `image/gif` while a HTML page has the content type `text/html`.

The Content types module, the only one of it's kind included with Challenger, handles giving each file a content type. This is done through matching the extension of a file with a content type. Thus `.gif` files are given the content type `image/gif` and `.html` files are given the content type `text/html`.

What extensions should be matched to which content types is of course fully configurable. A file with the most common extensions and content types is included with Challenger.

The Content types module must be enabled for Challenger to operate as a web server. You should only remove it if you are certain that you know what you are doing.

`Default content type`
  This is the default content type which is used if a file lacks extension or if the extension is unknown.

`Extensions`
  A list of extensions and their corresponding content types. The format is as follows:

  `<tablify> Extension Type Encoding gif image/gif gz STRIP gnuzip #include <etc/extensions> #include <etc/more-ext> </tablify>`

  `STRIP` causes Roxen to strip this extension and try again. A file named `roxen.tar.gz` would not only get the Content-encoding `x-gzip`, but also the Content-type `application/unix-tar`.

  The `#include` directive causes files containing more content type definitions to be included. The syntax for those files is the same as the syntax for this variable.