Redes de Computadores II

Anuncio
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Redes de Computadores II
Capa de Aplicación
HTTP
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Las siguientes láminas son material de apoyo para el estudio de
la materia de Redes II. No son un contenido exhaustivo del
material. Se recomienda suplementar su estudio mediante el
uso de los libros recomendados y la bibliografía anexa.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Agenda
• Clase 1
▫ World Wide Web
 CERN
▫ HTTP
• Clase 2
▫ HTTP (Continuación)
▫ CDN
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Abreviaciones Varias
•
•
•
•
•
•
•
•
•
•
•
•
HTML
XML
XSL
XSLT
CSS
HTTP
Hipertexto
URI
URL
URN
Cookie
Documentos
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
WWW: World Wide Web
• Hipertexto (Ted Nelson 1960)
▫ Enlaces entre documentos.
▫ “Xanadu”
• CERN
▫ Consejo Europeo para le Investigación Nuclear.
• Tim Berners-Lee. 1989
▫ Necesidad de compartir documentos en equipos
internacionales, para planificar los experimentos.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
WWW
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
WWW
• HTML
▫ “Lenguaje” de la web
• HTTP
▫ Protocolo de la web
• URI
▫ Identificación de recursos.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
WWW: HTML
• Hypertext Markup Language
• Basado en SGML
▫ Standard Generalized Markup Language
• Provee información acerca de cómo mostrar
partes de la información.
▫ Ejemplo: hipervínculos.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
WWW: URI
• Uniform Resource Identifier
• Se clasifican en:
▫ URL (UR Locator)
 Identifica un recurso indicando como acceder a
dicho recurso.
 Son los enlaces usados en la WWW
▫ URN (UR Name)
 Identifica el recurso basado en su nombre.
 Trabajo en progreso.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
WWW: URL
• Sintaxis
▫ http://<user>:<password>@<host>:<port>/<url-path>?<query>#<bookmark>
• Son
▫
▫
▫
▫
▫
▫
user y password son los obvios.
host: nombre DNS o IP.
puerto: 80 (común), 8080 (alternativo)
url-path: camino al recurso.
query: parametros adicionales
bookmark: fragmento a buscar dentro del
documento.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• Hypertext Transfer Protocol
▫ Versión 1.1
• “HTTP/0.9”
• HTTP/1.0
• HTTP/1.1
• ¿Futuras versiones?
▫ SPDY (propuesta Google)
▫ HTTP sobre SCTP.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• HTTP/0.9
▫ Primera versión. Transferencia básica de archivos
de hipertexto únicamente.
• HTTP/1.0
▫ MIME (RFC 822)
 Cumplimiento no estricto
▫ Un objeto por conexión TCP
▫ Un “site” por IP.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• HTTP/1.1
▫
▫
▫
▫
Múltiples sites
Conexiones persistentes
Caching & Proxy
Mejoras en seguridad.
 Autorizaciones, consciente del problema.
▫ “Content Negotiations”
 Pedir el contenido en un idioma especifico.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• Arquitectura Cliente/Servidor
▫ El cliente solicita
▫ El servidor responde.
• Intermediarios. Cadena de
Solicitud/Respuesta
• ¿Qué sucede con las copias del
cache?
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• ¡Stateless!
▫ Los servidores no mantienen información acerca
de los clientes.
• ¿Cómo hacen por ejemplo Módulo 7 o
Facebook?
▫ Cookies
▫ ID de sesión
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• Conexiones
▫ “Transitorias”. Un recurso
por conexión
 Versiones < HTTP/1.1
▫ “Persistentes”. Múltiples
recursos por conexión.
 HTTP/1.1
• ¿Por qué permitir poder
obtener múltiples recursos con
un sola conexión?
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• Pipelining (Pipelines)
▫ Múltiples solicitudes “simultaneas”.
▫ ¿Ventajas?
▫ ¿Desventajas?
• Terminación de conexión
▫ ¿Responsabilidad de quien?
▫ Imprevistos.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Continuación
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
Mensajes
Métodos
•
•
•
•
•
•
•
•
•
•
•
•
•
Línea Inicial
“Encabezados”
Línea en blanco
“Cuerpo”
“Marcadores”
GET
HEAD
POST
PUT
DELETE
OPTIONS
TRACE
CONNECT
▫ Reservado para futuro
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• <Método> <URI> <Versión HTTP>
▫ Método
▫ URI: el recurso solicitado
 Solo el “path” (/downloads/index.html)
 Excepciones:
 Proxies: URL intacto
 OPTIONS: *
