Redes de Computadores II Capa de Aplicación HTTP
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.
Agenda Clase 1 World Wide Web CERN HTTP Clase 2 HTTP (Continuación) CDN
Abreviaciones Varias HTML XML XSL XSLT CSS HTTP Hipertexto URI URL URN Cookie Documentos
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.
WWW
WWW HTML Lenguaje de la web HTTP Protocolo de la web URI Identificación de recursos.
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.
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.
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.
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.
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.
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.
HTTP Arquitectura Cliente/Servidor El cliente solicita El servidor responde. Intermediarios. Cadena de Solicitud/Respuesta Qué sucede con las copias del cache?
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
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?
HTTP Pipelining (Pipelines) Múltiples solicitudes simultaneas. Ventajas? Desventajas? Terminación de conexión Responsabilidad de quien? Imprevistos.
Continuación
HTTP Mensajes Línea Inicial Encabezados Línea en blanco Cuerpo Marcadores Métodos GET HEAD POST PUT DELETE OPTIONS TRACE CONNECT Reservado para futuro
HTTP
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.
HTTP Métodos Seguros: GET, HEAD, OPTIONS, TRACE Idempotentes: Todos excepto POST.
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)
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.
HTTP: Cache Local (Privado) o Browser Proxy (Público o Compartido) Servidor Por qué? Archivos complejos. Desventajas? Ventajas?
HTTP: Proxy Un servidor que funciona como intermediario entre el cliente y el servidor final Ventajas? Desventajas?
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)
HTTP: Cookies Mantener información del estado HTTP es stateless Problemas Información privada Tracking Cookies de terceros.
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.
CDN Puede ofrecer 100% disponibilidad. Cómo? Puede ofrecer Menor retardo Menor fluctuación Mejor calidad de servicio.
CDN Reducir costos de ancho de banda. Incrementar disponibilidad del contenido
CDN: Técnicas. Caches Web Balanceo de carga (Switches capa 4-7) Redireccionamiento basado en DNS Reescritura HTML Anycasting
CDN: P2P Bittorrent Excelente para material muy buscado. Ineficiente para material viejo. Problemas con el control de calidad. http://www.p2p-next.org/
Bibliografía Redes de Computadoras. 4 ta 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/
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