Der Apache HTTP Server [] ist ein quelloffenes und freies Produkt der Apache Software Foundation und einer der meistbenutzten Webserver im Internet. Neben Faktoren wie Leistungsfähigkeit, Erweiterbarkeit, Sicherheit, Lizenzkosten-Freiheit und dem Support durch eine sehr große Community ist seine langjährige Verfügbarkeit für unterschiedlichste Betriebssysteme einer der Gründe für seine hohe Verbreitung, am häufigsten wird er als LAMP-System eingesetzt.
Geschichte Eine Gruppe von acht Entwicklern begann 1994 den Webserver NCSA HTTPd zu erweitern. Dies waren im Einzelnen: Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau und Andrew Wilson mit Unterstützung von Eric Hagberg, Frank Peters und Nicolas Pioch.
Sie gaben dem Ergebnis ihrer Arbeit den Namen Apache HTTP Server und veröffentlichten diesen im April 1995. Er war das Gründungsprojekt der Apache Software Foundation.
Namensherkunft Der Name wurde aus Respekt vor dem nordamerikanischen Indianerstamm der Apachen gewählt. Auf der Webseite des Projekts wurde mitgeteilt, dass der Name ein Homophon von „“ sei, was so viel wie „ein zusammengeflickter Server“ bedeuten würde. Diese Deutung entstand durch den Umstand, dass der Apache HTTP Server ursprünglich eine gepatchte Erweiterung des alten NCSA HTTP Servers war.
Im Januar 2023 beschuldigte die US-amerikanische Non-Profit-Organisation Natives in Tech die Apache Software Foundation der kulturellen Aneignung und bittet um Änderung des Namens der Stiftung und damit auch der Namen der von ihr betreuten Softwareprojekte.
Eigenschaften und Funktionen Neben Unix und Linux unterstützt Apache Win32, NetWare sowie eine Vielzahl weiterer Betriebssysteme. In Apache 2.4 wurde der Support für ältere, lange schon nicht mehr weiter entwickelte Betriebssysteme wie BeOS, TPF und A/UX beendet. In Version 2.0 wurde die Stabilität und Geschwindigkeit des Servers – vor allem auf Nicht-Unix-Systemen – erheblich verbessert: Die Bibliothek Apache Portable Runtime (APR) stellt eine Verallgemeinerung wichtiger Systemaufrufe zur Verfügung, sodass die individuellen Stärken des jeweiligen Betriebssystems ausgenutzt werden können. Hinzu kommen verschiedene Multiprocessing-Module (MPM), die je nach Plattform unterschiedliche Lösungen für die gleichzeitige Bedienung mehrerer Client-Anfragen anbieten: Beispielsweise setzt das MPM prefork für klassische Unix-Systeme auf Forking von Prozessen, während mpm_winnt für die unter Windows empfehlenswerteren Threads optimiert ist.
Der Apache-Webserver ist modular aufgebaut: Durch entsprechende Module kann er beispielsweise die Kommunikation zwischen Browser und Webserver verschlüsseln (mod_ssl), als Proxyserver eingesetzt werden (mod_proxy) oder komplexe Manipulationen von HTTP-Kopfdaten (mod headers) und URLs (mod rewrite) durchführen.
Der Apache bietet die Möglichkeit, mittels serverseitiger Skriptsprachen Webseiten dynamisch zu erstellen. Häufig verwendete Skriptsprachen sind PHP, Perl oder Ruby. Weitere Sprachen sind Python, JavaScript (z. B. V8CGI), Lua, Tcl und .NET (mit ASP.NET oder Mono). Diese sind kein Bestandteil des Webservers, sondern müssen ebenfalls entweder als Module eingebunden werden oder über das CGI angesprochen werden, da Apache im Gegensatz zu beispielsweise nginx modulbasiert ist. Die Module können jederzeit aktiviert oder deaktiviert werden. Über das bei der Apache-Installation enthaltene mod_include kann Server Side Includes (SSI) ausgeführt werden. Damit ist es möglich, einfache dynamische Webseiten zu erstellen und den Verwaltungsaufwand von statischen Webseiten zu minimieren.
Der Apache HTTP Server ist, wie alle Programme der Apache Software Foundation, eine freie Software. Derzeit wird noch die stabile Version 2.4.x unterstützt und somit beispielsweise mit Sicherheitsupdates versorgt. Die Apache-Entwickler empfehlen die Version 2.4.x für den Produktiveinsatz.
Dokumentation Zum Webserver gibt es ein Handbuch. Einige Distributionen (z. B. Ubuntupackages.ubuntu.com) liefern es als eigenständiges Programmpaket (zum Package apache2 gibt es ein Package apache2-doc). Das Handbuch wird je nach Sprachkonfiguration des Webbrowsers, die er im Feld Accept-Language des HTTP übermittelt, in der passenden Sprache ausgeliefert sofern diese verfügbar ist.
Distributionen Der Apache HTTP Server ist in fast allen Linux-Distributionen und in macOS standardmäßig enthalten. Eine beliebte Entwicklungs-Distribution für Windows, Linux und Mac OS X ist XAMPP.
Wichtige Versionen Apache 1.x: Diese Version wurde erstmals im Jahre 1995 veröffentlicht. Die Weiterentwicklung des letzten Entwicklungszweiges 1.3.x lief im Februar 2010 aus. Seitdem wurde Version 1 nur noch, falls erforderlich, mit Sicherheitsupdates versorgt. Inzwischen ist auch die Versorgung mit Sicherheitsupdates eingestellt. Apache 2.x: Diese Version wurde erstmals im März 2000 veröffentlicht. Von dieser Version wird nur noch der Entwicklungszweig 2.4 mit Sicherheitsupdates und Weiterentwicklungen versorgt.
Versionsübersicht
Apache 1
Apache 1.0 Version VeröffentlichungApache Release History (englisch) April 1996
Apache 1.3 Version Veröffentlichung 6. Juni 1998 22. Juli 1998 23. September 1998 9. Oktober 1998 11. Januar 1999 nicht veröffentlicht 24. März 1999 nicht veröffentlicht nicht veröffentlicht 19. August 1999 nicht veröffentlicht 21. Januar 2000 25. Februar 2000 nicht veröffentlicht 13. Oktober 2000 nicht veröffentlicht nicht veröffentlicht 29. Januar 2001 nicht veröffentlicht 1. März 2001 1. Mai 2001 nicht veröffentlicht 12. Oktober 2001 21. Januar 2002 22. März 2002 nicht veröffentlicht 18. Juni 2002 3. Oktober 2002 16. Juli 2003 29. Oktober 2003 nicht veröffentlicht 11. Mai 2004 nicht veröffentlicht 29. Oktober 2004 18. Oktober 2005 1. Mai 2006 17. Mai 2006 28. Juli 2006 nicht veröffentlicht 7. September 2007 nicht veröffentlicht 19. Januar 2008 2. Februar 2010
Apache 2
Apache 2.0 Version Veröffentlichung 10. März 2000 31. März 2000 28. April 2000 7. Juni 2000 4. August 2000 18. August 2000 8. Oktober 2000 20. November 2000 12. Dezember 2000 nicht veröffentlicht 13. November 2001 nicht veröffentlicht 16. Februar 2002 nicht veröffentlicht 5. April 2002 6. Mai 2002 nicht veröffentlicht 17. Juni 2002 9. August 2002 nicht veröffentlicht 24. September 2002 3. Oktober 2002 20. Januar 2003 1. April 2003 28. Mai 2003 9. Juli 2003 29. Oktober 2003 19. März 2004 30. Juni 2004 15. September 2004 28. September 2004 7. Februar 2005 17. April 2005 16. Oktober 2005 nicht veröffentlicht 1. Mai 2006 28. Juli 2006 nicht veröffentlicht 7. September 2007 nicht veröffentlicht 19. Januar 2008 19. Oktober 2010 10. Juli 2013
Apache 2.2 Version Veröffentlichung 1. Dezember 2005 nicht veröffentlicht 1. Mai 2006 28. Juli 2006 9. Januar 2007 nicht veröffentlicht 7. September 2007 nicht veröffentlicht 19. Januar 2008 14. Juni 2008 14. Oktober 2008 14. Dezember 2008 28. Juli 2009 8. August 2009 3. Oktober 2009 5. März 2010 25. Juli 2010 18. Oktober 2010 11. Mai 2011 21. Mai 2011 20. August 2011 13. September 2011 31. Januar 2012 13. September 2012 26. Februar 2013 10. Juli 2013 18. November 2013 26. März 2014 3. September 2014 17. Juli 2015 13. Januar 2017 nicht veröffentlicht 11. Juli 2017
Apache 2.3 Version Veröffentlichung nicht veröffentlicht 8. Dezember 2009 26. Januar 2010 17. Juni 2010 nicht veröffentlicht 31. August 2010 nicht veröffentlicht 21. Dezember 2010 7. März 2011 23. Mai 2011 nicht veröffentlicht 9. August 2011 15. November 2011 20. Dezember 2011
Apache 2.4 Version Veröffentlichung nicht veröffentlicht 17. Februar 2012 17. April 2012 (Linux) 17. Mai 2012 (Windows) 21. August 2012 25. Februar 2013 11. Juli 2013 22. Juli 2013 25. November 2013 17. März 2014 21. Juli 2014 29. Januar 2015 15. Juli 2015 13. Oktober 2015 14. Dezember 2015 11. April 2016 16. Juni 2016 20. Juni 2016 5. Juli 2016 16. Dezember 2016 20. Dezember 2016 19. Juni 2017 11. Juli 2017 5. Oktober 2017 23. Oktober 2017 26. März 2018 16. Juli 2018 22. September 2018 10. Oktober 2018 23. Oktober 2018 17. Januar 2019 27. März 2019 2. August 2019 14. August 2019 19 Mar 2020 26. März 2020 28. Juli 2020 29. Juli 2020 7. August 2020 22. April 2021 17. Mai 2021 15. September 2021 4. Oktober 2021 7. Oktober 2021 20. Dezember 2021 14. März 2022 8. Juni 2022 17. Januar 2023 20. März 2023 6. April 2023 19. Oktober 2023 4. April 2024 1. Juli 2024
Module mini|Ausgabe von mod_status Der Apache-Server kann mit sogenannten Modulen um Zusatzfunktionen erweitert werden. Dazu gehören unter anderem: SSL (mod_ssl für OpenSSL, mod_gnutls für GnuTLS) Einbindung und Verwendung von dynamischen Skriptsprachen (u. a. mod_php, mod_perl, mod_python) Unterstützung von zusätzlichen Protokollen (WebDAV: mod_dav, mod_dav_fs, mod_dav_lock, mod_dav_repos) Authentifizierung (mod_auth*) Weiterleitung an andere Server (mod_proxy) Umschreiben und Weiterleitung von Anfragen (mod_rewrite; letzteres mit Hilfe von mod_proxy) Änderungen an Headerzeilen (mod_header) Automatische Informationen über Dateitypen (mod_mime, mod_mime_magic) Automatische Erzeugung von Statusberichten (mod_status)