115 The History of Apache — The Web Server That Helped Build the Web

The Technologies That Built the Web

PHP can provide the logic.

MySQL can provide the memory.

But before either one can do anything, something has to answer the door.

When a browser requests a web page, software running on a server must receive that request, determine what should happen, and send a response back.

That software is the web server.

And for much of the history of the World Wide Web, one name has been especially important:

Apache.

What Is a Web Server?

The term “server” can be confusing because it can describe both a computer and the software running on that computer.

A physical or virtual server is a computer.

A web server such as Apache is software.

The web server listens for requests arriving from browsers and other clients using HTTP or HTTPS.

A simple request might effectively say:

“Please send me this page.”

The web server determines how to respond.

Sometimes it can simply locate a file and send it.

Other times it may pass the request to PHP or another application, which may communicate with a database before generating the response.

The web server is the traffic controller connecting the visitor with the resources behind the website.

Before Apache — The First Web Server

To understand Apache, we need to return to the beginning of the World Wide Web.

In 1989 and 1990, Tim Berners-Lee was developing the technologies that would become the web while working at CERN, the European physics research organization.

A web needed more than HTML pages and a browser.

It also needed software capable of serving those pages.

Berners-Lee developed the first web server, known as CERN httpd.

The earliest web server ran on a NeXT computer at CERN.

A famous handwritten label on that machine warned:

“This machine is a server. DO NOT POWER IT DOWN!!”

It is difficult to imagine a more appropriate warning for a machine helping launch a new global information system.

HTTP Connects the Browser and Server

The browser and web server communicate using HTTP—the Hypertext Transfer Protocol.

The concept is beautifully straightforward.

A client makes a request.

A server returns a response.

The request may ask for an HTML document, an image, a stylesheet, a program-generated page, or another resource.

The response includes information describing what happened along with the requested content when appropriate.

That request-and-response model remains fundamental to the web today.

The NCSA Web Server

As the web began spreading beyond CERN, development accelerated.

The National Center for Supercomputing Applications, or NCSA, at the University of Illinois developed important early web software.

NCSA Mosaic became one of the browsers that helped popularize the graphical web.

NCSA also developed an HTTP server known as NCSA HTTPd.

During the early 1990s, NCSA HTTPd became one of the most widely used web servers.

But the web was growing extraordinarily quickly, and maintaining server software was becoming increasingly important.

A Community Begins Maintaining the Server

Development of NCSA HTTPd slowed after its primary developer, Rob McCool, left NCSA.

Web administrators around the world were still relying on the software.

They began creating fixes, improvements, and new features to keep their servers working.

In 1995, a group of these developers organized their efforts.

The result became the Apache HTTP Server.

Why Is It Called Apache?

One of the best-known stories about the name is that Apache grew from “a patchy server”—the NCSA server plus a collection of patches.

That wordplay became part of web folklore.

The Apache project itself has also explained that the name was chosen out of respect for Native American Apache peoples, who were admired by the project's founders for qualities such as endurance and adaptability.

The “patchy server” story is memorable, but the history of the name is a little more nuanced than the joke suggests.

Apache Arrives in 1995

The first public Apache release appeared in 1995.

It arrived at exactly the right moment.

The World Wide Web was exploding in popularity.

Organizations everywhere were creating websites.

Internet service providers and hosting companies needed dependable server software.

Developers needed flexibility.

Administrators needed control.

Apache provided it.

Open Source and the Growing Web

Apache's collaborative development model became one of its great strengths.

Developers and server administrators could examine the source code, improve it, adapt it, and contribute fixes.

Instead of depending entirely on a single commercial vendor, a worldwide community could participate in developing the software.

This model fit remarkably well with the culture of the early internet.

The web itself was based on open standards.

Apache provided an open server capable of implementing them.

Apache Becomes the Dominant Web Server

Apache grew rapidly.

By the second half of the 1990s, it had become one of the dominant web servers on the internet.

Its popularity continued into the following decade, when Apache served an enormous portion of the world's websites.

For many developers and administrators, installing a web server effectively meant installing Apache.

It became another one of those foundational technologies that users rarely saw but depended upon every day.

The Power of Modules

One reason Apache proved so adaptable was its modular architecture.

Instead of requiring every possible feature to be permanently built into the core server, Apache could extend its capabilities through modules.

Modules could provide features involving authentication, security, URL rewriting, compression, proxying, SSL/TLS encryption, programming languages, logging, and many other functions.

This allowed administrators to build a server suited to their particular needs.

Apache was not simply a program that sent HTML files.

It became a flexible web-serving platform.

Apache and PHP

Apache's relationship with PHP became especially important.

PHP could be integrated with Apache so that requests for PHP pages were processed by the PHP interpreter before the result was sent to the browser.

Conceptually, the flow might look like this:

Browser → Apache → PHP → Apache → Browser

If PHP needed information from a database:

Browser → Apache → PHP → MySQL → PHP → Apache → Browser

We can now see several of our Technologies That Built the Web working together.

The LAMP Stack

Apache supplied the “A” in one of the most influential combinations in web development:

Together they became known as the LAMP stack.

The significance of LAMP was not simply technical.

It made sophisticated web development accessible.

A developer could build a complete dynamic website using technologies that were widely available and could run on relatively modest hardware.

Small businesses, universities, hobbyists, nonprofits, startups, and independent developers could use essentially the same fundamental technologies.

The Importance of .htaccess

For many website developers, one of Apache's most recognizable features became the .htaccess file.

It allows certain server configuration instructions to be placed within individual website directories when the server administrator permits it.

