# Servidor HTTP Apache

Apache HTTP Server és un servidor HTTP (de pàgines web) de codi obert multiplataforma desenvolupat per Apache Software Foundation.
Quan va començar el seu desenvolupament l'any 1995, es basava inicialment en el codi del popular NCSA HTTPd 1.3, però més tard es reescriuria completament.
El servidor Apache es desenvolupa dins del projecte HTTP Server (httpd) de l'Apache Software Foundation.
Apache presenta entre altres característiques missatges d'error altament configurables, bases de dades d'autenticació i negociació de continguts, però va ser criticat per la manca d'una interfície gràfica que ajudi a configurar-lo.
Des d'abril de 1996 Apache ha estat el servidor HTTP més popular a la World Wide Web; des de març de 2006, tot i això, ha experimentat una declinació de la seva quota de mercat, perduda en major part contra Microsoft Internet Information Services i .NET, fet servir per alguns dels grans proveidors de blogs. En octubre de 2007 Apache va servir el 27,73% de tots els llocs web encara que recentment ha tingut un petita remuntada.
El 30 de novembre de 2007, Apache servia el 50,76% de tots els llocs web.
El 30 d'abril de 2012, Apache servia el 57,56% de tots els llocs web. I un 65,24% dels servidors més transitats de tots els dominis.

## Història

La primera versió del servidor web Apache va ser creada per Robert McCool, que va participar intensament al servidor web National Center for Supercomputing Applications, conegut simplement com a NCSA HTTPd. Quan Rob va deixar el NCSA a mitjans de 1994, el desenvolupament de httpd es va paralitzar, deixant diversos patches per a millores circulant per e-mails.
Rob McCool no estava sol als seus esforços. Varis desenvolupadors més van ajudar a crear el "Apache Group" original: Brian Behlendor, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters i Nicolas Pioch.
La versió 2 del servidor Apache va ser una reescritpura substancial de moltes parts del codi d'apache 1.x, amb un fort enfocament en ampliar la seva modularitat i el desenvolupament d'una capa de portabilitat, la Apache Portable Runtime. El nucli d'Apache 2.x té diverses millores importants sobre Apache 1.x. Aquestes inclouen fils de UNIX, millor suport per a plataformes no-Unix (com ara Microsoft Windows), una nova API, i suport per a IPv6.
LA primera versio alfa de apache 2 fou en Març de l'any 2000, i la primera versió disponible oficialment el 6 d'abril de l'any 2002.
La versió 2.2 va introduir una nova API d'autorització que permet més flexibilitat. També ofereix mòduls de cache millorats i mòduls proxy.

## Funcionalitats

Apache suporta diverses funcionalitats, moltes implementades com a mòduls compilats que estenen la funcionalitat del nucli. Aquests poden incloure des de suport a llenguatges de programació de servidor fins a esquemes d'autenticació. Algunes interfícies de llenguatge comunes suporten mod_perl, mod_python, Tcl, i PHP. Alguns mòduls d'autenticació populars inclouen mod_access, mod_auth i mod_digest. Algunes altres característiques són suport per a SSL i TLS (mod_ssl), un mòdul proxy, un reescriptor d'URL (també conegut com a rewrite engine), implementat sota mod_rewrite), fitxers de log personalitzats (mod_log config), i suport al filtratge (mod_include i mod_ext_filter).
Mètodes populars de compressió a Apache inclouen el mòdul d'extensió externa mod_gzip, implementat per a ajudar a la reducció del pes de les pàgines web servides sobre HTTP. Els logs d'Apache poden ser analitzats mitjançant un navegador web fent servir scripts lliures com ara AWStats/W3Perl o Visitors.
El virtual hosting permet a una instal·lació d'Apache servir molts llocs web diferents. Per exemple, una màquina, amb una instal·lació d'apache podria servir al mateix temps www.exemple.com, www.prova.com, prova47.servidor-prova.prova.com, etc.
Apache ofereix missatges d'error personalitzables, bases de dades d'autenticació basades en SGBD, i negociació de continguts. També està suportat per diverses interfícies gràfiques d'usuari (GUIs) que permeten configurar el servidor més fàcilment i intuïtivament.

## Ús

