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.
|