Actualizado el 21 de Marzo del 2018 (Publicado el 25 de Noviembre del 2017)
625 visualizaciones desde el 25 de Noviembre del 2017
3,5 MB
26 paginas
Creado hace 13a (07/11/2010)
Contenidos
Contenidos
Conceptos básicos
• Conceptos básicos
• Apache
– Instalación
– Servidores virtuales
– Autenticación de usuarios
– Monitorización y optimización del servidor Apache
– Apache y la generación de contenido dinámico
– Seguridad
y
• IIS (Internet Information Server)
IIS (Internet Information Server)
– Instalación
– Servidores virtuales
– Seguridad
Seguridad
Agradecimientos:
Servidores Web: Apache e IIS
Máster
Daniel Rodríguez
Daniel Rodríguez
Departamento de Ciencias de la Computación
Universidad de Alcalá
– Transparencias de Apache basadas en Alberto Abián, UAH.
Servidores Web
Daniel Rodríguez
Protocolo HTTP
Protocolo HTTP
Conceptos básicos
Conceptos básicos
– Desarrollado por el consorcio W3C y la IETF, colaboración que culminó en 1999
con la publicación de una serie de RFCs, siendo el más importante de ellos el
RFC 2616, que especifica la versión 1.1.
• HTTP define la sintaxis y la semántica que utilizan los elementos
software de la arquitectura Web (clientes, servidores, proxies) para
comunicarse.
t
l d t
• El protocolo de transferencia de hipertexto (HTTP, HyperText
T t
El
Transfer Protocol) es el protocolo usado en cada transacción de la
Web (WWW).
(HTTP H
i d hi
f
t
t
– Es un protocolo orientado a transacciones y sigue el esquema petición-
i f
respuesta entre un cliente y un servidor. Al cliente que efectua la petición (un
navegador o un spider) se lo conoce como "user agent" (agente del usuario). A
la información transmitida se la llama recurso y se la identifica mediante un URL.
l
URL
– Los recursos pueden ser archivos, el resultado de la ejecución de un programa,
una consulta a una base de datos, la traducción automática de un documento,
etc
etc.
id tifi
ió t
itid
di
ll
t
l
l
Servidores Web
Daniel Rodríguez
2
4
HTTP – Protocolo sin Estado
HTTP Protocolo sin Estado
HTTPHTTP
• HTTP es un protocolo sin estado, es decir, en general no guarda
HTTP
ninguna información sobre conexiones anteriores.
d i
t d
d
t
l
l
i
•
ll
ió
L
La conversación 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 envía al
servidor la siguiente información (de manera absolutamente
transparente):
id
b
li
t
t
• El desarrollo de aplicaciones web necesita frecuentemente mantener
estado. Para esto se usan las cookies, que es información que un
estado. Para esto se usan las cookies, que es información que un
servidor puede almacenar en el sistema cliente.
• Esto le permite a las aplicaciones web instituir la noción de "sesión", y
bié
t
ki
también permite rastrear usuarios ya que las cookies pueden
guardarse en el cliente por tiempo indeterminado.
d
it
t
l
i
(
p
1. El método de la petición (GET o POST).
)
2. El nombre del documento que desea.
3. La versión de protocolo HTTP que se empleará en la comunicación.
4. Una lista de los tipos de datos que está dispuesto a aceptar (por ejemplo, si
j
p ,
(p
q
p
p
p
tenemos deshabilitada la opción de cargar gráficos, no incluirá el tipo gráfico en
la lista).
5. Su propio nombre y versión.
6. Más cosas como el cliente que es, etc. y una línea en blanco para indicar el
final.
Servidores Web
Daniel Rodríguez
5
Servidores Web
Daniel Rodríguez
HTTP – Métodos principales
HTTP Métodos principales
Protocolo HTTP
Protocolo HTTP
• Principalmente, se dan los siguientes métodos:
• GET
– Devolver un fichero
• POST
E i
– Enviar datos al servidor
d t
id
l
Ejemplos:
p
http://www.uah.es/
http://www.uah.es/index.html
http://www.uah.es/prog/appl.html
GET / HTTP/1.0
GET /index.html HTTP/1.0
GET /prog/appl.html HTTP/1.0
• Para obtener un recurso con el URL http://www example com/index html
• Para obtener un recurso con el URL http://www.example.com/index.html
1. Se abre un con el host www.tuhost.example, puerto 80 que es el puerto por defecto para HTTP.
2. Se envía un mensaje en el estilo siguiente:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: HTTPTool/1.0
Connection: close
[Línea en blanco]
•
La respuesta del servidor está formada por encabezados seguidos del recurso
solicitado, en el caso de una página Web:
HTTP/1.1 200 OK
Date: Fri, 31 Dec 2003 23:59:59 GMT
Content-Type: text/html
Content-Length: 1221
<html><body>
<h1>Página principal de tuHost</h1>
.. .
</b d ></ht l>
</body></html>
Servidores Web
Daniel Rodríguez
7
Servidores Web
Daniel Rodríguez
6
8
HTTP – Códigos de retorno
HTTP Códigos de retorno
HTTP y las capas inferiores
HTTP y las capas inferiores
• 200 OK
• 200 OK
• 201 Created
• 202 Accepted
• 204 No Content
t
204 N C t
• 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
• 503 Service Unavailable
Servidores Web
Daniel Rodríguez
MIME Types
MIME Types
9
Servidores Web
Daniel Rodríguez
10
Ejemplo Fichero mime.types
e.types
je p o c e o
MIME "M lti
• MIME "Multipurpose Internet Mail Extensions" (MIME
" (MIME
definido en RFC 1521) se definió como estándar para
enviar por correo electrónico con datos binarios.
t M il E t
I t
p
i
– Los usos típicos de MIME incluyen el envío de imágenes, 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 además 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
envío sobre el protocolo HTTP de las diferentes partes de
las que se compone un documento en HTML
# This file controls what Internet media types are sent to the client for
# given file extension(s)
# given file extension(s). Sending the correct media type to the client
Sending the correct media type to the client
# is important so they know how to handle the content of the file.
# Extra types can either be added here or by using an AddType directive
# in your config files. For more information about Internet media types,
# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet type
# registry is at <http://www.iana.org/assignments/media-types/>.
# MIME type
yp
application/activemessage
application/andrew-inset
application/applefile
application/atom+xml
application/atom+xml
…
image/jpeg
text/html
text/parityfec
text/parityfec
text/plain
Extensions
ez
atom
atom
jpeg jpg jpe
html htm
txt text conf def list log in
Servidores Web
Daniel Rodríguez
11
Servidores Web
Daniel Rodríguez
12
Ejecución de aplicaciones con CGI
Ejecución de aplicaciones con CGI
j
d
P
• Para poder ejecutar aplicaciones externas, se puede
utilizar un protocolo llamado CGI (Common Gateway
Interface)
Interface),
d
li
t
t
i
– CGI define una serie de parámetros conocidos como variables de
entorno, que describen las peticiones del cliente.
– Esto define una interfaz independiente entre los programas o scripts y
el servidor HTTP
Apache
Apache
Servidores Web
Daniel Rodríguez
13
Apache
Apache
Apache Módulos
Apache Módulos
Su nombre se debe a que originalmente Apache consistía solamente
• Su nombre se debe a que originalmente Apache consistía solamente
en un conjunto de parches a aplicar al servidor de NCSA. Era, en
inglés, a patchy server (un servidor "parcheado").
El
d l
(httpd) de la Apache Software Foundation.
• El servidor Apache se desarrolla dentro del proyecto HTTP Server
t HTTP S
ll d t
id A
h
d
• Apache presenta entre otras características mensajes de error
p
p
j
altamente configurables, bases de datos de autenticación y
negociado de contenido, pero fue criticado por la falta de una interfaz
gráfica que ayude en su configuración.
gráfica que ayude en su configuración.
• Modular, Open source, Multi-plataforma, Extensible, Popular (fácil
conseguir ayuda y soporte) y gratuito .
t
it
L
• La arquitectura del servidor Apache es modular. El servidor consta de
un nucleo (core) y mucha de la funcionalidad que podría considerarse
básica para un servidor Web es provista por módulos.
id A
t d
d l
d l
El
id
h
• Por ejemplo, modulos de la funcionalidad básica incluyen:
te
– mod_ssl - Comunicaciones Seguras vía TLS.
– mod rewrite - reescritura de direcciones servidas (generalmente utilizado para
ado pa a
od_ e
transformar páginas dinámicas como php en páginas estáticas html para así
engañar a los navegantes o a los motores de búsqueda en cuanto a como
fueron desarrolladas estas páginas).
eesc u a de d ecc o es se das (ge e a e e u
– mod_dav - Soporte del protocolo WebDAV (RFC 2518).
– mod_deflate - Compresión transparente con el algoritmo deflate del contenido
enviado al cliente.
– mod_auth_ldap - Permite autentificar usuarios contra un servidor LDAP.
LDAP
– mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de
tifi
id
P
it
t
páginas dinámicas en Java (servlets y JSP).
i
t
Servidores Web
Daniel Rodríguez
15
Servidores Web
Daniel Rodríguez
16
Modulos no básicos (externos)
Modulos no básicos (externos)
Instalación Apache (en Windows)
Instalación Apache (en Windows)
l
i
h
/
•http://httpd.apache.org/
//h
h
d
El
• El servidor de base puede ser extendido con la inclusión
de módulos externos entre los cuales se encuentran:
t did
d b
id
ió
d
l
– mod perl - Páginas dinámicas en Perl
mod_perl Páginas dinámicas en Perl.
– mod_php - Páginas dinámicas en PHP.
– mod_python - Páginas dinámicas en Python.
– mod_rexx - Páginas dinámicas en REXX y Object REXX.
– mod_ruby - Páginas dinámicas en Ruby.
– mod mono - Páginas dinámicas en Mono
–
Comentarios de: Servidores Web: Apache e IIS (0)
No hay comentarios