INTERCAMBIO DE OBJETOS



Documentos relacionados
Tema 2: Protocolo HTTP.

Tema 2 El Servicio Web

HyperText Transfer Protocol

HyperText Transfer Protocol

PROTOCOLO HTTP. Hypertext Transfer Protocol

Capa de Aplicación (Parte 2 de 2)

HTTP. Redes I. Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de GSyC HTTP 1

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

DESARROLLO DE APLICACIONES PARA LA WEB II

Curso 2008/2009 Arquitecturas Distribuidas 3

Ataques Web Automáticos: Identificación, Engaño y Contraataque

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

TEMA 3: La Aplicación World Wide Web

Funcionamiento de Servicios Web, FTP

5.1 Introducción. 5.2 El protocolo HTTP.

Protocolos de WWW. Bibliografía: Redes de Computadores: un enfoque descendente basado en Internet : J.F Kurose y K.W. Ross. GSyC 2007.

Tema 4. II - Cookies. Arquitecturas Distribuidas 11/12

La web (el servicio WWW)

WEB Y HTTP. HTTP: Hypertext Transfer Protocol [RFC 1945] [RFC 2616] Web Page URL (Uniform/Universal Resource Identifier)

Manual Desarrollador Externo

WWW (HTTP PROXY - CACHING)

Análisis del Proxy-Cache y Reverse-Proxy

Redes de Computadoras Práctica 4: World Wide Web

AUTENTIFICACIÓN HTTP

Arquitecturas REST (Representa3onal State Transfer)

Bloque II: El nivel de aplicación. Tema 3: Aplicaciones orientadas a conexión

