Page 34 - Open Soource Technologies 304.indd
P. 34
Unit 3: Apache Server
Introduction Notes
The Web is still a very young phenomenon. Tim Berners-Lee invented the Web in late 1990
while working at CERN, the European Laboratory for Particle Physics. He developed it so that
physicists working at various universities around the world could have instantaneous access
to information, to enable their collaboration on a variety of projects.
Tim defined URLs, HTTP, and HTML and, with Robert Cailliau, wrote the first Web server and
the first Web client software, which was later dubbed a browser.
Just a few years ago, it would have been necessary to explain what these concepts meant to
all but the most technically aware audience. Now, there are few people (at least in developed
nations) who are unaware of the WWW.
Shortly after Tim’s initial work, a group at the National Center for Supercomputing Activities
(NCSA) at the University of Illinois at Urbana-Champaign (UIUC) developed the NCSA HTTPd
Web server and the NCSA Mosaic graphical Web browser. Mosaic wasn’t the first graphical Web
browser, although it’s almost universally remembered as such. That honor rightfully belongs
to Viola, written by Pei Wei and available before Mosaic. But Mosaic quickly stole the spotlight
and most users becoming the most widely used Web browser sometime in 1992.
NCSA HTTPd was the server most used on the Web for the first several years of its existence.
However, in 1994, Rob McCool, who had developed NCSA HTTPd, left NCSA, and the project
fizzled. There was no longer any central organization collecting fixes, developing new features,
and distributing a functional product.
Since the source code of the server was publicly available, many people using it had developed
their own bug fixes and additional features that they needed for their own sites. These patches
were shared rather haphazardly via Usenet, but there wasn’t a centralized mechanism for
collecting and distributing these patches.
Thus, Apache like the World-wide Web was put together largely by volunteers. Although the
demise of the NCSA HTTPd project left developers with a product that didn’t work very well
at the time and no one to complain to a far superior product resulted in the long run.
3.1 Versions of Apache
3.1.1 Apache HTTP Server Version 2.0
The original version released by emWare, Inc (a Device Networking Company) with a look and
feel similar to Apache’s, can be found here in a zip file.
3.1.2 Apache Mod
This seems to be accurate as of Apache 2.0.39. At least it will give a good starting point into what
has traditionally been a sparsely documented area of Apache. This document is written from
the Unix perspective, but should not need much modification to work under other platforms.
In the past it was been very difficult for coders unfamiliar with the guts of Apache to get a
start on making custom mods. Currently (July 2010) this is even more difficult because, though
Apache 2.0 is shaping up nicely, the documentation available to the public has not caught up.
Let’s start by jumping into the fridged waters head first. Let’s make a mod.
You can include custom mods in Apache in two ways. The first way is to build them into
Apache. That is nice for a production quality mod, but when you’re still developing the
LOVELY PROFESSIONAL UNIVERSITY 29