This article is available in: English Castellano Deutsch Francais Italiano Nederlands Russian Turkce |
por Sobre el autor: Presidente de un club gastronómico en Paris. Ama la filosofía GNU y Open Source, ya que esta dentro del mismo orden de ideas, el de compartir conocimientos. Le gustaría tener tiempo para tocar Saxofón. Contenidos:
|
Resumen:
Este articulo es la primera parte de una serie de articulos sobre el servidor HTTP ( WEB ) el más utilisado en el mundo: Apache. En esta primera parte, vamos a ver la historia del WEB, el protocolo HTTP, así como las funciones básicas de Apache.
Apache es el nombre de un proyecto de servidor WEB libre. El nombre apache tiene un origen un poco discutido, algunos disen que viene de "a patchy server" debido a numerosos patchs del principio (otro truco de Hacker :), otros dicen de una manera más seria que los instigadores de este proyecto tomaron el nombre en memoria de los Apaches por su gran adaptabilidad al terreno.
Este servidor es el más utilizado en internet. Respeta el protocolo HTTP (1.1) normalizado por el W3C (WWW Consortium).
Según los estudios de netcraft de Junio de 1999, apache es utilizado en en 56.19 % de los servidores.
Un servidor WEB es el programa "server" que responde a las peticiones de los clientes web, como por ejemplo un browser WEB, lynx :).
telnet www.linuxfocus.org 80 Trying 195.53.25.18... Connected to nova.linuxfocus.org. Escape character is '^]'. GET / HTTP/1.0 <return> <return> HTTP/1.1 200 OK Date: Mon, 27 Sep 1999 21:23:20 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Last-Modified: Sun, 26 Sep 1999 16:40:44 GMT ETag: "4b005-1616-37ee4c8c" Accept-Ranges: bytes Content-Length: 5654 Connection: close Content-Type: text/html <PAGE HTML> |
Analizemos el resultado :
Primero que nada, la primera linea indica el protocolo utilizado para la respuesta, después el código retornado por el servidor (los códigos superiores a 400 indican un error). Después la fecha, el tipo de servidor, la fecha de la última modificación (esto permite al cliente web saber si lo que hay en su cache es valido o no). Content-Length indica el tamaño del documento enviado (No hay Content-Length para los scripts CGI), el Content-Type da a su cliente WEB el type MIME de lo que es enviado (texto, html, imágenes ...)
No he descrito todo ya que ciertas cosas me son desconocidas. :)
Veamos ahora el caso de un error...
telnet www.linuxfocus.org 80 Trying 195.53.25.18... Connected to nova.linuxfocus.org. Escape character is '^]'. get / HTTP/1.0 <return> <return> HTTP/1.1 501 Method Not Implemented Date: Mon, 27 Sep 1999 21:22:03 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Allow: GET, HEAD, OPTIONS, TRACE Connection: close Content-Type: text/html |
Como ustedes lo pueden ver, el encabezado de la respuesta habla de si misma.
El protocolo HTTP es muy simple, como veremos en pequeños ejemplos :
telnet www.linuxfocus.org 80 Trying 195.53.25.18... Connected to nova.linuxfocus.org. Escape character is '^]'. GET / < return > < return > |
Con el comando telnet nos hemos conectado con la máquina www.linuxfocus.org (dirección IP 195.53.25.1) a través del puerto 80, el habitual para este protocolo. El servidor del otro lado está en espera de una petición. Usted escribió GET / y dos veces retorno de carro (enter).
Porqué los dos retornos de carro ?, bueno esto indica el final de su petición (usted envió una linea vacia). El servidor entonces le responde enviandole el documento solicitado ( index.html ).
Al final de la transferencia, la se cierra la conexión. Como usted puede constatar, el lenguaje entre el browser web y el servidor es muy simple. Pero atención, esto se complica con las versiones de HTTP :
GET / HTTP/1.0< return > < return > HTTP/1.1 200 OK Date: Tue, 24 Aug 1999 22:25:11 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Last-Modified: Sun, 01 Aug 1999 11:50:52 GMT ETag: "4b005-1462-37a4349c" Accept-Ranges: bytes Content-Length: 5218 Connection: close Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ....y finalmente si hacemos :
HTTP/1.1 400 Bad Request Date: Tue, 24 Aug 1999 22:24:59 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Connection: close Transfer-Encoding: chunked Content-Type: text/html GET / HTTP/1.1 <return > < return > 12e <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>400 Bad Request</TITLE> </HEADBODY> <H1>Bad Request</H1> Your browser sent a request that this server could not understand.<P> client sent HTTP/1.1 request without hostname (see RFC2068 section 9, and 14.23): </P> </BODY></HTML>Efectivamente con el nuevo protocolo HTTP/1.1 la petición necesita más información. La petición debe comprender varias lineas. Este añadido permite transmitir al servidor más información para mejores intercambios.
Este protocolo esta en la versión 1.1, y la gente de apache ha respetado al pie de la letra las especificaciones. El nuevo protocolo ofrece un gran número de nuevas funciones como autentificación del sitio virtual (varios sitios pueden tener una sola dirección IP. Ver nslookup). Ejemplo :
GET / HTTP/1.0< return > Host:www.linuxfocus.org< return > < return > [...]Como la mayor parte de programas clientes servidores, el servidor cuando recibe una petición,
Efectivamente, el cliente WEB le envía su petición, y el servidor le regresa las páginas html correspondientes a la URL solicitada. El cliente solicitará las imágenes que se encuentran dentro de ellas y el servidor las enviará igualmente. Pero él puede, siguiendo la petición, hacer la interface con algunos programas del sistema, elejidos o escritos por el administrador del sitio (llamado WebMaster); estos programas son llamados scripts CGI ( Common gateway interface ) y regresan una página html. Veremos en la siguiente, que podemos añadir nuevas funciones al servidor WEB mediante la técnica de módulos. Ok! las funcionalidades de base del servidor HTTPD han sido presentadas.
Veremos en los próximos articulos la configuración, los módulos de apache (con los hosts virtuales, ciertos módulos que permiten más dinamismo en sus páginas HTML ( php, perl etc ... ), el módulo SSL ( Secure Socket Layer ), y por terminar la compilación de Apache.
|
Contactar con el equipo de LinuFocus © Charles vidal, FDL LinuxFocus.org Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus |
Información sobre la traducción:
|
2001-03-30, generated by lfparser version 2.9