Web Development 101: Apache Server

Even if you don't know what Apache server does, chances are that you have indirectly used it countless times. As of September 2009, over 50% of all web sites across the Internet are hosted on the Apache server platform.

slide 1 of 3

What is Apache server?

Broadly, Apache refers to the Apache Software Foundation, which is a foundation that supports open source development through a variety of projects. Their most popular project is the Apache HTTP (Hyper Text Transport Protocol) server, which we will hereafter refer to as simply the Apache server. This project started in 1995, and since April 1996 it has been the most popular HTTP server in use.

An HTTP server such as Apache server is a computer program that takes files or programs, and makes them accessible to users through HTTP. The user could be remote across the Internet or intranet, or sitting at the same computer that is running the Apache server. These files could be plain HTML which is transmitted directly to be rendered by the user's browser, or server side programming such as Perl, PHP or Python which dynamically generates HTML to be rendered by the user's browser.

The Apache server differs from its main competitor, Microsoft IIS (Internet Information Server), in that Apache is open source. This means that it can be used without paying licensing fees, and that the source code is freely available for users to view and modify. Apache also runs on a wide variety of hardware and operating system platforms, from Unix and Unix variants, to Microsoft Windows, to MacOS. By far the most common deployment is to run Apache server on Linux, which is the foundation of the increasingly popular LAMP platform (Linux, Apache, MySQL, PHP).

slide 2 of 3

What can Apache server do?

As mentioned previously, Apache server is the most common http server in use today. However, this statistic only includes its usage for hosting web sites on the Internet, while there are several other common implementations. Apache server can be used on local machines for web site development, which is a great practice when you will be deploying your site to a web host that also uses the Apache server. It can also be used for making web pages accessible on the local machine through a web browser, for example program documentation in HTML format. It could also be used for sharing files from your personal computer across the Internet.

While the Apache server has limited functionality in its core package, this functionality can be greatly extended through compiled modules. Some examples of the compiled modules and the additional functionality that they provide include:

Additional server side programming languages are supported by compiled modules for languages such as PHP, Perl, and Python.

User authentication and authorization services are provided by mod_access, mod_auth, and a variety of other compiled modules.

Support for secure data transmission, which is vital when dealing with confidential data, is provided by the mod_ssl compiled module.