Aplicaciones Web. Introducción. David Cabrero Souto. Grupo MADS ( Universidade da Coruña

documentos electrónicos enlazados HTML (Hyper-Text Mark up Language) HTTP (Hiper-Text Transfer Protocol)

Desarrollo y servicios web

ARQUITECTURAS CLIENTE/SERVIDOR

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Challenge/Response en Windows NT

Desarrollo y servicios web

Documentación de la API clickline.com

Qué es un servicio de Proxy?

Testing de Seguridad de Aplicaciones Web

Redes de Computadores II

DIPLOMADO EN SEGURIDAD INFORMATICA

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

Sistemas de Caché. Para mejorar la velocidad de carga de una web. papers. acens

Introducción a las Redes de Computadoras. Obligatorio

Práctica IV Anexo sobre protocolos

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

Fundamentos de Computadores

Seguridad en Aplicaciones Web

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

RED IP DE TELEFÓNICA DE ESPAÑA GUÍA DE PROVEEDOR DE LA FUNCIONALIDAD DE PROXY-CACHÉ

Servicio de publicación de información web (HTTP)

Tema 4: Diseño e Implementación de la Capa Web

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI

El servidor Web Tema 2.- Nivel de aplicación en Internet

Protocolo HTTP Apache. Servicios HTTP. Esteban De La Fuente Rubio L A TEX. Universidad Andrés Bello. 17 jun 2011

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Introducción a las Redes de Computadoras

Programación páginas web. Servidor (PHP)

Control de acceso para aplicaciones Web

Servicio WEB Declaraciones de Aduanas e II.EE.

Sesiones en PHP. Área de Ingeniería Telemática

Silex. Microframework y camino fácil de aprender Symfony. PHP Tutorial Screencasts

SQL INJECTION. Benitez, Marcelo Chinikailo, Cristian De la Cruz, Leonardo Klas, Julián Criptografía y Seguridad Informática.

Clientes y Servidores Servicios DNS, HTTP, SMTP. Clientes y Servidores Servicios DNS, HTTP, SMTP

Tema 4: Tecnologías Web Java

Servlets. Seminario de Programacion Rafael Vázquez Pérez

Proxies y CDN. Distribución: Proxy Cachés Content Distribution Networks UNIVERSITAT POLITÈCNICA DE CATALUNYA

Introducción al desarrollo web (idesweb)

Taller de Sistemas de Información 1. Desarrollo web

Introducción a las redes de Computadoras Capítulo 2 Clase 2

RED IP DE TELEFÓNICA DE ESPAÑA GUÍA DE EMPRESAS DE LA FUNCIONALIDAD DE PROXY-CACHÉ

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Módulo III Servidores Web y Aplicaciones Web

qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjklzxcvb nmqwertyuiopasdfghjklzxcvbnmqwer

CGI. Qué significa CGI?

Tecnologías De La Información Y Comunicación I. Firewall Y Proxy. Integrantes: Héctor Duran. Katherine Zumelzu

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

Aspectos básicos de redes Ing. Aníbal Coto Cortés

REDES Y EL INTERNET. Esquema para complementar la presentación de diapositivas. 1. Redes y el Internet Un Manual para fiscales e investigadores

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Protocolos de Capa de aplicación. Protocolos de comunicación (Correo, Web)

URL. Después de los dos puntos: se interpreta según el método de acceso. Suele contener direcciones y puntos de acceso en una máquina. Esquema URL.

Normat_P V.2.0 RED IP DE TELEFÓNICA DE ESPAÑA GUÍA DE USUARIO DE LA FUNCIONALIDAD DE PROXY-CACHÉ

Seguridad en la transmisión de Datos

Sistemas Distribuidos Basados en la WEB

UPC-DAC/FIB-PTI 1. Seguridad en HTTP

Servidores Web E2B2C. Leandro Radusky Esteban Lanzarotti. Nov 2014

Código de ética. Temario. Herramientas. Entrar en ubuntu

Parte IIIb: Seguridad en APIs REST

Cursos de Extensión Universitaria UNIVERSIDAD DE OVIEDO. Servicios Web (II)

ARQUITECTURAS CLIENTE/SERVIDOR

Especificaciones de la Interfaz para envío de SMS

ASP.NET. Laboratorio de Programación Lorena Castañeda Bueno

AUTORES: OBREGON CARLA ROMERO MARIA MARACAIBO FEBRERO 2012

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos

Introducción a las Aplicaciones Web

Guía de migración a firma HMAC SHA256 Conexión por Redirección

Tema 1 HTTP y aplicaciones web

Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

Práctica 1. Uso básico de servicios cliente-servidor

Qué es la Web? (I) Arquitecturas Distribuidas 10/11

Transcripción:

Departament d Arquitectura de Computadors INTERCAMBIO DE OBJETOS HTTP: Hypertext Transfer Protocol Protocolo de comunicaciones estandarizado que comunica servidores, proxies-cachés y clientes. Permite la transferencia de documentos web HTTP define la sintaxis y la semántica que utilizan estos elementos para comunicarse Versiones HTTP/1.0 y HTTP/1.1 Protocolo en la capa de aplicación Web Correo FTP News HTTP POP3 SMTP FTP NNTP TCP/IP u otro Red física 2

HTTP Intercambio de mensajes de texto Se incluyen dentro de los paquetes TCP/IP Partes del mensaje: Línea inicial del mensaje Indica qué hacer (mensaje de petición) o qué ha ocurrido (mensaje de respuesta) Cabecera del mensaje Bloque de campos terminados por una línea en blanco Contiene los atributos del mensaje Cuerpo del mensaje Es opcional. Su presencia depende de la petición y del resultado. 3 HTTP Comandos de petición: GET, HEAD, POST (+ PUT, DELETE, ) Intercambio de objetos MIME Las páginas de tipo text/html (y tipos MIME integrados en el navegador) se despliegan de forma automática en el navegador Resto tipos MIME (tabla que asocia tipo MIME con un visor) GET /saludo.html HTTP/1.1 Host www.uv.es HTTP/1.1 200 OK Date: Sun, 01 May 2003 12:00:01 GMT Content-Type: text/html Content-Length: 45 <HTML> <BODY> Hola Mundo! </BODY> </HTML> 4

Proxies-Cachés Almacenan respuestas (susceptibles de ser guardadas) En una caché sólo se guardan las respuestas de las peticiones realizadas con GET y HEAD (POST no) Algunos no se puede (privados, dinámicos, de pago): WWW-Authenticate, Cache-control:private, Pragma:no-cache, Cache-control:no-cache, Set-Cookie Pueden ser activas o pasivas: Pasiva: aprovechar respuestas a peticiones de usuarios Activa: acumular documentos de interés en horas de bajo tráfico Pueden ser transparentes o no (configuradas en el navegador) Varios servidores de caché pueden cooperar jerarquía 5 Proxies-Cachés y HTTP Los mecanismos en HTTP/1.0 eran muy pobres. Pragma, Expires, If-Modified-Since y Last-Modified HTTP/1.1 añade mecanismos (cabeceras) Cache-Control, Age, Etag, El cliente puede forzar a la caché a que actualice siempre el objeto Pragma: no-cache (HTTP/1.0) Cache-Control: no-cache (HTTP/1.1) El servidor puede evitar que la caché guarde el objeto Cache-control: no-store (HTTP/1.1) 6

Proxies en HTTP/1.1 Cache-Control: Petición Respuesta No-cache No-store Max-age=sgs Max-stale Max-stale=sgs Min-fresh=sgs Only-if-cached cliente origen (cachés se inhiben) Proxy no debe almacenar perm anentem ente Petición/respta Máx "edad" aceptable obj en cachés Se aceptan objs viejos Se aceptan objs sgs segundos viejos Obj ha de quedarle sgs de vida Petición si sólo está en caché Public Private Private="cabc" No-cache No-cache="cabc" No-store No-transform M ust-revalidate Max-age Se puede cachear por proxies y cliente Sólo caché cliente Todos pueden excepto cabecera cabc: sólo caché cliente No cacheable ni en proxies ni cliente Com binación de los dos anteriores Nadie puede almacenar perm. (sólo mem) Proxies no pueden transf. contenido Revalidar (con origen) si es necesario Margen de edad en segundos 7 Proxies-Cachés Necesitan asegurar que los contenidos guardados en la caché son equivalentes a los almacenados en el servidor. Modelo de expiración: Reduce las peticiones al servidor Modelo de validación: Reduce la cantidad de datos a transmitir Proxy Proxy Navegador Servidor Origen 8

Proxies-Cachés: modelo de expiración 9 Proxies-Cachés: modelo de expiración Determina si el tiempo que lleva almacenado el objeto en la caché ha sobrepasado el máximo permitido. Si el objeto guardado en la caché no es lo suficientemente reciente, la caché valida el recurso con el servidor. Cabeceras HTTP involucradas, enviadas por el servidor: Expires: fecha (de expiración) Age: segundos (que el objeto llevaba almacenado en el servidor) Cache-Control: max-age = segundos Vida máxima del objeto. La caché decide que el recurso ha expirado si: La edad del recurso es mayor que la vida máxima (max-age). Edad = Age + tiempo de respuesta + tiempo en la caché. La fecha de expiración (Expires) ha sido sobrepasada 10

Proxies-Cachés: modelo de validación La caché contrasta con el servidor si el contenido del objeto ha cambiado. Utiliza peticiones condicionales: Basadas en la etiqueta (Etag) del objeto guardado en caché If-Match: etiqueta (Etag del objeto en la caché) / If-None-Match: etiqueta (idem) Basadas en la fecha de la última modificación (Last-Modified) If-Modified-Since: fecha (Last-Modified del objeto en caché) If-UnModified-Since: fecha (idem) Un objeto guardado en la caché será actualizado si: La fecha incluida en If-Modified-Since es anterior a la fecha de la última modificación del objeto en el servidor origen. La etiqueta incluida en If-None-Match no coincide con la del servidor origen. El servidor puede forzar la validación de la caché: Cache-Control: must-revalidate 11 HTTP: peticiones condicionales (1) Ejemplo: un cliente solicita un objeto que no está en caché El servidor envía un mensaje de respuesta con la cabecera Last- Modified, que se asocia al objeto en la caché del cliente GET /fruit/kiwi.gif HTTP/1.0 User-agent: Mozilla/4.0 HTTP/1.0 200 OK Date: Web, 12 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 09:23:24 Content-Type: image/gif (data) 12

HTTP: peticiones condicionales (2) Una nueva solicitud del mismo objeto incluye la cabecera If- Modified-Since Respuesta del servidor, en caso de que no se haya modificado el objeto desde la fecha indicada en If-Modified-Since GET /fruit/kiwi.gif HTTP/1.0 User-agent: Mozilla/4.0 If-Modified-Since: Mon, 22 Jun 1998 09:23:24 HTTP/1.0 304 Not Modified Date: Wed, 19 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) (cuerpo vacío) 13 HTTP/1.1 Transferencias por rango de bytes GET /Default.htm HTTP/1.1 Host: docencia.ac.upc.es Range: bytes=0-80 HTTP/1.1 206 Partial content Server: Microsoft-IIS/5.0 Content-Type: text/html Content-Length: 81 Content-Range: bytes 0-80/19618 <HTML> 14

