Mster
Daniel Rodrguez Daniel Rodrguez
Departamento de Ciencias de la Computacin
Universidad de Alcal
Contenidos Contenidos
Conceptos bsicos Conceptos bsicos
Apache
Instalacin
Servidores virtuales
Autenticacin de usuarios
Monitorizacin y optimizacin del servidor Apache y
Apache y la generacin de contenido dinmico
Seguridad
IIS (Internet Information Server) IIS (Internet Information Server)
Instalacin
Servidores virtuales
Seguridad Seguridad
Agradecimientos:
Transparencias de Apache basadas en Alberto Abin, UAH.
Servidores Web
Daniel Rodrguez
2
Conceptos bsicos Conceptos bsicos
Protocolo HTTP Protocolo HTTP
El t l d t f i d hi t t (HTTP H T t El protocolo de transferencia de hipertexto (HTTP, HyperText
Transfer Protocol) es el protocolo usado en cada transaccin de la
Web (WWW).
Desarrollado por el consorcio W3C y la IETF, colaboracin que culmin en 1999
con la publicacin de una serie de RFCs, siendo el ms importante de ellos el
RFC 2616, que especifica la versin 1.1.
HTTP define la sintaxis y la semntica que utilizan los elementos
software de la arquitectura Web (clientes, servidores, proxies) para
comunicarse.
Es un protocolo orientado a transacciones y sigue el esquema peticin-
respuesta entre un cliente y un servidor. Al cliente que efectua la peticin (un
navegador o un spider) se lo conoce como "user agent" (agente del usuario). A
l i f i t itid l ll l id tifi di t URL la informacin transmitida se la llama recurso y se la identifica mediante un URL.
Los recursos pueden ser archivos, el resultado de la ejecucin de un programa,
una consulta a una base de datos, la traduccin automtica de un documento,
etc
Servidores Web
Daniel Rodrguez
4
etc.
HTTP Protocolo sin Estado HTTP Protocolo sin Estado
HTTP t l i t d d i l d HTTP es un protocolo sin estado, es decir, en general no guarda
ninguna informacin sobre conexiones anteriores.
El desarrollo de aplicaciones web necesita frecuentemente mantener
estado. Para esto se usan las cookies, que es informacin que un estado. Para esto se usan las cookies, que es informacin que un
servidor puede almacenar en el sistema cliente.
Esto le permite a las aplicaciones web instituir la nocin de "sesin", y
t bi it t i l ki d tambin permite rastrear usuarios ya que las cookies pueden
guardarse en el cliente por tiempo indeterminado.
Servidores Web
Daniel Rodrguez
5
HTTP HTTP
L i ll b t li t id La conversacin que se lleva a cabo entre un cliente y un servidor
se realiza mediante texto normal. Sobre Internet el protocolo est
sobre TCP y generalmente sobre el puerto 80. El cliente enva al
servidor la siguiente informacin (de manera absolutamente
transparente):
1. El mtodo de la peticin (GET o POST). p ( )
2. El nombre del documento que desea.
3. La versin de protocolo HTTP que se emplear en la comunicacin.
4. Una lista de los tipos de datos que est dispuesto a aceptar (por ejemplo, si p q p p (p j p ,
tenemos deshabilitada la opcin de cargar grficos, no incluir el tipo grfico en
la lista).
5. Su propio nombre y versin.
6. Ms cosas como el cliente que es, etc. y una lnea en blanco para indicar el
final.
Servidores Web
Daniel Rodrguez
6
HTTP Mtodos principales HTTP Mtodos principales
Principalmente, se dan los siguientes mtodos:
GET
Devolver un fichero
POST
E i d t l id Enviar datos al servidor
Ejemplos:
ht t p: / / www. uah. es/ GET / HTTP/ 1. 0 p
ht t p: / / www. uah. es/ i ndex. ht ml GET / i ndex. ht ml HTTP/ 1. 0
ht t p: / / www. uah. es/ pr og/ appl . ht ml GET / pr og/ appl . ht ml HTTP/ 1. 0
Servidores Web
Daniel Rodrguez
7
Protocolo HTTP Protocolo HTTP
Para obtener un recurso con el URL ht t p: / / www exampl e com/ i ndex ht ml Para obtener un recurso con el URL ht t p: / / www. exampl e. com/ i ndex. ht ml
1. Se abre un con el host www.tuhost.example, puerto 80 que es el puerto por defecto para HTTP.
2. Se enva un mensaje en el estilo siguiente:
GET / i ndex. ht ml HTTP/ 1. 1
Host : www. exampl e. com
User - Agent : HTTPTool / 1. 0
Connect i on: cl ose
[ L nea en bl anco]
La respuesta del servidor est formada por encabezados seguidos del recurso
solicitado, en el caso de una pgina Web:
HTTP/ 1. 1 200 OK
Dat e: Fr i , 31 Dec 2003 23: 59: 59 GMT
Cont ent - Type: t ext / ht ml
Cont ent - Lengt h: 1221
<ht ml ><body>
<h1>Pgi na pr i nci pal de t uHost </ h1>
. . .
</ b d ></ ht l >
Servidores Web
Daniel Rodrguez
8
</ body></ ht ml >
HTTP Cdigos de retorno HTTP Cdigos de retorno
200 OK 200 OK
201 Created
202 Accepted
204 N C t t 204 No Content
301 Moved Permanently
302 Moved Temporarily
304 Not Modified
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error 500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
Servidores Web
Daniel Rodrguez
9
503 Service Unavailable
HTTP y las capas inferiores HTTP y las capas inferiores
Servidores Web
Daniel Rodrguez
10
MIME Types MIME Types
MIME "M lti I t t M il E t i " (MIME MIME "Multipurpose Internet Mail Extensions" (MIME
definido en RFC 1521) se defini como estndar para
enviar por correo electrnico con datos binarios. p
Los usos tpicos de MIME incluyen el envo de imgenes, audio,
documentos de procesadores de texto o incluso ficheros de texto
cuando es importante que sistema de correo no modifique ninguna
parte del fichero.
MIME permite adems etiquetar partes de un mensaje para que el
receptor (o programa de correo) puede determinar que hacer con l.
El algoritmo Base64 se utiliza para convertir ficheros
binarios a texto y viceversa.
Este mismo concepto se a aplicado en la Web para el Este mismo concepto se a aplicado en la Web para el
envo sobre el protocolo HTTP de las diferentes partes de
las que se compone un documento en HTML
Servidores Web
Daniel Rodrguez
11
Ejemplo Fichero mi me. t ypes je p o c e o e. t ypes
# Thi s f i l e cont r ol s what I nt er net medi a t ypes ar e sent t o t he cl i ent f or
# gi ven f i l e ext ensi on( s) Sendi ng t he cor r ect medi a t ype t o t he cl i ent # gi ven f i l e ext ensi on( s) . Sendi ng t he cor r ect medi a t ype t o t he cl i ent
# i s i mpor t ant so t hey know how t o handl e t he cont ent of t he f i l e.
# Ext r a t ypes can ei t her be added her e or by usi ng an AddType di r ect i ve
# i n your conf i g f i l es. For mor e i nf or mat i on about I nt er net medi a t ypes,
# pl ease r ead RFC 2045, 2046, 2047, 2048, and 2077. The I nt er net t ype
# r egi st r y i s at <ht t p: / / www. i ana. or g/ assi gnment s/ medi a- t ypes/ >.
# MI ME t ype Ext ensi ons yp
appl i cat i on/ act i vemessage
appl i cat i on/ andr ew- i nset ez
appl i cat i on/ appl ef i l e
appl i cat i on/ at om+xml at om appl i cat i on/ at om+xml at om