Documente Academic
Documente Profesional
Documente Cultură
Servicio HTTP
Servicio HTTP
CONTENIDOS
1. Qu es el servicio HTTP?
2. Los tipos MIME
3. El servidor y el cliente web
4. El servidor web seguro
5. Comunicacin HTTP
6. Integracin del sitio web en la zona DNS.
1
Servicio HTTP
1. Qu es el servicio HTTP?
El servicio HTTP es el pilar sobre el que se construye todo este entramado que hace posible la
intercomunicacin a escala mundial.
Existe una versin segura de HTTP llamada xxxxxxx que permite el uso de cualquier mtodo de cifrado
siempre que lo compartan el servidor y el cliente. Basta con agregar unos componentes a los equipos
para que ejecuten el algoritmo correspondiente de encriptacin.
2
Servicio HTTP
1. El servicio HTTP
1.1. Cmo funciona el protocolo HTTP
El HTTP es un protocolo cliente-servidor cuyo funcionamiento est basado en el envo de mensajes. Su
mecanismo es el siguiente:
El usuario especifica en el cliente web (o navegador) la direccin de la pgina que quiere consultar
segn un formato xxxxxxx.
El cliente web establece una conexin (socket) con el servidor web y solicita la pgina (mensaje
xxxxxxx).
El servidor enva dicha pgina (si no existe, enva un cdigo de error) y el cliente web interpreta el
cdigo HTML recibido (mensaje response del servidor).
Se cierra la conexin.
3
Servicio HTTP
1. El servicio HTTP
1.1. Cmo funciona el protocolo HTTP
El protocolo HTTP es un protocolo sin estado, es decir, xxxxxxx. Cuando el cliente web solicita un
documento HTML, puede ocurrir lo siguiente:
En ambos casos, y al tratarse de un protocolo sin estado, la conexin se libera al finalizar. Solo dura el
tiempo necesario para la transmisin del documento solicitado. Para cada objeto que se transfiere por la
red, se realiza una conexin independiente.
En la versin 1.0 del protocolo HTTP el cliente web poda solicitar del servidor solo tres operaciones:
xxxxxxx (realiza una tabla con las tres operaciones y su funcin principal)
4
Servicio HTTP
2. Los tipos MIME
Son una forma abierta y extensible de representar el contenido de los datos. En la actualidad se ha
generalizado su utilizacin y tambin puede llamrseles IMT.
MIME adjunta un archivo de cabecera a los documentos en el que indica el tipo de contenido del archivo.
De esta manera, el servidor web y el navegador pueden manejar y mostrar los datos correctamente.
Los MIME indican el tipo de archivo que se transfiere del servidor web al cliente o navegador web.
Se componen de tipos (indicados antes del carcter /) y subtipos (despus del carcter /). Por
ejemplo, son tipos MIME:
Image/*. Define todos los archivos de imagen almacenados en cualquier formato (gif, jpeg, bmp,
etctera).
El prefijo especial x- queda reservado para tipos experimentales o tipos de uso interno de organizaciones.
5
Servicio HTTP
2. Los tipos MIME
El protocolo HTTP usa los tipos MIME en sus cabeceras para, por ejemplo:
1. Informar al cliente del tipo de datos que recibe del servidor con el encabezado xxxxxxx. Un navegador
tpico puede manejar los datos de tres formas distintas segn el tipo MIME indicado:
Preguntar al usuario qu hacer ante un tipo que no se entiende, como, por ejemplo, image/x-fwf.
2. Permitir la negociacin de contenido. El cliente, en su peticin, incluye los tipos MIME que acepta. Por
ejemplo, si un navegador puede soportar documentos de tipo application/pdf, lo indicar en la cabecera
HTTP:
xxxxxxx
3. Encapsular una o ms entidades dentro del cuerpo de mensaje, mediante los tipos MIME multipart.
Quiz el ejemplo ms conocido sea el tipo multipart/form-data utilizado para encapsular los datos de un
formulario en su envo hacia el servidor mediante el mtodo POST.
6
Servicio HTTP
Cuando el navegador hace una peticin al servidor web, utiliza un nombre que identifica al servidor. Esta
solicitud se transmite a un servidor DNS que resuelve el nombre y devuelve la direccin IP
correspondiente. La solicitud del navegador se dirige al servidor web correcto. La informacin que el
usuario proporciona al navegador para conectar con un servidor web se llama URL (Uniform Resource
Locator), que indica la forma de acceder a un recurso utilizando un protocolo de comunicacin.
Cuando un usuario ejecuta Firefox y hace clic sobre un enlace a una pgina web, enviar una solicitud al
servidor web que aloja dicha pgina para que se la muestre (servir la pgina). Si la encuentra, la enviar y
si no, transmitir al cliente un mensaje de error. Cuando el cliente recibe la pgina web, interpreta el
cdigo HTML y muestra las fuentes, colores, imgenes que la componen, etctera, de forma correcta
7
Servicio HTTP
3. El cliente y el servidor web
8
Servicio HTTP
3. El cliente y el servidor web
3.1. El servidor web
Para que el navegador llegue al servidor web (ya sea en una red local o en Internet) ste debe tener
asignada una direccin IP nica que identifique al equipo en la red. Cuando el navegador hace una
peticin al servidor web, utiliza un nombre que identifica al servidor. Esta solicitud se transmite a un
servidor DNS que resuelve el nombre y devuelve la direccin IP correspondiente. La solicitud del
navegador se dirige al servidor web correcto. La informacin que el usuario proporciona al navegador
para conectar con un servidor web se llama URL (Uniform Resource Locator), que indica la forma de
acceder a un recurso utilizando un protocolo de comunicacin.
protocolo://usuario:contrasea@mquina:puerto/ruta_recurso
2. La doble barra con dos puntos (//:), que hace las veces de separador.
3. usuario:contrasea@ Es un elemento que se puede excluir en una URL. Se debera usar cuando en el
servidor se controla el acceso al recurso mediante un nombre de usuario y una contrasea indicados
en la URL. Casi nunca se utilizan y se desaconseja su utilizacin por seguridad.
mquina, indicada por la direccin IP o el nombre (FQDN) que contiene el recurso.
:puerto Especifica el puerto del servidor con el que hay que conectar. No es obligatorio, si no se
especifica se asume xxxxxxx.
4. La ruta al recurso, el directorio y los subdirectorios del sitio web donde se ubica el xxxxxxx al que se
quiere acceder.
9
Servicio HTTP
Los contenidos de las pginas web pueden ser de diferentes tipos: textos, imgenes, vdeos, etctera. Su
reproduccin o visualizacin requiere otros complementos que son aadidos al navegador y que quedan
integrados de forma transparente al usuario. Adems de este funcionamiento bsico, se pueden ejecutar
determinadas aplicaciones complementarias que aumentan la funcionalidad de la pgina web:
Aplicaciones que se ejecutan en el cliente web, es decir en el equipo del usuario. El servidor enva el
cdigo al navegador y este lo ejecuta. Lgicamente, el navegador debe ser capaz de ejecutarlo y, para
ello, a menudo requiere la instalacin de extensiones.
Aplicaciones que se ejecutan en el servidor y generan un cdigo HTML que se enva al navegador, que
interpreta y muestra al usuario.
Mozilla Firefox
Internet Explorer
Otros: Amaya, Opera, Dillo o Chrome, o basados en texto como Lynx, Links, etctera.
10
Servicio HTTP
El protocolo SSL permite establecer una comunicacin segura y codificada entre el servidor web y el
navegador. SSL trabaja conjuntamente con el protocolo HTTP, creando un protocolo de transmisin de
hipertexto seguro llamado HTTPS.
Ambos tipos presentan diversas ventajas e inconvenientes, pero cumplen con los objetivos deseados.
En concreto, la criptografa asimtrica se utiliza en los procesos de autenticacin, ya que cada usuario
protege su clave secreta. No obstante, es lenta para el cifrado, a diferencia de la criptografa simtrica,
mucho ms rpida, aunque poco eficaz a la hora de gestionar las claves.
11
Servicio HTTP
El protocolo SSL (Secure Socket Layer) garantiza que todo el intercambio de informacin realizado en
una sesin de conexin se hace de forma segura mediante encriptacin.
3. Autenticacin del servidor: asegura la identidad del servidor al que se establece la conexin y al que
puede enviar el usuario informacin personal mediante el certificado de servidor.
4. Autenticacin de cliente: el servidor conoce la identidad del usuario y le permite o no su acceso a reas
protegidas. Para ello, el cliente debe tener instalado un certificado de cliente en su ordenador que
identifica el servidor al cliente.
El protocolo SSL utiliza una clave de sesin que se genera en cada transaccin. Cuanto mayor sea la
longitud de la clave, ms difcil ser romper la encriptacin. La mayora de los navegadores soportan
claves de sesin de 128 bits.
12
Servicio HTTP
5. Comunicacin HTTP
Lnea de comienzo: tipo de mensaje (orden HTTP con sus parmetros, request, o resultado de la
solicitud, response).
Lneas de encabezado (si son obligatorias) o cero (si son opcionales), acabadas con un CR-LF (es
decir, un retorno de carro CR y a continuacin una lnea final LF).
13
Servicio HTTP
5. Comunicacin HTTP
El mtodo indica al servidor qu debe hacer con el URI (Uniform Resource Identifier, RFC 2396).
El nmero de versin se refiere al protocolo que el cliente entiende. Por ejemplo, una peticin normal
utiliza el mtodo GET para demandar del servidor el URI solicitado. Su sintaxis sera la siguiente:
La versin 1.0 de HTTP contempla tres mtodos (ya vistos anteriormente) y la versin posterior del
HTTP, la 1.1, ampla estas posibilidades e implementa mtodos surgidos de nuevas necesidades
generadas sobre todo por la WWW. A continuacin se detallan algunos:
OPTIONS: proporciona al cliente informacin del servidor para que pueda, entre otras tareas, negociar
los valores de los parmetros de la comunicacin.
14
Servicio HTTP
5. Comunicacin HTTP
15
Servicio HTTP
5. Comunicacin HTTP
16
Servicio HTTP
5. Comunicacin HTTP
Lnea de respuesta
Versin HTTP
Cabeceras
Respuesta
17
Servicio HTTP
5. Comunicacin HTTP
18
Servicio HTTP
5. Comunicacin HTTP
Opcional
Ejemplo de un dilogo HTTP. Completa la presentacin aadiendo pantallazos de la prctica.
En tu mquina Windows7, abrir terminal y mirar si esta instalado el comando telnet. En windows
7 es una caracterstica que hay que activar desde el panel de control aplicaciones.
Para explicar en que consiste el protocolo HTTP, ejecuta la orden telnet sobre a
nunki.diocesanas.org (para hacer la prctica quitar el proxy) y:
-Realiza una peticin GET a la raz. Escribir en un editor de texto (copiar desde la Wikipedia, pues
es sensible a maysculas y minsculas) Recordar que hay que escribir una lnea en blanco para
que el protocolo de por finalizado el envo de informacin.
19
Servicio HTTP
5. Comunicacin HTTP
Opcional
Utiliza Wireshark realiza un ejemplo para ver la comunicacin HTTP.
20
Servicio HTTP
Ejemplo, para acceder al sitio del servidor web cuya direccin IP sea 192.168.100.2 con un nombre de
dominio como www.asiregibide.local, tendremos que tener en la zona asiregibide.local de un servidor
DNS con el registro:
XXXXX
Otra posibilidad es tener otro nombre para el equipo servidor y utilizar un alias para accede al servidor
con ese alias:
XXXXX
www.asiregibide.local. IN CNAME pc1.asiregibide.local.
Cuando acceden un gran nmero de clientes a un sitio web con un solo servidor web, aumenta
considerablemente la carga de trabajo del servidor, con lo que las respuestas dadas por nuestro servidor
van a tardar un tiempo excesivo. Cuando ocurre esto, se deben tener varios servidores web para el
mismo sitio y establecer un sistema de reparto de carga entre los servidores web. Se puede realizar un
reparto de carga entre servidores mediante los registros SRV en la zona DNS correspondiente al sitio
web. Ejemplo dos servidores para el sitio web www.asiregibide.local, que tienen las direcciones IP
192.168.100.1 y 192.168.100.2 y que usan el puerto 80 como puerto de escucha. Los registros a escribir
en la zona para que el 60% de la carga sea para Srv1 y el 40% para Srv2 son:
Srv1.asiregibide.local. IN A 192.168.100.1
Srv2.asiregibide.local. IN A 192.168.100.2
_http._tcp.www.asiregibide.local. IN SRV 0 60 80 S1.asiregibide.local.
21
_http._tcp.www.asiregibide.local. IN SRV 0 40 80 S2.asiregibide.local.