Apache HTTP Server facts for kids
![]() |
|
Original author(s) | Robert McCool |
---|---|
Developer(s) | Apache Software Foundation |
Initial release | 1995 |
Stable release | |
Written in | C |
Operating system | Unix-like, Microsoft Windows, OpenVMS |
Type | Web server |
License | Apache-2.0 |
The Apache HTTP Server is a special computer program called a web server. It's like a digital waiter that serves up web pages to your computer or phone when you browse the internet. It's available for free and anyone can use or change its code. This program is managed by a group of developers at the Apache Software Foundation.
Most Apache HTTP Servers run on Linux computers. But they also work on Microsoft Windows, OpenVMS, and many other Unix-like systems. In the past, it even ran on older systems like NetWare and OS/2.
Apache started in early 1995. It was built using parts of an older server program called NCSA HTTPd. Apache quickly became very popular. It helped the World Wide Web grow a lot in its early days. By 2009, it was the first web server to host over 100 million websites!
As of March 2022, Apache served about 23% of the busiest websites. Other popular web servers include Nginx, Cloudflare, and Microsoft Internet Information Services.
Contents
What's in a Name?
The Apache Software Foundation says they chose the name "Apache" to honor Native American nations. These groups were known for their clever strategies and strong spirit. One of Apache's creators, Brian Behlendorf, felt his work was similar to the challenges faced by these groups.
The name also has a fun pun. Some people thought it was a "patchy web server." This is because it was made by combining many small updates or "patches" to existing code.
However, Brian Behlendorf later said the name just came to him. He didn't think of the "patchy" pun at first. Someone else pointed it out to him later.
In January 2023, a group called Natives in Tech suggested that the Apache Software Foundation change its name. They felt it was a case of cultural appropriation.
When Apache runs on Unix computers, its program name is `httpd`. This is short for "HTTP daemon," which is a background computer process.
Cool Features of Apache
Apache has many useful features. Think of them as special tools or add-ons. Many of these are built as separate pieces called "modules." These modules add extra abilities to the main program.
For example, some modules help with:
- Security: They check who is allowed to access a website.
- Programming Languages: They let Apache work with languages like Perl, Python, and PHP.
- Secure Connections: A module called `mod_ssl` helps create secure connections using SSL/TLS. This keeps your information safe when you visit websites.
- Rewriting URLs: The `mod_rewrite` module can change how web addresses (URLs) look.
- Custom Logs: `mod_log_config` helps record what happens on the server.
Other cool features include:
- Compression: `mod_gzip` helps make web pages smaller. This makes them load faster.
- Security Firewall: ModSecurity helps protect websites from online attacks.
- Virtual Hosting: This is a super useful feature! One Apache server can host many different websites. For example, one computer can run `example.com` and `example.org` at the same time.
- Custom Error Messages: You can set up your own "Page Not Found" messages.
- Password Protection: Apache supports password and digital certificate authentication.
- Open Source: Because its code is free, people can create many add-ons for Apache.
Here's a more detailed list of what Apache can do:
- It can handle many requests at once, even over 10,000!
- It serves static files like images and HTML pages.
- It supports `.htaccess` files for setting up website rules.
- It can act as a reverse proxy, which helps with security and performance.
- This includes load balancing, which spreads out website traffic.
- It supports secure connections (TLS/SSL) for safe browsing.
- It can host multiple websites using different names or IP addresses.
- It works with IPv6, the newest internet address system.
- It supports HTTP/2, a faster way to send web pages.
- It allows you to control who can access different parts of your website.
- It can compress and decompress data using `gzip`.
- It can rewrite web addresses (URLs).
- It can limit how many connections or requests a server gets.
- It supports WebDAV for managing files over the web.
- You can embed scripting languages like Perl, PHP, and Lua.
- It supports CGI programs.
- It can host personal web pages for users (like `public_html`).
- It can show real-time information about how the server is doing.
- It can even support FTP (File Transfer Protocol) with an extra module.
How Apache Performs
Apache uses different ways to handle requests, called MultiProcessing Modules (MPMs). These allow it to work best for different computer setups. For example, it can use separate processes, or a mix of processes and threads. This helps Apache respond quickly and handle many requests reliably.
In the past, for simple web pages, Apache 2.2 was sometimes slower than other servers like nginx. To fix this, Apache developers created the Event MPM. This new method helps Apache perform just as well as other fast web servers.
Apache's License
The Apache HTTP Server uses the Apache License. This license explains how people can use, change, and share the software. In January 2004, Apache changed from version 1.1 to version 2.0 of its license.
The OpenBSD project, another software group, preferred the older license. So, they continued to use older versions of Apache. Eventually, they even created their own web server program.
License Versions Explained
- Version 1.1: Approved in 2000. The main change was that if you used Apache code, you didn't have to mention Apache in your advertising. You only needed to mention it in your software's documents.
- Version 2.0: Adopted in 2004. This version made it easier for other projects to use the license. It also improved how Apache works with software that uses the GPL license. It also made it clearer how contributions to the software are handled.
How Apache is Developed
Version | First Release | Latest Release |
---|---|---|
1.3 | 1998-06-06 | 2010-02-03 (1.3.42) |
2.0 | 2002-04-06 | 2013-07-10 (2.0.65) |
2.2 | 2005-12-01 | 2017-07-11 (2.2.34) |
2.4 | 2012-02-21 | 2024-04-04 (2.4.59) |
Old version
Latest version
|
The Apache HTTP Server Project is a team effort. Volunteers from all over the world work together. They use the internet to plan, communicate, and build this powerful web server. This project is a big part of the Apache Software Foundation. Many users have also shared their ideas, code, and documents to help the project grow.
Apache 2.4, a newer version, no longer supports some older computer platforms.
Keeping Apache Secure
Like all computer programs, Apache can face security challenges. One known issue is called "Slowloris." This is a type of attack that tries to slow down or stop an Apache server. It does this by sending many incomplete requests to the server.
The Apache developers have created special modules to help protect against such attacks. These modules, like `mod_reqtimeout`, limit the damage these attacks can cause. Since Apache 2.2.15, `mod_reqtimeout` is included as the official solution.
See also
In Spanish: Servidor HTTP Apache para niños
- .htaccess
- .htpasswd
- ApacheBench
- Comparison of web server software
- IBM HTTP Server
- LAMP (software bundle)
- XAMPP
- List of Apache modules
- List of free and open-source software packages
- POSSE project
- suEXEC
- Apache Tomcat - another web server developed by the Apache Software Foundation