Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Septiembre 2010
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
c 2002-2010 Jes us M. Gonz alez Barahona, Gregorio Robles y Jorge Ferrer. Algunos derechos reservados. Este art culo se distribuye bajo la licencia Reconocimiento-CompartirIgual 3.0 Espa na de Creative Commons, disponible en
http://creativecommons.org/licenses/by-sa/3.0/es/deed.es
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Servicios Web
Servicio web (web service): conjunto de protocolos y est andares que sirven para intercambiar datos entre aplicaciones. Enfoques sobre servicios web:
Tradicional: Basado en est andares como SOAP, WS-*, ... Informal (POX, STRESTful): Arquitectura ad-hoc usando XML, JSON, ... RESTful: siguen las restricciones del estilo arquitectural de la web. Emplean XML, JSON y cualquier tipo MIME que sea u til
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Una petici on del cliente al servidor debe contener TODA la informaci on necesaria para entender la misma. No puede basarse en informaci on previa asociada a la comunicaci on (por ejemplo, informaci on de sesi on)
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Unica los mundos de las aplicaciones web y servicios web. El mismo c odigo puede servir para los dos nes.
Jes us M. Gonz alez Barahona, Gregorio Robles Mart nez Tecnolog as de Servicios y Aplicaciones para Internet
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Negociaci on de contenido: la misma URL puede mandar la representaci on m as adecuada al cliente (HTML, Atom, texto) Redirecciones Cacheado (incluyendo mecanismos para especicar el periodo de validez y expiraciones)
Dos tipos: browser, proxy Cabecera HTTP: Cache-Control
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Compresi on Divisi on de la respuesta en partes (Chunking) GET condicional (s olo se env a la respuesta si ha habido cambios)
Permite ahorrar ancho de banda, procesado en el cliente y (posiblemente) procesado en el servidor Dos mecanismos:
ETag y If-None-Match: identicador asociado al estado de un recurso. Ejemplo: hash de la representaci on en un formato dado Last-Modifed y If-Modied-Since: fecha de u ltima actualizaci on
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
HTTP/1.x 200 OK Date: Thu, 17 May 2007 14:06:30 GMT Server: Microsoft-IIS/6.0 ETag: "4c083-268-423f1dc6" Last-Modified: Mon, 21 Mar 2005 19:17:26 GMT Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Length: 16850
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Mecanismos de seguridad
Autenticaci on:
HTTP Basic HTTP Digest OAuth
Importante: los mecanismos de autenticaci on de HTTP son extensibles Cifrado y rma digital: SSL
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Obliga a los desarrolladores a pensar diferente Carencia de soporte de PUT y DELETE en navegadores y cortado en cortafuegos Mecanismos de seguridad limitados (en comparaci on con WS-Security): est a mejorando r apidamente La negociaci on de contenidos no funciona del todo bien en la pr actica Algunos piden un m etodo m as: PATCH Poca documentaci on
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Ejemplos RESTful
En la web
Todos los sitios web est aticos Servicios web de s olo lectura Servicios web Google (GData) Aplicaciones web hechas con Ruby Rails 1.2+
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Conclusiones
REST es un estilo arquitectural para aplicaciones distribuidas Introduce restricciones que producen propiedades deseables a cambio
Estas propiedades han permitido la expansi on con exito de la web Las restricciones tambi en pueden aplicarse a las aplicaciones y servicios web desarrollados para mantener las propiedades
Los protocolos de la web, HTTP y URL, facilitan el desarrollo de arquitecturas RESTful y permiten explotar sus propiedades REST no es el u nico estilo arquitectural
Es posible eliminar restricciones si no nos importa perder propiedades Hay otros estilos arquitecturales con otras propiedades. Ejemplo: RPC
Jes us M. Gonz alez Barahona, Gregorio Robles Mart nez Tecnolog as de Servicios y Aplicaciones para Internet
01 - Presentaci on de la asignatura Cookies HTTP REST: Representational State Transfer Pr actica 1 - Introducci on a Python
Referencias
RESTful Web Services, Leonard Richardson, Sam Ruby, OReilly Press Architectural Styles and the Design of Network-based Software Architectures (Cap tulo 5) http://www.ics.uci.edu/~fielding/pubs/ dissertation/rest_arch_style.htm Atom Publishing Protocol: http://tools.ietf.org/html/rfc5023