1. Servidor web.
Es un programa que atiende y responde a las diversas
peticiones de los navegadores, proporcionándoles los
recursos que solicitan mediante el protocolo HTTP o el
protocolo HTTPS (la versión segura, cifrada y
autenticada de HTTP). Un servidor web básico tiene un
esquema de funcionamiento muy sencillo, ejecutando de
forma infinita el bucle siguiente:
2. 1. Espera peticiones en el puerto TCP asignado (el estándar
para
HTTP es el 80).
2. Recibe una petición.
3. Busca el recurso en la cadena de petición.
4. Envía el recurso por la misma conexión por donde ha
recibido la
petición.
5. Vuelve al punto 2.
3. Un servidor web que siguiese el esquema anterior
cumpliría los requisitos básicos de los servidores HTTP,
aunque, eso sí, sólo podría servir ficheros estáticos.
A partir del esquema anterior se han diseñado y
construido todos los programas servidores de HTTP que
existen, variando sólo el tipo de peticiones (páginas
estáticas, CGI, Servlets, etc.) que pueden atender, en
función de que sean o no multi-proceso, multi-hilados,
etc. Algunas de las características principales de los
servidores web, que extienden, el esquema anterior son:
4. Servicio de ficheros estáticos
Todos los servidores web deben incluir, al menos, la
capacidad para servir ficheros estáticos que se
encuentren en alguna parte concreta del disco.
Imprescindible es la capacidad de especificar qué parte
del disco se servirá. Absolutamente no es recomendable
que el servidor obligue a usar un directorio concreto, si
bien puede tener uno por defecto. La mayoría permiten,
además, añadir otros directorios para servir,
especificando en qué punto del “sistema de ficheros”
virtual del servidor se ubicarán.
5. Puede existir la siguiente situación:
En este caso, el servidor debería traducir las siguientes
direcciones web de la siguiente manera:
6. Algunos servidores web permiten, además, especificar
directivas de seguridad (para qué direcciones, usuarios,
etc., está visible un directorio, etc.), mientras que otros
hacen posible especificar qué ficheros se considerarán
como índice del directorio.
7. Seguridad y autenticación.
La mayoría de los servidores web modernos permiten
controlar desde el programa servidor aquellos aspectos
relacionados con la seguridad y la autenticación de los
usuarios. El modo más simple de control es por el uso de
ficheros .htaccess. Proviene de uno de los primeros
servidores web (del NCSA httpd), que consiste en poner
un fichero .htaccess en cualquier directorio del contenido
web que se vaya a servir, indicando en este fichero qué
usuarios, máquinas, etc., tienen acceso a los ficheros y
subdirectorios del directorio donde está el fichero.
8. Como el servidor de NCSA fue el servidor más usado
durante mucho tiempo, la mayoría de servidores
modernos permiten utilizar el fichero .htaccess
respetando la sintaxis del servidor de NCSA.
Otros servidores permiten especificar reglas de servicio
de directorios y ficheros en la configuración del servidor
web, indicando allí qué usuarios, máquinas, etc., pueden
acceder al recurso indicado.