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