Apache, the freely available Web server software, has become as
ubiquitous as the Windows operating system. Whether you ask auditing
services like Security
Space or poll reporting sites like Netcraft, you still get the same
answer: more than half of all Web sites use Apache to serve up Web pages.
And this has been true since April 1996, no matter what the domain: .com,
.org, .gov, etc.
In fact, the only competition Apache has ever really faced comes from
that omnipresent behemoth in Redmond, Wash. However, most Apache fanatics
would scoff at that notion because of the several well-publicized flaws … (in fact, way too many links for me to link to them all) … that have been discovered in Microsoft’s Internet
Information Services (IIS). With such dominance in market share and quality,
what new features could Apache’s developers possibly add to entice even more
users to adopt the Web server — already the world’s most popular?
“One of the main things is improved scalability,” explained Ken Coar, a
senior software engineer at IBM and vice president of the Apache Software Foundation. “You’re not stuck with a single way of doing
things. With [the current version of Apache] 1.3, it was one size fits all.
But what works well on small sites didn’t necessarily work well on large
To fully understand the scope of Coar’s comments, a little history and
background is, of course, helpful.
1.3: ‘a bit of a hack’
(A full overview of the new features in Apache 2.0 is available on
the Foundation’s Web site
but if you want the layman’s version, read on.)
Apache gets its name from the string of patches that were used to create
the original version in 1995 — “a patchy” server. Originally written for
Unix, the current version of Apache first supported Windows in 1997 after
Microsoft put its marketing muscle behind Windows NT and Windows 95. IIS
came bundled with NT and later versions have been included in Windows
2000 and now XP. Prior to all of that, network administrators either used
the Netscape server or IIS in Windows or ran Apache on Unix. With 1.3,
admins first had the option of using modules that were specially designed
for Windows to get the application to perform the necessary tasks in the
It goes without saying that Windows and Unix environments operate in
completely different ways but for the sake of the task performed by Apache,
let’s separate the platforms into two distinct camps: multiple processes and
multiple threads. Unix was capable of performing tasks in multiple
processes. However, fearful of “the blue screen of death,” NT users were
relegated to doing things (as one developer explained) “in the Windows way”
with one process operating with multiple threads.
In other words, multiple processes is like having several copies of Excel
running concurrently on your desktop, each performing a specific
calculation. Multiple threading, by contrast, is analogous to having only
one copy of Excel running on your desktop but having several macros running
within Excel, each performing a specific calculation. There are arguments
for which method performs better but no one knows for sure.
The release of 1.3 meant that administrators who were forced to Windows
NT (because, say, the OS was needed to run another mission critical
application) now had the ability to install Apache on the same machine. But
even its developers and others representatives of the Apache Software
Foundation admit that the Windows modules were shoddy.
“In 1.3, the Windows version was a bit of a hack,” Coar said.
Bill Rowe, senior software engineer at Covalent Technologies Inc. and an
active member of the Apache Software Foundation, agreed with Coar’s
assessment. “Apache’s apparent weakness is its lack of Microsoft
proprietary language support…[With 2.0,] we have removed a number of
assumptions about UNIX and forked-server behavior in order to better support
any platform,” Rowe explained.
For those reasons, anyone familiar with Apache generally cites the
Multi-Processing Modules (MPMs) as the most significant new features to the
2.0 upgrade. Now, administrators have the option of managing traffic requests
either through the Windows method on a Unix environment or vice versa.
“There are a number of different MPMs that lets you choose how to handle
traffic,” Coar said. “Apache can be threaded if you choose to set it up that
“It abstracted the way the server handles requests into one specific
module that is responsible for all the discrepancies,” Covalent’s Rowe
In addition, both Rowe and Coar believed the new Apache Portable Runtime
(APR) was a significant achievement with version 2.0. The APR is a library of blocks for
portability issues that will help smooth the transition between platforms
whether Windows, Unix or Mac.
As for other significant features, Coar chose to also highlight version
2.0’s filtering mechanism, which lets you now run the output of a Common
Gateway Interface (CGI) script through a series of processing modules, if so
desired. Meanwhile Rowe believes that compatibility with NT’s unicode file
names are a big deal, meaning file requests can now access file names in
Arabic, Hebrew or Chinese, if needed.
Who can benefit?
Ironically, all of the developments mean the biggest beneficiary of the
release of Apache 2.0 could be Microsoft. Until last fall, the company had
been trying to get its Windows NT users to upgrade to Windows 2000. Now the
latest marketing efforts are currently behind Windows XP. And with the
release of 2.0, Windows users now have a Web server that is specifically
designed to support their platform, yet, is more reliable and secure.
Microsoft could even gain users if portability and compatibility between
platforms were improved to the point that confidence grows in the Windows
“The Microsoft user is a big winner in the move from 1.3 to 2.0,” Rowe
Microsoft’s only downside exposure would be the potential demise of IIS,
which has no financial impact because the Web server is bundled as part of
the OS. And, here, Microsoft has seemingly acknowledged defeat: IIS is not
available on the Home edition of XP and the Professional edition, by
default, is installed without IIS.
Officials from Microsoft declined to comment on this article.
The only issue now is when will the final version of Apache 2.0 arrive.
Developers are still working out compatibility issues with the newly
released XP as well as other questions such as FreeBSD’s thread
implementation, compatibility with Netware and OS/2. In addition, the
Foundation is aware of a bug in v1.3.22 that intermittently corrupts output
that hasn’t yet been identified. The bug is expected to be fixed in v1.3.23
as well as the Gold code of v2.0.
“The mantra of most open-sourced projects is it’s released when it’s
released. Each new version is an improvement over the previous version. We
won’t release 2.0 until we believe it is of equal or better quality to
Apache 1.3,” Rowe said.
Coar warned not to expect to see the final version released before March.