next up previous contents index
Next: 2. HTTP Servers Up: 1. Introduction Previous: 1.3 The modeling project   Contents   Index

1.4 Sources of Information

The first task in the modeling project was to find sources of information about Apache. Starting from the Apache HTTP Server Project Web site (http://httpd.apache.org [2]), it is easy to find information about usage and administration of Apache; take for example ``Apache Desktop Reference'' by Ralf S. Engelschall [1]. Finding information about the implementation of Apache was much harder. A very good source of information was ``Writing Apache Modules with Perl and C'' by Lincoln Stein & Doug MacEachern [4]. This book describes the Module API of Apache and provides the information needed to create new modules. Therefore it contains a description of the Apache API and the Request-Response-Loop (see section 4.4).

The most important source of information was the source code distribution of Apache itself. It contains documentation of various details and lots of comments in the source code. One problem lies in the fact that the source code distribution provides one source base for many system platforms. In the Apache 1.3.x source, big parts of code are only valid for one platform (using the #ifdef preprocessor directive). For Apache 1.3.x, we only looked at the code valid for the linux platform. In 2002, we examined the Apache 2.0 source code which provides a much better structure. The flexibility of the new Apache holds other obstacles for the reader of its code: For example, the hook mechanism provides an extensible indirect procedure call mechanism using an elegant macro mechanism. Without knowing this mechanism, you won't find out which handlers will be registered for a hook (see section 3.3.2 for details).

The only tool used for the analysis of the source code transformed the C source code into a set of syntax highlighted and hyperlinked HTML files. They are available at our project siteStart with ``Structure of the Apache HTTP Server source distribution''.


next up previous contents index
Next: 2. HTTP Servers Up: 1. Introduction Previous: 1.3 The modeling project   Contents   Index
Apache Modeling Portal Home Apache Modeling Portal
2004-10-29