Vous êtes sur la page 1sur 10

APACHE WEB SERVER VS

MICROSOFT’S INTERNET
INFORMATION SERVER

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
1. Overview
For some time, Apache and Microsoft have commanded the lion's share of the
Web server market. While Apache is the clear-cut winner in the Netcraft and
Security Space monthly surveys, Internet Information Server (IIS) dominates
among Fortune 1000 enterprises.

Both are viable choices, and each carries its own set of pros and cons.
With Apache 2.0 in production release since mid-2002 and IIS 6.0 shipping last
year, this paper will examine a feature-by-feature comparison of between Apache
and IIS.

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
2. Basics
IIS has been an optional component of the Windows Server operating systems
since Windows NT 4.0. Back then, this was a basic Web server in the form of IIS
3.0. An Option Pack, released shortly after Windows NT 4.0 was released,
included IIS 4.0 and was the first "real" version of IIS to be used heavily as a
Web server platform.

IIS 5.0 was included in Windows 2000 in both the server and desktop versions,
and the updated version, IIS 5.1, is incorporated into Windows XP. The changes
between IIS 4 and IIS 5 are fairly minor.

Windows Server 2003 includes the new IIS 6.0, which is an almost complete
rewrite from the previous editions. It sports a new execution model, better
management facilities, and significantly increased performance.

Apache, on the other hand, has an older heritage, having been originally based
on the httpd code that some would argue started the entire Web revolution in the
first place. Apache 1.3.x, which was the production version until 2002, was a
largely Unix product that used a number of tricks to enable it to execute within
other operating systems, including Windows.

The production release of Apache 2.0 hit the shelves in 2002. The new release
incorporated a brand-new execution environment that separated the core
functionality of the Apache system from the system that actually supported and
processed requests. Apache 2.0 is now supported under a wide array of potential
operating systems, including all versions of Windows, Linux, Unix, and Mac OS
X, in addition to an array of non mainstream OSs, like BeOS and VMS.

3. Execution Environment
IIS and Apache operate very differently and thus have a variety of advantages of
disadvantages. IIS is obviously designed and available to work only within the
Windows environment. With IIS 6.0, the only platform currently supported is
Windows Server 2003. Although this limits the deployment platforms for IIS-
based Web services, it also provides a number of benefits, including greater

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
cooperation with the host operating system and easier management and control
through a variety of standard OS tools and utilities.

In IIS 6.0, the cooperation between the operating system and the server is
greater than ever. In a change to previous versions, the component that accepts
requests from clients and processes them is now two separate components. The
kernel mode listener, HTTP.sys, listens and accepts requests from clients,
placing the requests into one or more request queues. IIS then processes the
requests in these queues using at least one worker process to control the
execution of the individual requests and applications.

This separate process allows requests to be accepted even when IIS worker
processes aren't technically running, and also enables finer control on the worker
processes that handle requests. Thus, the admin (or the server, automatically)
can recycle requests to recover from extension and application failures that
would have previously required a shutdown/restart of the IIS service or, in
extreme cases, a reboot of the entire server.

Apache 2.0 was a major rewrite from the previous versions. Among the many
changes, the Web server is now directly available on a variety of platforms,
including Windows. The redesign enables it to support a wide array of platforms
in more efficient ways that lead to Unix- and Windows-specific execution models
that make the best use of the OS.

The core of the system is the Apache Portable Runtime (APR), which enables
the Apache core to run on more or less any system with a C compiler. A number
of multi-processing modules (MPMs) then provide the support for actually
accepting and processing requests. Under Unix, this can be the traditional
"forked" model or a newer threaded model making use of the threading built into
most modern kernels. Under Windows, this also uses a threaded model, which in
some respects is similar to the threaded model used by the worker processes
within IIS 6.0.

4. Performance

In terms of performance, each of the platforms have their strengths. In most


cases, they both meet minimum requirements in terms of speed, stability, and

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
scalability. However, there are large differences among the platforms, especially
in terms of scalability. The performance of these Web server platforms has been
measured in several benchmark studies by organizations such as PC Week,
Mindcraft, PC Magazine, and c’t (a German tech magazine).
Speed

The benchmarks show that IIS serves up static documents faster. Apache lagged
behind in most studies, probably due to its lack of multithreading and the
scalability problems of Linux. However, in terms of CGI-Bin processing, Apache
on Linux performed very well in nearly all studies. IIS was somewhat sluggish
and occasionally inconsistent in performing traditional CGI activity.

