Está en la página 1de 22

Lic.

Roberto Vargas Blacutt


2021
Contenido

● Nuestro propósito es estudiar algunas de las


aplicaciones y servicios de red mas importantes
● Para comenzar presentaremos la World Wide Web
(WWW) o la Web, no sólo porque es una aplicación
enormemente popular, sino porque también su
protocolo de la capa de aplicación, HTTP es sencillo y
fácil de comprender.
● Nuestro estudio incluirá las características de HTTP,
sus operaciones o métodos, el formato de los
mensajes HTTP y almacenamiento cache web

Web y HTTP @Roberto Vargas Blacutt 2


World Wide Web

● WWW o Web - Sistema Abierto y en Evolución


○ Es una aplicación cliente-servidor basada en el protocolo HTTP
○ Publicación y acceso a recursos y servicios a través de Internet

● Componentes Tecnológicos
○ HTML (HyperText Markup Language) - Especifica contenido y estructura
○ URL (Uniform Resource Locator) - Identifica y localiza un recurso
■ http://Servidor [:puerto] [/RutaDelServidor] [? argumentos]
○ HTTP (Hyper Text Transfer Protocol)
■ Define la forma como los navegadores y otros clientes interactúan con servidores Web

Web y HTTP @Roberto Vargas Blacutt 3


HyperText Transfer Protocol (HTTP)

● Protocolo de transferencia de hipertexto


[RFC 1945] y [RFC 2616]
● Es el protocolo de capa de aplicación de PC running
la Web Chrome browser

● Modelo cliente – servidor


○ Cliente: Navegador usa el protocolo HTTP para
solicitar, recibir y mostrar objetos web server
○ Servidor web: Envía objetos en respuesta a running
solicitudes usando el protocolo HTTP Apache Web

● Versiones
server

○ HTTP/1.0 Versión mas conocida - HTTP/1.1


iphone running
protocolo mejorado – HTTP/2 Safari browser

Web y HTTP @Roberto Vargas Blacutt 4


HTTP

HTTP utiliza TCP HTTP - protocolo sin estado

● Cliente inicia la conexión TCP ● Servidor no mantiene información


○ crea un socket al servidor, puerto 80 de las solicitudes pasadas del
● Servidor acepta la conexión del cliente
cliente ● Trata cada petición como una
● Intercambio de mensajes HTTP transacción independiente que no
○ Mensajes de protocolo de capa de tiene relación con cualquier solicitud
aplicación anterior
○ cliente HTTP (browser) y servidor HTTP
(servidor Web)
● Protocolos que mantienen el estado
● Cierre de conexión
son complejos!

Web y HTTP @Roberto Vargas Blacutt 5


Conexiones HTTP – Dos tipos

No persistentes Persistentes

● Cada par petición/respuesta son ● Todos las peticiones y sus


enviados sobre una conexión TCP correspondientes respuestas son
separada enviados sobre la misma conexión
TCP
● Un solo objeto es enviado sobre una ● Múltiples objetos pueden ser
conexión, luego la conexión es enviados sobre una única conexión
cerrada. TCP
● Modo por defecto de HTTP 1.1

Web y HTTP @Roberto Vargas Blacutt 6


Ejemplo HTTP conexión no persistente
El cliente solicita la pagina web usando el URL http://www.informatica.edu/redes/home.html
que incluye 5 imágenes JPEG
1a. Cliente HTTP inicia conexión al servidor 1b. Servidor HTTP espera una conexión TCP en puerto
80. Se “acepta” conexión notificando al cliente

2. Envía petición HTTP al socket de la conexión.


El mensaje solicita el objeto /redes/home.html 3. Servidor recibe mensaje de petición, arma el
mensaje de respuesta con el objeto solicitado y lo
envía a su socket
5. Cliente recibe el archivo HTML (respuesta), lo 4. Servidor HTTP cierra la connection TCP.
interpreta y despliega. Encuentra 5 objetos
referenciados

