Post on 23-Jan-2016
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
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