A developer can use .htaccess for tasks such as redirects, access restrictions, URL rewriting, custom error handling, and other site-specific behavior.

This was especially useful in shared hosting environments where website owners did not have access to the server's main configuration files.

URL Rewriting Changes the Appearance of the Web

Apache's mod_rewrite module became particularly famous—and occasionally infamous—for its flexibility.

It allowed incoming URLs to be transformed according to rules.

A complicated internal address could be presented to visitors as something cleaner and easier to understand.

Rewriting also became important for redirects, reorganized websites, search-engine-friendly URLs, and application routing.

A request did not necessarily have to correspond directly to a physical file on the server anymore.

The web server could interpret what the URL meant.

Apache and HTTPS

As the web became increasingly important for commerce, banking, communication, and personal information, encrypted connections became essential.

Apache gained support for SSL and later TLS through modules such as mod_ssl.

This allowed web servers to establish encrypted HTTPS connections with browsers.

Today HTTPS is expected across the web, but it represents another layer in the request-and-response process.

Before a browser sends sensitive information, the browser and server establish a secure connection and verify the server's identity through digital certificates.

Apache became an important part of delivering that secure web.

Apache 2

Apache HTTP Server 2.0, released in 2002, represented a major architectural evolution.

It introduced important improvements in portability, performance, modularity, and how the server could manage connections and processes.

Apache 2 also expanded the concept of Multi-Processing Modules, or MPMs.

Different MPMs could determine how Apache handled incoming connections using processes and threads.

This gave administrators additional ways to match the server's architecture to the operating environment and workload.

A Website Is More Than Files

As our series progresses, we can begin to see that a modern website is not one thing.

It is a collection of cooperating technologies.

The browser understands HTML, CSS, and JavaScript.

The web server receives requests.

PHP can execute application logic.

MySQL can retrieve stored information.

DNS helps the browser find the server.

TLS can protect the connection.

Linux may provide the operating environment beneath everything.

No single technology is “the website.”

The website emerges from all of them working together.

Competition Arrives

Apache did not remain alone.

Other web servers continued to develop.

Microsoft Internet Information Services, or IIS, became important in Windows environments.

Lighttpd offered a lightweight alternative.

And in the 2000s, another web server began attracting considerable attention:

nginx.

Nginx was designed with a different architecture aimed particularly at efficiently handling large numbers of simultaneous connections.

Its rise changed the web-server landscape.

Apache Versus nginx?

At first glance, Apache and nginx appear to be competitors.

And sometimes they are.

A server can use Apache as its primary web server.

Another can use nginx instead.

But that is only part of the story.

Apache and nginx can also work together.

One server can sit in front of another, handling different portions of the work.

That development gives us an important clue about how modern web infrastructure evolved.

From One Server to Layers

The early web-server model was comparatively simple.

A browser contacted a server.

The server returned a page.

Modern web infrastructure can contain many layers.

A request might encounter a content-delivery network, firewall, load balancer, reverse proxy, nginx server, Apache server, PHP processor, cache, database, and external API before the final response reaches the browser.

Each layer can perform a specialized job.

This is one reason understanding the basic web server remains valuable.

The architecture has become more sophisticated, but the original problem remains:

A request arrives. Something has to answer it.

The Apache Software Foundation

The success of the Apache HTTP Server also helped produce something much larger.

In 1999, the Apache Software Foundation was established to support Apache projects and their communities.

Over time, the foundation became home to many open-source software projects extending far beyond the original web server.

The name Apache therefore came to represent both a specific HTTP server and a much broader open-source software organization.

Quiet Infrastructure

Most visitors never know that Apache served a page.

They do not see the configuration files.

They do not see the modules.

They do not see the redirects, TLS negotiation, logging, access controls, or communication with PHP.

They click a link.

The page appears.

That is exactly what good infrastructure is supposed to accomplish.

The Technology Can Become Invisible Without Becoming Unimportant

This theme continues to appear throughout The Technologies That Built the Web.

PHP can execute without the visitor knowing PHP exists.

MySQL can retrieve information without the visitor knowing there is a database.

Apache can process a request without the visitor knowing there is a web server.

The better these technologies perform their jobs, the less the average visitor needs to think about them.

Invisible does not mean unimportant.

Apache Helped Democratize the Web

Apache's importance is larger than market share or technical features.

It arrived when the web needed dependable, flexible, accessible server software.

It allowed organizations large and small to operate web servers.

Combined with Linux, MySQL, and PHP, it helped make sophisticated web publishing available to almost anyone willing to learn.

That changed who could build things on the internet.

More Than 30 Years Later

Apache emerged in 1995—the same extraordinary period that gave us PHP and MySQL.

Those technologies grew up together.

They helped transform the web from a relatively small collection of documents into a global platform for publishing, commerce, communication, applications, and information.

Apache is no longer the only major answer to the question of how to serve a website.

And that makes its modern story even more interesting.

Next: Apache and nginx — Web Servers Today and Tomorrow

What happens when we move from the classic Apache web server into modern web infrastructure?

Why was nginx created?

Is nginx an alternative to Apache?

Can Apache and nginx run together?

What is a reverse proxy?

Which server handles PHP?

And why might one piece of software receive the internet connection while another ultimately generates the page?

Next in The Technologies That Built the Web, we will explore Apache and nginx today—and discover how modern web servers can compete, cooperate, and divide the work of delivering a website.

Home
Brad Zehr | Zehr.net | brad@zehr.net

About Services Why A Site Site Ideas Topics Podcast Help Contacts

Topics, Podcast & Images on this site are AI Assisted.

Search Contact Home