Stability

The stability issue is much more complex and difficult to measure than speed.
The general perception is that Windows NT/2000 is not very stable and that all
UNIX-based operating systems are essentially bulletproof. However, stability
depends very heavily on installation, configuration, and administration.

Because of Windows NT/2000’s user-friendly interface, it is easy for an


inexperienced administrator to make ill-advised changes that can cause the
system to become unstable. However, the interface also makes it easy for the
experienced administrator to fine-tune and manage an IIS Web server, which can
make it very reliable.

A UNIX admin who knows just enough to be dangerous can also destroy the
configuration of an Apache web server, making it very difficult for a senior administrator
to undo the damage. But an experienced admin can set up Apache to be bulletproof and
still experience better uptime than an optimized IIS server can achieve. One of the
reasons for this is that Windows NT requires so many reboots. That shortcoming has
been improved in Windows 2000, but it is still not up to the high standards of UNIX-
based operating systems in this respect.

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
Scalability

Finally, no discussion of performance would be complete without addressing the


issue of scalability. IIS does scale respectably, and it supports clustering and
symmetrical multiprocessing (SMP). IIS also hosts a few of the largest sites on
the Internet, such as dell.com, intel.com, nasdaq.com, and of course, microsoft.com.

On the other hand, Apache on Linux doesn’t scale very well, mostly due to the
limitations of Linux in enterprise computing. Also, it is not optimized to take
advantage of faster, enterprise-class hardware. However, Apache can scale fairly
well on more robust operating systems such as Solaris.

6. Dynamic Components
The primary dynamic environment for development within IIS is Active Server
Pages. This is a generic term for a solution that allows code to be embedded into
HTML pages. These ASP pages are parsed by the server before being supplied
to the client as HTML. The ASP system allows developers to work in a number of
different languages, including Visual Basic, VBScript, JavaScript, Java, and
C/C++, along with other open source alternatives, such as Perl and Python. In
addition, IIS continues to support traditional CGI methods along with its own suite
of filtering and execution systems in the form of ISAPI filters.

Apache is also designed to work with a wide range of languages, either via the
CGI model, or through the use of dynamic modules by directly incorporating the
language interpreter into the Apache environment. This significantly speeds up
the execution of dynamic components for languages like PHP, Perl, and Python.
Both systems support the Java Server Pages model, and it’s possible to migrate
most JSP applications between the two platforms with few changes. Other
languages can achieve this with varying results. Even ASP can be supported
under Unix through the ChilliSoft ASP component (www.chillisoft.com), through
the Apache::ASP module, or the Apache modmono module
(http://apacheworld.org/modmono/).

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
One element that currently cannot be emulated under Unix is the Microsoft.NET
environment. IIS 6.0 and Windows Server 2003 make heavy use and provide
excellent levels of integration with the .NET Framework.

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
6. COMPARISON TABLE

Feature IIS Apache


Independent Request Handler Yes Yes (limited)
Multiple Process Request Handlers Yes Yes
Thread Support Yes Yes (on a suitable OS)
With Chilisoft,
ASP Yes Apache::ASP, or
modmono
CGI Yes Yes
Perl Yes Yes
Python Yes Yes
PHP Yes Yes
JSP Yes Yes
.NET Integrated Yes No

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
7. CONCLUSION
The evolution of IIS and open source Web servers is readily apparent. Though IIS and
Apache appear to have the greatest market share, other web servers such as IPlanet,
WebSphere and other products continue to be developed and released.

From this author’s perspective, the competition between not only Apache and IIS, but
the other web servers is driving the constant improvement and enhancements in b oth
Apache and ISS.

So which web server is better? I believe it really comes down to what your specific
implementation goals are, what your environment is, and whether or not you are
comfortable using an open-source product versus a commercially developed and
support product.

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com
8. REFERENCES
http://searchwin2000.techtarget.com/originalContent/0,289142,sid1_gci833798,00.html

http://techrepublic.com.com/5102-6265-1034514.html

www.serverwatch.com/tutorials/article.php/3074841

http://www.intelliot.com/blog/archives/2004/03/18/apache-vs-iis/

________________________________________________________________________
www.itsquadinc.com email: info@itsquadinc.com

Vous aimerez peut-être aussi