Introduction
    Server administration
    Different versions
    Concepts
  Installing
  Handling
  Virtual servers
  Modules
  Filesystems
  RXML tags
  Graphics
  Proxy
  Miscellaneous modules
  Security considerations
  Scripting
  Databases
  LDAP
  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 file system needs at least one 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 file system
Challenger uses a virtual file system to determine which module will be used to handle a certain request. Modules are mounted on the virtual file system much like how file systems 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 file system 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 file systems makes it possible to configure Challenger so that what is seen on the web can appear very different from how it appears on the file system. 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 Secure Socket Layer, SSL. It is in like HTTP, but also supports encryption, thus making it much harder to eavesdrop on the communication. Encryption is necessary for transferring 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.

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.