servidor web

5
UNIANDES UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES FACULTAD DE SISTEMAS MERCANTILES CARRERA DE SISTEMAS MODALIDAD PRESENCIAL TEMA:SERVIDORES WEB AUTORES: ANDRES LUZÓN TUTOR: ING. DIEGO PALMA FECHA: 06/02/2013 NIVEL: QUINTO PERIODO OCTUBRE 2012ABRIL 2013

Upload: andres-luzon

Post on 22-Jul-2015

145 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Servidor web

UNIANDES

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES

FACULTAD DE SISTEMAS MERCANTILES

CARRERA DE SISTEMAS

MODALIDAD PRESENCIAL

TEMA:SERVIDORES WEB

AUTORES: ANDRES LUZÓN

TUTOR: ING. DIEGO PALMA

FECHA: 06/02/2013

NIVEL: QUINTO

PERIODO OCTUBRE 2012–ABRIL 2013

Page 2: Servidor web

SERVIDOR WEB

Un servidor web es un programa que sirve para atender y responder a las diferentes

peticiones de los navegadores, proporcionando los recursos que soliciten usando el

protocolo HTTP o el protocolo HTTPS (la versióncifrada y autenticada). Un servidor

web básico cuenta con un esquema de funcionamiento muy simple, basado en ejecutar

infinitamente el siguiente bucle:

1. Espera peticiones en el puerto TCP indicado (el estándar por defecto para HTTP

es el 80).

2. Recibe una petición.

3. Busca el recurso.

4. Envía el recurso utilizando la misma conexión por la que recibió petición.

5. Vuelve al segundo punto.

Un servidor web que siga el esquema anterior cumplirá todos los requisitos básicos de

los servidores HTTP, aunque sólo podrá servir ficheros estáticos.

A partir del anterior esquema se han diseñado y desarrollado todos los servidores de

HTTP que existen, variando sólo el tipo de peticiones (páginas estáticas, CGIs, Servlets,

etc.) que pueden atender, en función de que sean o no sean multi-proceso o multi-

hilados, etc. A continuación se detallan algunas de las características básicas de los

servidores web, que amplían, obviamente el esquema anterior.

Servicio de ficheros estáticos

Todos los servidores web deben incluir, al menos, la capacidad para servir los ficheros

estáticos que se hallen en alguna parte del disco. Un requisito básico es la capacidad de

especificar qué parte del disco se servirá. No resulta recomendable que el programa

servidor obligue a usar un directorio concreto, aunque sí puede tener uno por defecto.

La mayoría de servidores web permiten añadir otros directorios o subdirectorios para

servir, especificando en qué punto del "sistema de ficheros" virtual del servidor se

localizarán los recursos.

Algunos servidores web permiten también especificar directivas de seguridad (quién

puede acceder a los recursos), mientras que otros hacen posible la especificación de los

ficheros que se deben considerar como índice del directorio.

Page 3: Servidor web

Seguridad y autenticación

La mayoría de los servidores web actuales permiten controlar desde el programa

servidor los aspectos relacionados con la seguridad y la autenticación de los usuarios.

Podemos, por ejemplo, tener la siguiente situación:

Directorio del disco Directorio web

/home/apache/html /

/home/empresa/docs /docs

/home/jose/informe /informe-2003

En este caso, el servidor debería traducir las direcciones web de esta manera:

URL Fichero de disco

/index.html /home/apache/html/index.html

/docs/manuales/producto.pdf /home/empresa/docs/manuales/producto.pdf

/empresa/quienes.html /home/apache/html/empresa/quienes.html

/informe-2003/index.html /home/jose/informe/index.html

El modo más sencillo de control es el facilitado por el uso de ficheros .htaccess. Se trata

