Sunteți pe pagina 1din 22

Servicios en red

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?

Las siglas HTTP corresponden al xxxxxxx (HyperText Transfer Protocol).


En 1989, Tim Berners Lee y Robert Caillou, investigadores del xxxxxxx (Laboratorio Europeo de Fsica
de las Partculas) propusieron la creacin de la World Wide Wide. Despus colaboraron en su desarrollo
mediante su participacin en la elaboracin de diversos estndares o especificaciones.
Fue como un medio para compartir datos cientficos a escala internacional de una manera rpida y con un
coste moderado. Es el mtodo ms comn de intercambio de informacin en la World Wide Web, por el
cual se transfieren las pginas web o HTML a un ordenador.
La World Wide Web es un sistema global de documentos enlazados entre s mediante hipervnculos o
hiperenlaces.
El hipertexto no es ms que el contenido de las pginas web y el protocolo de transferencia es el conjunto
de normas mediante las cuales se envan las peticiones de acceso a una web y la consiguiente
respuesta.

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 descodifica la informacin de la URL diferenciando el protocolo de acceso, la IP o nombre


de dominio del servidor, el puerto, etctera.

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:

Si el servidor lo encuentra, lo enva.

Si no existe, enva un cdigo de error.

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.

Para resolver estas situaciones de falta de memoria, adems de almacenarse la informacin de la


sesin actual se utilizan las cookies.

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:

Text/html. Define xxxxxxx.

Video/mpeg. Define todos los archivos de vdeo almacenados en formato mpeg.

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:

Visualizar el documento, por ejemplo con tipos text/html.

Llamar a una aplicacin externa, por ejemplo con tipos application/pdf.

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

3. El servidor y el cliente 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.

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

3.1. El servidor web


El servidor web, adems de suministrar pginas web HTML que no cambian (estticas), tambin permite
la ejecucin de pequeos programas en diferentes lenguajes (PHP, CGI, Java, etctera) que les
proporcionan dinamismo.
Los tres elementos bsicos que componen las peticiones web dinmicas son: el cliente que la hace, el
servidor que la atiende y los datos solicitados.
Estos servidores ya no slo son servidores WEB, sino que son servidores de XXXXXX

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.

La URL de solicitud de un recursoUna URL tiene el siguiente formato:

protocolo://usuario:contrasea@mquina:puerto/ruta_recurso

Es decir, consta de los elementos siguientes:

1. El xxxxxxx que debe utilizarse (htp , htps , ftp , ftps ).

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

3. El cliente y el servidor web


3.2. El cliente web
El cliente o navegador web es una aplicacin que permite visualizar pginas web alojadas en servidores
web, interpretar cdigo HTML mostrando el contenido de la pgina en la pantalla y, si la pgina lo permite,
interactuar con ella o navegar a travs de enlaces a otras pginas web.

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.

Entre los principales navegadores web estn:

Mozilla Firefox

Internet Explorer

Otros: Amaya, Opera, Dillo o Chrome, o basados en texto como Lynx, Links, etctera.

10
Servicio HTTP

4. El servidor web seguro


Un servidor web es seguro cuando garantiza la comunicacin con el cliente web con autenticacin y
confidencialidad.

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.

El protocolo HTTPS se basa en dos tipos de criptografa:

Simtrica o de clave compartida.

Asimtrica o de clave pblica-privada.

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

4. El servidor web seguro


4.2. El protocolo SSL
Hay servidores WEB cmo Apache que gestionan la autenticacin del usuario mediante credenciales. Lo
veremos en las prcticas

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.

En una conexin TCP/IP, el protocolo SSL proporciona las garantas siguientes:

1. Confidencialidad: cifra la informacin transferida.

2. Integridad del mensaje: controla cualquier modificacin intencionada o accidental en la informacin


mientras se transmite por Internet.

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

5.1. Formato del mensaje


Al tratarse de un protocolo sin estado, cada transaccin HTTP es una comunicacin distinta. Existen dos
tipos de mensajes: los de peticin o solicitud (request) y los xxxxxxx), cada uno con una sintaxis
determinada.

El formato de un mensaje genrico en HTTP es el siguiente:

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).

Separador, que no es ms que otro CR-LF.

Contenido o cuerpo del mensaje.

13
Servicio HTTP

5. Comunicacin HTTP

5.2. Peticiones (request) HTTP: mtodos de peticin


Una peticin HTTP, en su formato ms bsico, se estructura de la siguiente manera:

mtodo + espacio en blanco + xxxxxxx + espacio en blanco + versin.

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:

GET /index.html HTTP/1.0.

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:

PUT: permite xxxxxxx

DELETE: borra el recurso solicitado del servidor.

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

5.2. Peticiones (request) HTTP: mtodos de peticin


Indica a que apunta cada una de las flechas

15
Servicio HTTP

5. Comunicacin HTTP

5.2. Peticiones (request) HTTP: mtodos de peticin


Indica a que apunta cada una de las flechas y las XXX

16
Servicio HTTP

5. Comunicacin HTTP

5.3 Respuestas (xxxxx) HTTP


Una respuesta HTTP, en su formato ms bsico, se estructura de la siguiente manera:

Lnea de respuesta

Versin HTTP

Cdigo respuesta (100-199;200-299;300-399;400-499;500-599; ...)

Busca en wikipedia el significado de los cdigos y completa la presentacin

Mensaje explicativo cod. respuesta

Cabeceras

Respuesta

17
Servicio HTTP

5. Comunicacin HTTP

5.3 Respuestas (xxxxx) HTTP


Indica a que apunta cada una de las flechas

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.

-Averigua el tipo de servidor web que est utilizando.

19
Servicio HTTP

5. Comunicacin HTTP

Opcional
Utiliza Wireshark realiza un ejemplo para ver la comunicacin HTTP.

20
Servicio HTTP

6. Integracin del sitio web en la zona DNS.


Para que se pueda acceder a nuestro sitio web desde cualquier equipo cliente mediante un nombre DNS
es necesario que dispongamos de un servidor DNS que resuelva al menos el nombre del equipo servidor
web. Si no se puede resolver el nombre del equipo servidor habr que acceder al sitio web usando en la
URL la direccin IP del equipo servidor

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.

S-ar putea să vă placă și