Apache és utilitzat principalment per a servir tant contingut estàtic i pàgines web dinàmiques a la World Wide Web. Moltes aplicacions web s'han dissenyat fent servir l'entorn i les funcionalitats que Apache ofereix.
Apache és el component de servidor web del popular paquet LAMP, que també inclou MySQL i els llenguatges de programació PHP/Perl/Python.
Apache és redistribuït com a part de diversos paquets de programari propietaris com ara Oracle Database o el servidor d'aplicacions IBM WebSphere. Mac OS X integra Apache com a servidor web integrat i com a suport per als seu servidor d'aplicacions WebObjects. Està suportat d'alguna forma per Borland en les eines de desenvolupament Kylix i Delphi. Apache s'inclou amb Novell NetWare 6.5, on és el servidor web per defecte.
Apache es fa servir per a moltes altres tasques on es necessita que els continguts siguin disponibles de manera segura i fiable. Un exemple és la compartició de fitxers d'un ordinador personal sobre Internet. Un usuari que té Apache instal·lat al seu ordinador pot posar els arxius que vulgui a l'arrel de documents d'Apache i aquests podran llavors ser compartits.
Els programadors que desenvolupen aplicacions web sovint fan servir una versió d'Apache instal·lada localment per a assajar i provar codi a mesura que va sent desenvolupat.
Microsoft Internet Information Services (IIS) és el competidor principal d'Apache, seguit pel Sun Java System Web Server de Sun Microsystems i altres aplicacions com ara Zeus Web Server.

## Mòduls

L'arquitectura del servidor Apache és molt modular. El servidor consta d'una secció core i molta de la funcionalitat que es podria considerar bàsica per un servidor web està en forma de mòduls. Alguns d'aquests són:
* mod_ssl - Comunicacions segures via TLS.
* mod_rewrite - Reescriptura de direccions servides (se sol usar per transformar pàgines dinàmiques com php a pàgines estàtiques html per així enganyar els navegadors o els motors de cerca de com es van fer les pàgines).
* mod_dav - Suport del protocol WebDAV (RFC 2518).
* mod_deflate - Compressió transparent amb l'algoritme deflate del contingut enviat al client.
* mod_auth_ldap - Permet autentificar usaris a un servidor LDAP.
* mod_proxy_ajp - Connector per enllaçar amb el servidor Jakarta Tomcat de pàgines dinàmiques Java (servlets i JSP).
El servidor de base es pot estendre mitjançant la inclusió de mòduls externs, entre els quals trobem:
* mod_perl - Pàgines dinàmiques amb Perl.
* mod_php - Pàgines dinàmiques amb PHP.
* mod_python - Pàgines dinàmiques amb Python.
* mod_rexx - Pàgines dinàmiques amb REXX i Object REXX.
* mod_ruby - Pàgines dinàmiques amb Ruby.
* mod_aspdotnet - Pàgines dinàmiques amb .NET_de_Microsoft.

## Vegeu també

* Apache Software Foundation
* Apache Tomcat
* Apache Ant
* Log4j

## Referències

* 1 2 «About the Apache HTTP Server Project» (en anglès). Apache Software Foundation. Arxivat de l'original el 7 de juny de 2008. [Consulta: 25 febrer 2016].
* ↑ «Apache HTTP Server 2.4.18 Released» (en anglès). Apache Software Foundation. [Consulta: 25 febrer 2016].
* ↑ «Languages» (en anglès). Black Duck Open Hub. [Consulta: 25 febrer 2016].
* ↑ «Webservers' Market Shares». Netcraft. Arxivat de l'original el 2010-05-20. [Consulta: 20 setembre 2007].
* ↑ «[[Netcraft]] Web Server Survey». Arxivat de l'original el 2010-05-20. [Consulta: 22 gener 2008].
* ↑ «octubre 2007». Netcraft. Arxivat de l'original el 2010-05-20. [Consulta: 13 octubre 2007].
* ↑ «març 2012 Web Server Survey». Netcraft. [Consulta: 5 març 2012].
* ↑ «Apache 2 Release». England: Apache Week, 06-04-2002.

## Enllaços externs

* Lloc web del projecte (anglès)
* Apache Software Foundation (anglès)
* Wiki amb informació sobre Apache. Continguts lliures d'un curs d'administració Linux Arxivat 2010-01-26 a Wayback Machine. (català)
* Com instal·lar Apache a Windows (castellà)
* Mòdul Hello world! per a Apache 2.2 (anglès)