de un sistema de seguridad que deriva de uno de los primeros servidores web ("NCSA

httpd"), que consiste en incluir un fichero de nombre .htaccess en cualquier directorio

del contenido web que se deba a servir, indicando en este fichero qué usuarios o

máquinas, etc. tienen acceso a los ficheros y a los diferentes subdirectorios del

directorio donde está instalado el .htaccess. Como el "NCSA httpd" fue el servidor más

utilizado durante mucho tiempo, la mayoría de servidores actuales permiten utilizar un

fichero .htaccess respetando la sintaxis original del servidor de NCSA.

Hay otros servidores que permiten especificar reglas de servicio de directorios,

subdirectorios y ficheros en la configuración del programa servidor web, indicando qué

usuarios, máquinas, etc. tienen acceso al recurso indicado. En cuanto a la autenticación

(validación del nombre de usuario y la contraseña o clave indicados por el cliente), las

prestaciones ofrecidas por los diferentes servidores web son variopintas. La mayoría

permite, al menos, facilitar al servidor web un fichero con nombres de usuario y

contraseñas mediante el cual se pueden validar los datos enviados desde el cliente. De

todas formas, es frecuente que los servidores faciliten pasarelas que permiten delegar las

tareas de autenticación y validación en otro software (como RADIUS, LDAP, etc.). Si

se utiliza un sistema operativo como Linux, el cual dispone de una infraestructura para

autenticación como PAM ("pluggableauthentication modules"), se puede usar tal

funcionalidad como modo de autenticación del servidor web, permitiéndo de este modo

utilizar los múltiples métodos disponibles en PAM para autenticar contra diversos

sistemas de seguridad.

Page 4: Servidor web

Contenido dinámico

Uno de los aspectos fundamentales del servidor web elegido es el nivel de soporte que

ofrece para servir contenido dinámico. Puesto que la mayor parte del contenido web que

se sirve no viene de páginas estáticas, sino que se genera de forma dinámica, y esta

tendencia se mueve claramente al alza, el soporte para contenido de tipo dinámico que

ofrece un servidor web es uno de los puntos críticos en la elección.

La mayor parte de los servidores web ofrecen soporte para CGI (se debe recordar que

los CGI son el método más antiguo y sencillo para generar contenido dinámico). Otros

muchos ofrecen soporte para algunos lenguajes de programación (normalmente

lenguajes interpretados) como PHP, JSP, ASP, etc. Es muy recomendable que el

servidor web que vayamos a utilizar proporcione soporte para algunos de estos

lenguajes, especialmente PHP, sin tener en cuenta JSP, que normalmente requerirá un

software externo para funcionar (como un contenedor de Servlets). La oferta es muy

amplia, pero antes de elegir un lenguaje de programación de servidor se debe plantear si

se desea un lenguaje muy estándar para que la aplicación no dependa de un servidor

web o una arquitectura concreta o si, al contrario, la portabilidad no es prioritaria y sí lo

es alguna otra prestación concreta que pueda ofrecer algún lenguaje de programación

concreto.

Servidores virtuales

Una prestación que gana aceptación y usuarios rápidamente, muy especialmente entre

los proveedores de servicios de Internet y las empresas de alojamiento de dominios, es

la capacidad de algunos servidores web de facilitar múltiples dominios con una única

dirección IP, discriminando entre los diferentes dominios alojados en función del

nombre de dominio enviado en la cabecera HTTP. Esta prestación permite la

administración racional y ahorradora de un bien escaso, las direcciones IP. Si se

necesitan muchos nombres de servidor (porque proporcionamos alojamiento o por

cualquier otro motivo) debemos asegurarnos de que el servidor web elegido ofrezca esta

facilidad y que el soporte que ofrece para servidores virtuales permita una configuración

distinta para cada servidor. Sería perfecto que cada servidor se comportara como si

fuese un ordenador diferente.

Prestaciones extra

Son muchas las prestaciones que ofrecen los diferentes servidores web para

diferenciarse de la competencia. Algunas son realmente útiles y pueden decidir la

elección de servidor. Hay que ser conscientes, sin embargo, de que si utilizamos algunas

de estas características, o si éstas devienen imprescindibles, ello nos puede ligar a un

determinado servidor web e imposibilitar una migración posterior.

Algunas características adicionales de ciertos servidores web de código libre son:

Spelling (Apache). Esta prestación permite definir una página de error que se

sirve cuando el servidor no ha encontrado el recurso solicitado. Proporciona una

página web configurable generada por el servidor que muestra, por ejemplo, su

estado de funcionamiento o su nivel de respuesta.

Page 5: Servidor web

RXML Tags (Roxen). Añade al lenguaje HTML algunos tags (etiquetas,

comandos de HTML), mejorados que permiten generar contenido dinámico.

SQL Tags (Roxen). Añade al HTML extendido de Roxen (RXML, antes

mencionado), ciertos comandos para acceder a bases de datos SQL desde las

páginas HTML.

Graphics (Roxen). Añade al HTML extendido de Roxen (RXML, antes

mencionado), ciertos comandos para generar gráficos, títulos, etc.

Bfnsgd (AOLServer), mod_gd (Apache). Permite realizar gráficos partiendo de

texto y de fuentes True Type.

mod_mp3 (Apache), ICECAST, MPEG (Roxen). Permiten convertir el servidor

web en un servidor eficiente de música (con streaming, etc.).

Throttle (Roxen), mod_throttle (Apache). Facilitan herramientas para limitar la

velocidad del servicio de HTTP, en función del usuario, del servidor virtual, etc.

Nsxml (AOLServer), tDOM (AOLServer), mod_xslt (Apache). Permiten

transformar ficheros XML a partir de XSL.

KillFrame (Roxen). Envía con cada página web un código que evita que la web

quede enmarcada (como "frame") dentro de otra página web. En cierto modo,

evita que nos "roben" nuestra página web.

Actuación como representantes

Algunos servidores permiten su uso como servidores intermedios (proxy servers). Se

pueden usar los servidores intermedios para diferentes propósitos:

Servir de aceleradores de navegación (uso como proxy-caché).

Servir como aceleradores de acceso frontal para un servidor web, instalando

diferentes servidores web que repliquen los distintos accesos a un servidor

maestro (reverse-proxy o HTTP server acceleration).

Como frontales a algún servidor o algún protocolo.

Ciertos servidores web permiten su uso como servidores intermedios para alguno de los

usos mencionados. Sin embargo, para los 2 primeros usos existen programas específicos

de código libre que son más eficientes, entre los que destaca, por ejemplo, Squid ,que se

considera unánimemente como uno de los mejores productos de proxy.

Hay módulos para diversos servidores web que permiten su uso como frontales para

otros servidores especializados en otros servicios.

Protocolos adicionales

Algunos servidores, no sólo atienden y sirven peticiones HTTP (y HTTPS), sino que

pueden servir también peticiones basadas en otros protocolos o en protocolos

implementados sobre HTTP. Algunos de estos protocolos pueden ser requisitos

fundamentales de nuestro sistema (en función de nuestras necesidades) y decantar

nuestra elección de un programa servidor.