HTTP/1.1 Internacionalización del contenido (1) Cada día aparecen en la web millones de documentos escritos en cientos de lenguajes. HTTP da soporte para el transporte y procesado de documentos en lenguajes y alfabetos distintos. Los clientes mandan las cabeceras Accept-Charset y Accept-Language para indicarle al servidor los sistemas de codificación y lenguajes que el cliente entiende, así como cuales prefiere: Accept-Charset: iso-8859-1, utf-8 Accept-Language: es, en El servidor le indica al cliente el alfabeto y lenguaje utilizado con el parámetro charset de Content-Type y con la cabecera Content-Language. Content-Type: text/html; charset=iso-2022-jp Content-Language: jp 15 HTTP/1.1: Internacionalización del contenido (2) Ejemplo GET /~pdi/test.html HTTP/1.1 Connection: close User-Agent: Mozilla/5.0 [en] Host: www.uv.es Accept: image/gif, image/x-xbitmap, image/jpeg, Accept-Encoding: gzip Accept-Language: es Accept-Charset: iso-8859-1 HTTP/1.1 200 OK Date: Tue, 23 Jan 2001 12:44:27 GMT Server: Apache/1.3.9 (Unix) Debian/GNU Last-Modified: Tue, 23 Jan 2001 12:39:45 GMT ETag: "19e89f-22-3a6d7b91" Content-Length: 34 Content-Type: text/html; charset=iso-8859-1 <html>esto es una prueba</html> 16

HTTP/1.1: autenticación Autenticación RFC2617 GET /index.html HTTP/1.1 HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="wallyworld" GET /index.html HTTP/1.1 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== HTTP/1.1 200 OK 17 Cookies HTTP es un protocolo sin manejo de estados Hay ausencia de estado tras cada par petición-respuesta Las cookies son información que el navegador guarda a solicitud del servidor Cookies de sesión (almacenadas en memoria) Cookies persistentes (almacenadas en disco duro) Pueden usarse para asociar estado Proporcionan una manera de conservar cierta información entre peticiones del cliente 18

HTTP/1.1: cookies Set-cookie: Value, Version, Path, Domain y Max-Age (RFC2109) GET /index.html HTTP/1.1 Set-Cookie: Customer= Prueba ; Version="1"; Path="/acme" POST /acme/pickitem HTTP/1.1 Cookie: $Version="1"; Customer= Prueba"; $Path="/acme" HTTP/1.1 200 OK 19