▫ Versión.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• Métodos
▫ Seguros:
 GET, HEAD, OPTIONS, TRACE
▫ Idempotentes:
 Todos excepto POST.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP
• Código de respuesta
▫ 1xx: Mensaje de información
▫ 2xx: Éxito
▫ 3xx: Redirección
 301 (Permanente), 302 (Temporal)
▫ 4xx: Error del cliente
 404, 403 (Prohibido)
▫ 5xx: Error del servidor
 500 (Genérico), 503 (No disponible)
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP: Encabezados
• Generales
▫ Cache, Date, Transfer-Encoding, …
• Request
▫ Host, Accept, If-Modified-Since, User-Agent, …
• Response
▫ Age, Location (3xx)…
• Entity
▫ Información del recurso (entidad en HTTP)
muchos son iguales a los encabezados MIME.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP: Cache
• Local (Privado) o Browser
• “Proxy” (Público o Compartido)
• Servidor
▫ ¿Por qué?
 Archivos complejos.
• ¿Desventajas?
• ¿Ventajas?
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP: Proxy
• Un “servidor” que funciona como intermediario
entre el cliente y el servidor final
• ¿Ventajas?
• ¿Desventajas?
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP: Seguridad
• Basic:
▫ Usuario y clave en base64.
• Digest
▫ MD5, SHA-1, …
• ¡La información igual igual viaja sin cifrado!
¿Cómo resolverlo?
▫ SSL (HTTPS)
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
HTTP: Cookies
• Mantener información del “estado”
▫ HTTP es stateless
• Problemas
▫ Información privada
▫ “Tracking”
▫ Cookies de terceros.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
CDN
• Content Delivery/Distribution Network
• Un sistema de computadoras con copias de la
información ubicadas para maximizar el ancho
de banda disponible y disminuir la carga sobre
un servidor central.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
CDN
• Puede ofrecer 100% disponibilidad.
▫ ¿Cómo?
• Puede ofrecer
▫ Menor retardo
▫ Menor fluctuación
▫ Mejor calidad de servicio.
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
CDN
• Reducir costos de ancho de banda.
• Incrementar disponibilidad del contenido
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
CDN: Técnicas.
•
•
•
•
•
Caches Web
Balanceo de carga (Switches capa 4-7)
Redireccionamiento basado en DNS
Reescritura HTML
“Anycasting”
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
CDN: P2P
• Bittorrent
▫ Excelente para material muy buscado.
▫ Ineficiente para material “viejo”.
• Problemas con el control de calidad.
▫ http://www.p2p-next.org/
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Bibliografía
• Redes de Computadoras. 4ta Edición. Andrew S. Tanenbaum
▫
Capitulo 7: La Capa de Aplicación
• TCP/IP World Wide Web (WWW, "The Web") and the Hypertext Transfer Protocol
(HTTP)
▫
http://www.tcpipguide.com/free/t_TCPIPWorldWideWebWWWTheWebandtheHypertextTransferP.htm
• Hypertext Transfer Protocol
▫
▫
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol
• HTTP - Hypertext Transfer Protocol
▫
http://www.w3.org/Protocols/
• HTTP Made Really Easy
▫
http://www.jmarshall.com/easy/http/
Ing. Jorge Giménez
http://www.jggimenez.net/ucab/
Bibliografía
• Content delivery network
▫
http://en.wikipedia.org/wiki/Content_delivery_network
• A Case for Peering of Content Delivery Networks
▫
http://dsonline.computer.org/portal/pages/dsonline/2006/10/o10003.html
• Globule: a Collaborative Content Delivery Network
▫
http://www.globule.org/publi/GCCDN_commag2006.html
• CDN Research Directory
▫
http://ww2.cs.mu.oz.au/~apathan/CDNs.html
Descargar