6. Pasos del 1 al 5 se repiten por cada uno de los 5 objetos

Web y HTTP @Roberto Vargas Blacutt 7


Estimación de tiempo de respuesta

RTT - Tiempo de Ida y vuelta (Round-trip time)


Tiempo en que un paquete viaja del cliente al servidor y
luego de vuelta al cliente
Inicia conexión
TCP
RTT
RTT No persistente
Archivo
solicitado 1 RTT inicio de la conexión
Tiempo de
RTT trasmisión 1 RTT petición HTTP y 1ros. bytes de
archivo
respuesta
Archivo = 2RTT + Tiempo de trasmisión del
recibido
archivo

time time

Web y HTTP @Roberto Vargas Blacutt 8


Conexiones Persistentes HTTP (HTTP 1.1)

● Inconvenientes de las conexiones no persistentes


• Requiere 2 RTTs por objeto
○ Sobrecarga del SO para tratar cada conexión TCP
○ Navegadores abren múltiples conexiones TCP para recuperar objetos en paralelo
● HTTP Persistente (HTTP 1.1)
○ Servidor deja la conexión abierta después de enviar la respuesta
○ Mensajes HTTP subsecuentes entre el mismo cliente/servidor son enviados sobre la
conexión abierta
○ Cliente envía solicitudes tan pronto como encuentre un objeto referenciado
■ Un RTT para todos los objetos referenciados (reduciendo el tiempo de respuesta a la mitad)

Web y HTTP @Roberto Vargas Blacutt 9


Formato de los mensajes HTTP

● HTTP tiene dos tipos de mensajes


○ Mensajes de petición
○ Mensajes de respuesta
● Cada mensaje se compone de tres partes
○ Línea de petición/respuesta
○ Una sección de encabezados
○ Una línea en blanco
○ El cuerpo del mensaje

Web y HTTP @Roberto Vargas Blacutt 10


Formato de mensajes HTTP
Mensaje de petición Mensaje de respuesta

Web y HTTP @Roberto Vargas Blacutt 11


Métodos HTTP
● GET ● HEAD
○ Solicita el recurso identificado por un
○ Solicita únicamente cabeceras HTTP
URL al servidor, que podrían ser
○ Puede incluir datos del usuario en el devueltas si el URL especificado
campo URL de la petición fuera solicitado mediante un GET
○ www.umsa.bo/buscar?informatica
● PUT
● POST
○ Sube el archivo a la ruta
○ Las paginas web con frecuencia
especificada en el campo URL
incluyen formularios
○ Los datos ingresados por el usuario ● DELETE
son enviados al servidor en el cuerpo
del mensaje (body)
○ Borra el archivo especificado en el
campo URL

Web y HTTP @Roberto Vargas Blacutt 12


Códigos de estado (algunos)

● 200 OK - Petición exitosa

● 301 Moved Permanently - Objeto movido a la ubicación especificada

● 400 Bad Request - Mensaje de petición no entendida por el servidor

● 404 Not Found - Objeto solicitado no encontrado

● 505 HTTP Version Not Supported - Versión no soportada por el servidor

Web y HTTP @Roberto Vargas Blacutt 13


Telnet a tu servidor web
Abre una conexión TCP con el puerto 80 (Puerto HTTP por defecto)
telnet localhost 80

Digita una petición GET


GET /prueba.html HTTP/1.1

Después de digitar presiona CR dos veces

Habrás enviado una petición GET mínima pero completa al servidor HTTP. Observa el mensaje de
respuesta enviado por el servidor HTTP!
(o usa Wireshark para el trafico HTTP capturado)

Prueba tu mismo un cliente HTTP

Web y HTTP @Roberto Vargas Blacutt 14


Cookies

● Un servidor HTTP no tiene memoria del estado de la conexión


