Table of Contents
- Introduction

  | · Introduction · Server Administration · Different Versions · Concepts

- Installation
- Handling Challenger
- Virtual Servers
- Configuration Examples
- Modules
- Filesystems
- RXML Tags
- Graphics
- Proxy
- Databases
- Miscellaneous Modules
- Security Considerations
- Scripting
- Frontpage
- Upgrading
- Third Party Extensions
- Portability
- Reporting Bugs
- Appendix

Concepts

Modules
Challenger is extremely modular. Every aspect and function in Challenger is handled by a module. Even such a simple task as reading a file from the filesystem needs a module. This enables administrators to customize their servers to almost any extent, by choosing the right modules. Challenger can be anything from a simple HTTP server, a proxy server to a FTP server.

All modules are not equal. Most modules provide some simple functionality, while others provide complex functionality that have security implications. The Administrator has to take this into account before deploying such modules. This manual contains warnings about modules that have security implications, and a Security chapter that all Administrators should read thoroughly.

Virtual Filesystem
Challenger uses a virtual filesystem to determine which module will be used to handle a certain request. Modules are mounted on the virtual filesystem much like how filesystems are mounted on UNIX. If a module is mounted on `/foo/bar/` it will be used to handle a request to `http://my.site/foo/bar/req?17`.

One special property of Challenger's virtual filesystem is that several modules may be mounted on overloading mount points. If one module is mounted on `/foo/` and another on `/foo/bar/` both modules are configured to handle a request to `http://my.site/foo/bar/req?17`. The priority of the modules determines which module will be used. In case the first module cannot handle the request it will be passed on to the second module.

Overloading filesystems makes it possible to configure Challenger so that what is seen on the web can appear very different from how it appears on the filesystem. What appears as a single directory on the web might in reality be the union of several directories and databases.

Protocols
Different protocols are used to find information resources on the Internet. Today HTTP and HTTPS are the most popular ones. Yesterday FTP was the most used protocol. Tomorrow, another set of protocols might be more popular. Challenger's modularity makes it possible to handle any number of protocols by creating new protocol modules. It is even possible to let one web site be reachable by several protocols. Thus any web site or applications built with Challenger can be accessed through new protocols, with no changes to the web site or application.

HTTP stands for Hyper Text Transfer Protocol and is the simple protocol used by web servers. HTTPS is HTTP over SSL, the Secure Socket Layer. It is in like HTTP, but also supports encryption, thus making it impossible to eavesdrop on the communication. Encryption is necessary for transfering sensitive data over the Internet.

Apart from HTTP and HTTPS, Challenger also handles FTP, the File Transfer Protocol, an older protocol that was popular before HTTP. FTP is still in use today for downloading programs and uploading content to web sites. FTP is better suited for such tasks.

As far as Challenger is concerned, there is essentially no difference between a HTTP request and a FTP request, so any feature available through HTTP is also available through FTP. This makes it quite possible, for instance, to create a database driven dynamic FTP site.