Академический Документы
Профессиональный Документы
Культура Документы
Universidad de Alcal
Departamento de Automtica
rea de Ingeniera Telemtica
it
Servicios de Informacin
(primera parte)
IT-AUT-UAH
Contenido
Introduccin al servicio WEB
Elementos de la arquitectura
Protocolo HTTP
Generalidades
Tipos de conexiones HTTP/TCP
Mensajes: tipos, formato, cabeceras
Interaccin usuario servidor: autorizacin y cookies
Cach web
GET condicional
Servidor Proxy
Cach WEB jerrquico
Cach WEB cooperativo
HTML
Audio y vdeo en la red
IT-AUT-UAH
26/04/2011
IT-AUT-UAH
26/04/2011
Objetos
Pueden residir o no en el mismo Host
Direccionado
URL: Uniform Resource Locator
Entidades funcionales
Cliente WEB (Navegador)
Servidor WEB
Protocolo HTTP
---------------------------------------------------------------------------1: HTML: Hyper Tetxt Markup Language. Lenguaje de marcas de hipertexto
IT-AUT-UAH
Halsall, Computing Networking and the Internet, 5th Edition Pearson Education Limited 2005
IT-AUT-UAH
26/04/2011
Objetos WEB
Archivos: HTML, JPEG, etc.
Cada uno direccionable a travs de un nico URL
IT-AUT-UAH
Segn:
Ubicacin, a travs de un URL
URL: Uniform Resource Locator
IT-AUT-UAH
26/04/2011
Recursos:
Componentes:
1.
2.
3.
4.
http://www.escuela.es/dpto/imagen1.jpg
1
IT-AUT-UAH
Ejemplos:
FTP
ftp://ftp.cs.vv.nl/pub/readme
Telnet
telnet://www.w3.org:80
Correo
mailto:cime@gmail.com
IT-AUT-UAH
10
26/04/2011
IT-AUT-UAH
11
Cliente HTTP
Software de comunicacin que implementa parte cliente de HTTP
Ejemplos ms conocidos:
Netscape Navigator
MS Internet Explorer
Mozilla (Firefox)
Mosaic
Chrome, y otros ms
IT-AUT-UAH
12
26/04/2011
Servidor HTTP
Software de comunicacin que implementa parte servidor de HTTP
Ejemplos ms conocidos:
Apache, quizs el ms utilizado
MS Information Server
IT-AUT-UAH
13
Transacciones HTTP
COMPUTER NETWORKING. A Top_Down Approach Featuring the Internet. Third Edition by Kurose, J. F. and Ross, K. W. Pearson Education, Inc. 2003
IT-AUT-UAH
14
26/04/2011
HTTP
HTTP*: Hyper Text Transfer Protrocol
Protocolo del nivel de aplicacin para el servicio WEB, y en
general para transferencia de recursos
En uno u otro sentido (C S)
Recursos:
Archivos
Resultado de la consulta a una base de datos, traduccin automtica de
un documento, ejecucin de un programa
15
HTTP
HTTP (cont.)
Define:
Sintaxis y semntica de los mensajes
Procedimientos del protocolo
Basados en simples transacciones: peticin respuesta
Cliente solicita objetos genera peticiones
Mensajes ASCII
Servidor transfiere objetos genera respuestas
Mensajes ASCII tipo MIME (RFC 822)
Tipos de datos
Abierto a nuevos tipos de datos
Utiliza tipos MIME
IT-AUT-UAH
16
26/04/2011
HTTP
HTTP slo define protocolo de comunicacin entre
Navegador y servidor WEB
No interviene en cmo el Navegador interpreta los objetos
Utilidades del cliente se encargan de la gestin de datos (visor de
imgenes, de vdeo, etc.)
IT-AUT-UAH
17
HTTP
HTTP (cont.)
Protocolo sin estado y no conectivo
Servidor no guarda informacin de clientes ni de
transacciones HTTP
Se simplifica diseo de los Servidores
Posible servidores WEB de gran rendimiento, que pueden
manejar cientos de conexiones TCP a la vez
IT-AUT-UAH
18
26/04/2011
HTTP
Tipos de conexiones TCP para HTTP
Conexiones TCP no persistentes
Solucin nica para HTTPv1.0
Tambin soportada por HTTPv1.1
Adecuadas en los inicios del servicio WEB, pginas
con slo texto HTML
IT-AUT-UAH
19
HTTP
Conexin TCP no persistente
Requiere conexin TCP independiente para transferencia
de cada objeto
Posibilita que conjunto enlazado de pginas pueda estar
distribuido entre varios servidores
20
10
26/04/2011
HTTP
Modos para TCP no persistente
Conexiones en serie
Slo una conexin TCP abierta en cada momento
Para N objetos se gestionan N conexiones TCP una a una, en
serie una tras otra
Ms demora para bajar todo el contenido de una pgina,
mayor tiempo de respuesta
Conexiones en paralelo
Posibilita varias conexiones TCP abiertas a la vez, en paralelo
Menos demora para bajar todo el contenido de una pgina,
menor tiempo de respuesta
Normalmente los Navegadores pueden ser configurados para
controlar el grado de paralelismo
Grado de paralelismo: N simultneo de conexiones TCP no
persistentes
Valores tpicos entre 5 y 10
Valor 1 Modo serie
IT-AUT-UAH
21
HTTP
Problemas de las conexiones no persistentes
Cada conexin TCP involucra informacin de estado
relativa a TCP
Que hay que gestionar y almacenar en el servidor y en el cliente
Carga de trabajo considerable, sobretodo en el servidor, que
puede estar manejando muchas peticiones a la vez
IT-AUT-UAH
22
11
26/04/2011
HTTP
Retardo de entrega por objeto para conexiones TCP no persistentes
COMPUTER NETWORKING. A Top_Down Approach Featuring the Internet. Third Edition by Kurose, J. F. and Ross, K. W. Pearson Education, Inc. 2003
IT-AUT-UAH
23
HTTP
Conexin TCP persistente
Solucin ms eficiente respecto al tipo no persistente
Por una misma conexin TCP:
Discurren todas las transacciones HTTP relativas a diferentes
objetos
Peticin y Respuesta por cada objeto
Ms an:
Objetos de mltiples pginas pueden ser transferidos por la
misma conexin TCP, si cliente y servidor residen en las mismas
mquinas
Normalmente
Transcurrido un tiempo (configurable) sin transacciones,
servidor HTTP cierra la conexin TCP
IT-AUT-UAH
24
12
26/04/2011
HTTP
Modos para el tipo persistente
Sin entubamiento
Sin pipelining
Con entubamiento
Con pipelining
25
HTTP
Conexiones CON entubamiento
Modo por defecto para HTTPv1.1
Admite ms de una transaccin HTTP a la vez
Cliente realiza una peticin tan pronto encuentra referencia a
objeto
Puede hacer peticiones seguidas para los objetos referenciados,
sin esperar respuesta a la peticin anterior
Servidor enva respuestas seguidas
Posibilita:
Mejor aprovechamiento de la conexin TCP
Menor tiempo para descargar todos objetos, en relacin con el
modo SIN entubamiento
IT-AUT-UAH
26
13
26/04/2011
HTTP
Mensajes
HTTP define dos tipos de mensajes
Mtodos, son solicitudes tipo ASCII, y
Cdigos de estado, son respuestas tipo ASCII MIME
Formato de mensajes
Todo mensaje HTTP consta de:
Lnea de inicio (de solicitud o de respuesta)
Cabeceras* (de solicitud o de respuesta)
Lnea en blanco, como separador
Cuerpo (opcional)
------------------------------------------------------------------------------------------------------------------------*: siguen el formato genrico de la RFC 822
IT-AUT-UAH
27
HTTP
Formato de mensajes (cont.)
Lnea de inicio de Solicitud: tres campos separados por
espacios
Mtodo URL VersinCRLF
Mtodo: identifica el Mtodo o Solicitud
URL: parte del URL que identifica ruta del objeto en el servidor
Versin: identifica versin del protocolo HTTP
IT-AUT-UAH
28
14
26/04/2011
HTTP
Formato de mensajes (cont.)
Cabeceras de Solicitud
Dan informacin del Navegador, y eventualmente del usuario
Cabeceras de Respuesta
Dan informacin del servidor y del recurso
Cuerpo
Para mensajes de Solicitud:
Puede contener parmetros relativos a los archivos solicitados
al servidor, o estar vaco
IT-AUT-UAH
29
HTTP
opcional
IT-AUT-UAH
30
15
26/04/2011
HTTP
IT-AUT-UAH
31
HTTP
Mtodos1 ms significativos
GET: solicitud de pgina/objeto
HEAD: solicitud slo de encabezado de pgina/objeto, NO
de contenido. Para supervisin y depuraciones
POST: solicitud de objeto enviando parmetros
PUT: solicitud para escritura de nueva pgina/objeto
DELETE: solicitud para eliminar contenido en una
pgina/objeto
OPTIONS: solicitud para consultar opciones.
P.e, propiedades del Servidor o de algn
fichero especfico
-----------------------------------------------------------------------------------------------------------1: caracteres en maysculas
IT-AUT-UAH
32
16
26/04/2011
HTTP
GET
Para solicitar informacin identificada por un URL
Si URL se refiere a un objeto
Se devuelve objeto referenciado
IT-AUT-UAH
33
HTTP
HEAD
dem al mtodo GET, pero mensaje de
Respuesta sin contenido
til para, p.e:
Obtener informacin en relacin con las entidades
implicadas en una Solicitud
Saber cundo fue la ltima modificacin de un
objeto solicitado
Comprobar si los enlaces son vlidos
IT-AUT-UAH
34
17
26/04/2011
HTTP
POST
Normalmente para invocar procesos que generan datos
Datos que sern devueltos como Respuesta a una Solicitud
IT-AUT-UAH
35
HTTP
Algunas cabeceras de mensajes de SOLICITUD
Cabecera
Tipo
Contenido
User-Agent
Solicitud
Accept
Solicitud
Accept-Charset
Solicitud
Accept-Encoding
Solicitud
Accept-Language
Solicitud
Host
Solicitud
Authorization
Solicitud
Cookie
Solicitud
IT-AUT-UAH
36
18
26/04/2011
HTTP
Cdigos de Estado
Cdigo de tres caracteres numricos
Primer carcter indica categora del mensaje de Respuesta
IT-AUT-UAH
37
HTTP
Cdigos de Estado ms significativos
1xx: Mensajes de informacin
100: Continua
101: Cambio de protocolo
38
19
26/04/2011
HTTP
3xx: Mensajes de redireccin hacia otro URL
300: Mltiples posibilidades
301: Mudado permanentemente, se manda el nuevo URL
302: Encontrado
303: Ver otros
304: No modificado
305: Utilice un Proxy
306: Este cdigo de estado est vacante, reservado
307: Redireccionado temporalmente, se manda nuevo URL
IT-AUT-UAH
39
HTTP
4xx: Mensajes de error por parte del cliente
400: Solicitud incorrecta
401: Autorizacin requerida
402: Pago requerido
403: Prohibido
404: No encontrado
405: Mtodo no permitido
406: No aceptable
407: Proxy de autenticacin requerido
408: Tiempo de espera agotado
409: Conflicto
IT-AUT-UAH
40
20
26/04/2011
HTTP
4xx (cont.)
410: Recurso solicitado no disponible ya
411: Requiere longitud
412: Fall precondicin
413: Entidad de solicitud demasiado larga
414: URI de solicitud demasiado largo
415: Tipo de medio no soportado
416: Rango solicitado no disponible
417: Fall expectativa
IT-AUT-UAH
41
HTTP
5xx: Mensajes de error por parte del servidor
500: Error interno
501: No implementado
502: Pasarela incorrecta
503: Servicio no disponible
504: Tiempo de espera de la pasarela agotado
505: Versin HTTP no soportada
IT-AUT-UAH
42
21
26/04/2011
HTTP
Algunas cabeceras de mensajes RESPUESTA
Cabecera
Tipo
Contenido
Server
Respuesta
Content-Encoding
Respuesta
Content-Language
Respuesta
Content-Length
Respuesta
Content-Type
Respuesta
Last-Modified
Respuesta
Location
Respuesta
Set-Cookie
Respuesta
Authenticate
Respuesta
IT-AUT-UAH
43
HTTP
Algunas cabeceras comunes SOLICITUD/RESPUESTA
Cabecera
Tipo
Contenido
Date
Solicitud/Respuesta
Connection
Solicitud/Respuesta
IT-AUT-UAH
44
22
26/04/2011
HTTP
Qu cabeceras se utilizan en los mensajes HTTP?
Depende de diferentes factores, entre otros:
Por parte del Navegador, en los Mtodos:
Tipo de mensaje
Versin del protocolo
Configuracin del Navegador hecha por el usuario (p.e,
idioma preferido)
Si el Navegador dispone de una versin cach del objeto
45
HTTP
Ejemplos de mensajes HTTP
Ejemplo 1
Cliente solicita al servidor el objeto doc1.html
GET /doc1.html HTTP/1.0
Accept: www/source
Accept: text/html
Accept: image/gif
User-Agent: Lynx/2.2 libwww/2.14
From: pepe@info.ula.es
/* esto es una linea en blanco */
Cliente indica en el mensaje de Solicitud
Mtodo GET, fichero que solicita y versin HTTP
Lista de tipos MIME que puede aceptar
Identificacin del SW de la mquina Cliente. Normalmente SO y Navegador
Posibilita al servidor optimizar los ficheros para el tipo particular de Navegador
Direccin de correo electrnico del usuario
Lnea en blanco, final de cabeceras HTTP
IT-AUT-UAH
46
23
26/04/2011
HTTP
Ejemplo 1 (cont.)
El servidor responde de la siguiente manera:
HTTP/1.0 200 OK
Date: Friday, 23-Feb-01 16:30:00 GMT
Server: Apache/1.1.1
Content-type: text/html
Content-length: 230
/* esto es una linea en blanco */
<HTML><HEAD><TITLE> ........ </HTML>
Servidor indica en su mensaje de Respuesta:
Versin 1.0 de HTTP
Cdigo de estado 200 Solicitud procesada satisfactoriamente
Fecha y hora que se enva el mensaje
Tipo de servidor: Apache
Tipo de contenido: texto en formato HTML
Longitud en octetos del contenido: 230
IT-AUT-UAH
Ejemplo 2
47
HTTP
Halsall, Computing Networking and the Internet, 5th Edition Pearson Education Limited 2005
IT-AUT-UAH
48
24
26/04/2011
AP Cliente Web
Pgina Web
visualizada
Cargador de pginas
e intrprete HTML
Resolver
------------------------------Cliente HTTP
Puerto X
Puerto Y
TCP
UDP
Ficheros/
Pginas Web
DNS
Acceso a
ficheros
--------------------Servidor HTTP
Puerto 53
Puerto 80
Servidor DNS
UDP
AP Servidor Web
Cliente Web
TCP
IP
IP
IP
DL/PL
DL/PL
DL/PL
Consulta DNS
Respuesta DNS
Solicitud HTTP
Respuesta HTTP
Halsall, Computing Networking and the Internet, 5th Edition Pearson Education Limited 2005
IT-AUT-UAH
49
HTTP
Interaccin Usuario-Servidor
En ocasiones se requiere que un sitio WEB
identifique a los usuarios
Porque est restringido el acceso,
Porque se quiera servir a los usuarios en funcin de su
identidad
IT-AUT-UAH
50
25
26/04/2011
HTTP
Autorizacin HTTP
IT-AUT-UAH
51
HTTP
Cookies* HTTP
Definidas en la RFC 2109
Mecanismo genrico de identificacin de usuarios
Procedimiento que emplean algunos sitios WEB para
identificar de manera genrica a sus usuarios y hacer
seguimiento de su actividad en el mismo
P.e, sitios de publicidad, de comercio electrnico, etc.
IT-AUT-UAH
52
26
26/04/2011
HTTP
2. Cabecera de cookie
3. Archivo de cookies
En el sistema de usuario
Lo gestiona el Navegador
En el sitio WEB
IT-AUT-UAH
53
HTTP
Intercambios para cookies
Cuando un usuario accede por primera vez a un sitio WEB
que implementa cookies (por medio de un mensaje de
solicitud), el Servidor:
Crea un N de Identificacin nico para ese usuario, y tambin
Crea, en su base de datos, una entrada indexada por ese N de
Identificacin
Responde a dicha solicitud con un Cdigo de Estado que incluye
cabecera Set-Cookie con dicho N de Identificacin
Por ejemplo: Set-Cookie: 2980231
54
27
26/04/2011
HTTP
Intercambios para cookies (cont.)
Cada vez que el usuario desee navegar por un sitio
WEB, y solicite un objeto:
Navegador consulta su fichero de cookies
Si hay cookie para dicho sitio, extrae el correspondiente N de
Identificacin y lo incluye en una cabecera cookie en el mensaje
de Solicitud
P.e: Cookie: 2980231
IT-AUT-UAH
Cach WEB
55
HTTP
Trfico de red
Concretamente trfico WEB
56
28
26/04/2011
HTTP
Cach WEB (cont.)
Problema:
Actualidad de los objetos en cach
Si objeto ha sido actualizado en el servidor WEB,
puede haber variado su contenido copia en cach
puede no corresponder con objeto actualizado
IT-AUT-UAH
57
HTTP
GET condicional
Mecanismo HTTP para:
Comprobar y garantizar actualidad de objetos en cach Web
Se implementa mediante:
Mensaje tipo GET, con cabecera especfica
Cabecera de Solicitud: If-Modified-Since
IT-AUT-UAH
58
29
26/04/2011
HTTP
GET condicional (cont.)
Cabecera Last-modified
En mensajes Respuesta que contienen objetos
Indica fecha y hora de la ltima modificacin o
actualizacin del objeto
Su valor es crucial para el cach de objetos
En el Cliente (Navegador), y
En los Servidores Cach (Proxy)
IT-AUT-UAH
59
HTTP
GET condicional (cont.)
Cabecera If-Modified-Since
En mensajes de solicitud del tipo GET condicional
Implica una Solicitud condicionada
Se pide objeto slo si ha sido actualizado con posterioridad a lo
que indique el valor de esta cabecera
Contiene:
Fecha y hora de la ltima modificacin del objeto en cach
Previamente recibida en cabecera Last-modified, de mensaje
Respuesta que port objeto con antelacin
IT-AUT-UAH
60
30
26/04/2011
HTTP
Respuesta a un GET condicional
Si objeto solicitado NO ha sido modificado
Servidor responde con:
Mensaje 304 Not modified, y
Indica que copia de objeto en cach es actual, puede ser
utilizada por el cliente
Cuerpo de mensaje vaco
61
HTTP
Ejemplos con GET condicional
Se pide un objeto, identificado por /fruta/kiwi.gif
Mensaje de Solicitud:
Mensaje de Respuesta:
HTTP/1.0 200 OK
Date: Wed, 12 Aug 1998 15:39:29
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 09:23:24
Content-Type: image/gif
( ..contenido del objeto)
IT-AUT-UAH
62
31
26/04/2011
HTTP
Ejemplos con GET condicional (cont.)
Pasados un tiempo, se vuelve a pedir el mismo objeto
Mensaje de Solicitud:
IT-AUT-UAH
63
HTTP
Servidor Proxy para Cach WEB
Implementacin cach WEB en dispositivo de red
Cach Web a mayor escala que en el Navegador
64
32
26/04/2011
HTTP
Servidor Proxy* (cont.)
Acta como mecanismo:
De mejoramiento de las prestaciones ya
antes apuntado,
De replicacin y distribucin de contenidos, y
De utilizacin ms eficiente de los accesos a
Internet y accesos internacionales, sobre
todo para objetos muy demandados
Mayor rendimiento de las comunicaciones
IT-AUT-UAH
65
HTTP
Clientes HTTP solicitando objetos a travs de un Servidor Proxy
COMPUTER NETWORKING. A Top_Down Approach Featuring the Internet. Third Edition by Kurose, J. F. and Ross, K. W. Pearson Education, Inc. 2003
IT-AUT-UAH
66
33
26/04/2011
HTTP
Servidor Proxy (cont.)
Normalmente todo ISP dispone de un Proxy Cach
Institucional u Operador de Telecomunicacin
IT-AUT-UAH
67
HTTP
Cuello de botella entre la Internet y una Intranet
COMPUTER NETWORKING. A Top_Down Approach Featuring the Internet. Third Edition by Kurose, J. F. and Ross, K. W. Pearson Education, Inc. 2003
IT-AUT-UAH
68
34
26/04/2011
HTTP
Servidor Proxy en la Intranet
Requiere:
Interceptacin: mecanismo de re
direccionamiento de solicitudes
Web a un Proxy, o
Configuracin del Navegador Web
COMPUTER NETWORKING. A Top_Down Approach Featuring the Internet. Third Edition by Kurose, J. F. and Ross, K. W. Pearson Education, Inc. 2003
IT-AUT-UAH
69
HTTP
Servidor Proxy (cont.)
Normalmente los Navegadores pueden ser
configurados para dirigir sus solicitudes a un
Proxy-Cach, o a varios, segn el caso
Se requiere conocer nombre de la(s) mquina(s) que
acta(n) como Proxy, y el puerto a travs del cual
brinda(n) este servicio
Informacin brindada por el Administrador de la red
70
35
26/04/2011
HTTP
Ejemplo de GET condicional con servidor Proxy
Halsall, Computing Networking and the Internet, 5th Edition Pearson Education Limited 2005
IT-AUT-UAH
71
HTTP
Cach WEB jarrquico
IT-AUT-UAH
72
36
26/04/2011
HTTP
Otros mecanismos Cach WEB
Cach WEB pasivo
Servidor Proxy pregunta al servidor WEB slo cuando
recibe peticin en relacin a un objeto
IT-AUT-UAH
73
HTTP
Cach WEB cooperativo
Mecanismo para mejorar el servicio Cach
WEB entre servidores Proxy
Implica cooperacin entre Servidores Proxy
A travs de la red, Intranet o Internet
IT-AUT-UAH
74
37
26/04/2011
HTTP
Protocolos de coordinacin entre Proxys WEB
Soportan dilogo de control entre Servidores Proxy
Entre ellos resuelven la bsqueda de un objeto
Uno pregunta al otro sobre objeto solicitado
IT-AUT-UAH
75
HTTP
Permanencia de objetos en cach WEB
Depende del tipo de contenido
Contenidos muy dinmicos, que varan con frecuencia
En principio nunca deberan guardarse en cach
Se hacen obsoletos muy rpidamente
Elementos de referencia
Valor de cabecera Last-Modified en mensajes de Respuesta
Valor de cabecera If-Modified-Since en mensajes de Solicitud GET
condicional
IT-AUT-UAH
76
38
26/04/2011
HTTP
Adems del cach WEB
Hay otros mecanismos para mejorar prestaciones
del servicio WEB, p.e:
Rplica de servidores WEB
Espejos (mirrors) o granjas (farms) de servidores
Rplica de contenidos WEB en mltiples ubicaciones
geogrficas, considerablemente separadas
En principio, las rplicas pueden ser estticas o dinmicas
Estticas actualizacin manual
Dinmicas actualizacin automtica
En la prctica, generalmente rplicas estticas
IT-AUT-UAH
77
Bibliografa
COMUNICACIONES Y REDES DE COMPUTADORES.
Williams Stallings. Prentice Hall. 6 edicin. 2000.
REDES DE COMPUTADORES. A. s. Tanenbaum. Pearson
Prentice Hall. 4 edicin. 2003.
REDES DE COMPUTADORES. Un enfoque descendente
basado en Internet. J. f. Kurose y K. W. Ross. Pearson
Addison Wesley. 2 edicin. 2004.
REDES DE COMPUTADORES E INTERNET. Fred Halsall.
Pearson Educacin, S.A. 2006
IT-AUT-UAH
78
39