○ No mantiene información acerca de sus clientes
● Los cookies pueden ser usados para identificar a los usuarios
○ Usados para autorización, carrito de compras, E-commerce
● Como mantener el “estado”? – 4 componentes
○ Cabecera HTTP - cookie - en mensaje de respuesta
○ Cabecera HTTP - cookie - en el siguiente mensaje de solicitud
○ Un archivo cookie es mantenido en el host del usuario y es gestionado por el
browser
○ Una base de datos en el sitio Web

Web y HTTP @Roberto Vargas Blacutt 15


Cookies – Manteniendo el estado
Como mantener el estado?
Protocolos en los extremos
• Mantienen el estado
emisor/receptor sobre múltiples
transacciones
Cookies
• Mensajes HTTP mantiene el
estado
• Crean una capa de sesión
por encima de HTTP

Cookies y Privacidad
Los cookies pueden
considerarse como una
invasión de la intimidad
del usuario

Web y HTTP @Roberto Vargas Blacutt 16


Cache Web - servidor proxy
Satisface las peticiones HTTP en nombre
de un servidor web de origen
proxy
Mantiene una copia de los objetos server
recientemente solicitados client
origin
server
Browser puede ser configurado para
enviar peticiones al cache

Si el objeto esta en cache, el cache


retorna el objeto
client origin
Si no, cache lo solicita al servidor de server
origen, y luego devuelve el Cache actúa como cliente y servidor
objeto al cliente

Web y HTTP @Roberto Vargas Blacutt 17


Por que Cache Web ?

origin
servers • Típicamente es instalado por un ISP
public (universidad, empresa)
Internet
• Reduce el tiempo de respuesta para la petición
de cliente

1.54 Mbps • Reduce el trafico en los enlaces de acceso


institutional access link
network
• Los Web caches son ampliamente usados en
CDNs (Content Distribution Networks )
1 Gbps LAN
CDNs Compartidos Akamai y Limelight
local web CDNs Dedicados - Google y Microsoft
cache

Web y HTTP @Roberto Vargas Blacutt 18


HTTP/2
Objetivo central es disminuir los retardos en solicitudes HTTP multi-objeto

HTTP/1.1 HTTP/2 [RFC 7540, 2015]


• Múltiples GETs sobre una única • Mejora la flexibilidad del servidor
conexión TCP para el envío de objetos a clientes
• Servidor atiende peticiones en • Incluye métodos y códigos de
modo FIFO estado adicionales
• Problema: objetos pequeños deben • Orden de la transmisión de objetos
esperar su transmisión después de basadas en prioridad establecidas
uno de gran tamaño por el cliente
○ Bloqueo al inicio de la cola - head-of- • Divide objetos en frames, las que se
line (HOL) blocking
planifican para mitigar el bloqueo
HOL

Web y HTTP @Roberto Vargas Blacutt 19


HTTP/2 Reduciendo bloqueo HOL
HTTP/1.1 HTTP/2
Peticiones de cliente - 1 objeto grande (Video) y 3 Objetos divididos en frames y su transmisión intercalada
objetos pequeños
server
server
GET GET GET GET object data
GET object data O4 O3 requested
GET GET O2 O1
O4 GET requested client
client O3 O2 O1

O1 O1

O2 O2
O3 O3
O4 O4
Objetos entregados en orden: O2, O3, O4
esperan detrás de O1 O2, O3, O4 entregados rápidamente, O1
ligeramente demorado

Web y HTTP @Roberto Vargas Blacutt 20


Trabajo en casa
En el contexto de las aplicaciones basadas
en la Web, ¿qué papel juega cada uno de
los siguientes lenguajes/protocolos? HTML,
MIME, XML, HTTP, CGI.

Revisa tu maquina y halla el


almacenamiento cache local que usa tu
navegador. Tienes alguna(s) cookies?

Que debo preparar para la siguiente clase?


Email y DNS

Web y HTTP @Roberto Vargas Blacutt 21


Fin

También podría gustarte