La Web y el HTTP. Antes del año 1990 Internet era usado por InvestigadoresAcadémicosEstudiantes...

Preview:

Citation preview

La Web y el HTTP

Antes del año 1990 Internet era usado por

Investigadores Académicos Estudiantes

Transferir archivos

logearse remotamente

Enviar/recibir noticias E-mail

Mundo académico y de investigación

Usado para

A principios de 1990 llego la aplicación mas popular.

La World Wide Web

Redes de datos

Red de datosunifico

• La Web opera (on demand)

Usuario recibe Lo que quiere cuando quiere

• Difiere de la televisión donde hay que sintonizar un programa a la hora y día indicados

• HyperLinks/ Los buscadores• Los grafcos hacen mas atractiva la interacción• Aplicaciones Java/Javascripts• Aplicaciones posteriores a 2003

Youtube/Gmail/Facebook/Twitter

HyperText Transfer Protocol

• El corazón de la web• RFC1945/RFC2612• Es implementado en dos programas• Implementado en diferentes Host• Intercambian mensajes intercambiando

mensajes HTTP

• HTTP define la estructura de los mensajes y como el cliente y el servidor intercambian mensajes.

Definciones

• Pagina Web -También llamado documento• Esta constituido por documentos• Un archivo HTML• Imágenes JPEG• Applet de Java• Un video clip

• La mayoría de las paginas Web consisten en un archivo base HTML y varios objetos referenciados.

• Ejemplo– Si una pagina web contiene un HTML y 5 imágenes

esta contiene 6 objetos.– El archivo HTML hace referencia a los objetos.

http://www.razonamientoartificial/redes

ruta

HTTP define • como los clientes pueden pedir paginas web

de los web servers• Como los servidores transfieren paginas web a

los clientes• HTTP usa TCP

• El cliente HTTP inicia una conexión con el servidor.– El browser y el servidor acceden a esa conexión

mediante los sockets• El cliente envía un mensaje de petición http

request message a través de su socket• El cliente recibe un mensaje de respuesta

response mesage

• El servidor recibe una petición de conexión través de su socket

• El servidor envía una respuesta

• Una vez que envía el mensaje este esta en manos de la capa de transporte

• HTTP no tiene que preocuparse de la perdida de información, etc. Eso lo realiza la capa de transporte/TCP

• Es importante mencionar que el servidor envía los archivos pedido por el usuario, sin guardar información de estado acerca de el.

• Esto es por que HTTP no guarda información de estados

• Un servidor web se supone que siempre debe esta disponible y con una dirección IP fija, y debe de poder servir a millones de usuarios.

Conexión HTTP no persistente

• Supongamos que tenemos una pagina Html y 10 imágenes Jepg, es decir 11 objetos

• De la pagina http://www.razonamientoartificial/redes

• El proceso de cliente inicia una conexión TCP, al servidor www.razonamienotartificial.com, usando el puerto 80, el cual es el default para el protocolo HTTP. Asociado a la conexión TCP habrá un socket en el cliente y el servidor.

• El cliente envía un mensaje de petición HTTP el mensaje inlcuye la ruta /redes/index.html

• El servidor recibe la petición por su socket, recupera el objeto /redes/index.html de su disco duro/RAM/donde este, encapsula el objeto en el mensaje de respuesta y lo envía al cliente.

• El servidor le avisa a TCP que va a terminar la conexión TCP (en realidad no termina hasta que se confirma que llego bien a su destino)

• El cliente HTTP recibe el mensaje. La conexión TCP termina. El mensaje que recibe es un objeto HTML. El cliente extrae el archivo del mensaje respuesta, lo examina y encuentra una referencia a otros 10 objetos Jepg

• Los pasos anteriores se reputen por cada objeto referenciado

• HTTP n tiene nada que ver en como interpretar la pagina web

• HTTP solo define la forma en comunicar el programa cliente con el servidor.

• Importante-Los pasos anteriores ilustran el proceso de conexiones no persistentes en el que

• Cada conexión TCP es cerrada una ves que el cliente envió el objeto

• Si el usuario requiriera los 11 objetos se tendrían que realiza 11 conexiones

Iniciar conexión

Archivo pedido

Tiempo para transmitir el archivo

Tiempo en el cliente Tiempo en el servidor

Archivo entero recibido

Conexiones persistentes con HTTO

• Cada nueva conexión debe ser mantenida y mantenida por cada objeto requerido

• Los buffers TCP deben de mantener las variable en el cliente y el servidor. (mas espacio de memoria) por cada conexión

• Con este tipo de conexiones, el server deja la conexión TCP abierta hasta recibir una respuesta.

• Peticiones y las respuestas son manejadas a través de la misma conexión.

• Del ejemplo anterior las imágenes y la pagina web son enviadas a través de la misma conexión

Formato de mensajes de HTTP

GET /algunadireccion/pagina.html HTTP/1.1Host:www.razonamienotartificial.comConnection: close no persistenteUser-agent: Mozilla/5.0Accept-language: es

Request line

• Tiene tres campos• El campo del metodo, el campo del url y la

version de HTTP• El campo del metodo puede tener los

siguientes valores.– GET,POST,HEAD,PUT y DELETE

• La mayoia de los mensajes usan GET

GET

• Es el mas usado para obtener objetos, identificado por un URL

• www.buscador.com/busqueda?redes&tcp• Usando GET

Respuesta del cliente

HTTP/1.1 200 OKConnection:close cerrar después de enviarDate: tue,09 Aug 2013 15:44:04 GMT->Indica la fecha en que fuer creada la respuesta.Server: Apache/2.2.3 (CentOS)Last-Modified: tue,09 Aug 2013 15:11:04 GMT-> Cuando fue creadoContent-Lenght:6821-> en bytesContent-Type:text/html(Datos…………………….)

• 200 OK:• 301 Movido permanentemente• 400 Bad request: El servidor no entendió lo

que pidió el cliente• 404• 505 Versión de HTTP no soportada

• En el header set-cookie:1678

Web caching

Recommended