La API REST, o Interfaz de Programación de Aplicaciones Representacional del Estado Transferido, es una tecnología fundamental en el mundo actual. Su importancia radica en varios aspectos clave, que se destacan a continuación:
1. **Facilita la comunicación entre sistemas**: La API REST permite que diferentes sistemas informáticos se comuniquen entre sí de manera eficiente y efectiva, independientemente de las tecnologías subyacentes utilizadas en cada sistema.
2. **Promueve la interoperabilidad**: Al proporcionar un conjunto estandarizado de reglas y convenciones para la comunicación, la API REST facilita la interoperabilidad entre aplicaciones y servicios, lo que significa que pueden funcionar juntos de manera fluida y sin problemas.
3. **Fomenta la reutilización del código**: Al exponer funcionalidades específicas a través de una interfaz bien definida, las API REST permiten que otras aplicaciones y servicios utilicen y reutilicen estas funcionalidades sin necesidad de comprender completamente su implementación subyacente.
4. **Simplifica el desarrollo de aplicaciones**: Al proporcionar una forma clara y estructurada de acceder y manipular recursos a través de la web, la API REST simplifica el desarrollo de aplicaciones al reducir la complejidad de la integración con servicios externos.
5. **Mejora la escalabilidad y la flexibilidad**: La arquitectura REST permite escalar fácilmente los servicios web para manejar un mayor volumen de tráfico, ya que cada recurso individual es independiente y puede ser escalado de manera independiente según sea necesario.
6. **Promueve la seguridad**: Al utilizar estándares como HTTPS y autenticación basada en tokens, las API REST pueden garantizar la seguridad de la comunicación y proteger los datos confidenciales que se intercambian entre sistemas.
En resumen, la API REST desempeña un papel crucial en la integración de sistemas, la construcción de aplicaciones escalables y la promoción de la interoperabilidad en el mundo digital actual. Su adopción generalizada ha transformado la forma en que las aplicaciones se desarrollan, implementan y se integran, impulsando la innovación y la eficiencia en todos los ámbitos de la tecnología.
Este documento describe la arquitectura REST y sus principales elementos. REST es una técnica arquitectónica para el diseño de aplicaciones en la red que se originó en 2000 y define recursos accesibles a través de URIs y la manipulación de recursos mediante métodos HTTP como GET, POST, PUT y DELETE. Los principales elementos de REST incluyen la identificación de recursos, la manipulación de recursos, los metadatos y la comunicación sin estado.
Este documento presenta una introducción a los conceptos básicos de los webservices. Explica las características y diferencias entre REST y SOAP, destacando que REST es un estilo arquitectónico mientras que SOAP es un protocolo estándar. También describe los aspectos positivos y negativos de ambos paradigmas, así como el modelo de madurez Richardson para diseñar APIs RESTful.
RES - Transferencia de Estado RepresentacionalRobert Caraguay
Este documento presenta una introducción a la arquitectura REST. Describe los elementos clave de REST como la identificación de recursos mediante URIs, la manipulación de recursos a través de métodos HTTP como GET, POST, PUT y DELETE, y la comunicación sin estado entre cliente y servidor. También menciona algunas tecnologías y frameworks como Ruby on Rails, .NET, y Django que soportan el desarrollo de APIs REST.
Este documento describe la arquitectura REST (Representational State Transfer). Explica que REST es un estilo arquitectónico para el diseño de aplicaciones web a gran escala propuesto por Roy Fielding. REST se basa en la utilización de recursos identificados por URLs y la transferencia de sus representaciones a través de protocolos como HTTP. Finalmente, contrasta REST con la arquitectura SOAP y analiza escenarios donde REST puede ser aplicable.
REST es un estilo de arquitectura para servicios web que se basa en estándares como HTTP. La web sigue este estilo REST donde los recursos se identifican mediante URIs y pueden manipularse usando verbos HTTP como GET, POST, PUT y DELETE. REST ofrece ventajas como escalabilidad e interoperabilidad para sistemas distribuidos.
Este documento presenta información sobre el desarrollo de aplicaciones web utilizando arquitecturas REST y MVC. Brevemente describe los objetivos de REST, sus principios clave como el uso de recursos y URIs, y ventajas como la escalabilidad. También compara REST con SOAP, y presenta ejemplos de implementaciones como Amazon y eBay. Finalmente, explica conceptos básicos de MVC como la separación de la lógica, la vista y el modelo, y cómo frameworks como Struts y Spring MVC aplican este patrón.
Rest clase 4 - curso front-end 2014 - open webinarsOpenWebinars.net
REST no es una tecnología ni protocolo, sino un estilo de arquitectura de red que maximiza propiedades como rendimiento, escalabilidad y simplicidad. Siguiendo los principios de REST, como estado stateless, uso de caché y organización por capas, es posible obtener una arquitectura óptima. Una aplicación es considerada RESTful si cumple con requisitos como recursos identificados de forma unívoca por URIs y representaciones que contienen enlaces.
El documento describe los conceptos de REST y RESTful. Explica que REST es un estilo de arquitectura para servicios web que utiliza recursos identificados por URIs y operaciones limitadas como GET, PUT, POST y DELETE. Los principios de REST incluyen que los recursos se representan mediante tipos de contenido, que los mensajes son autocontenidos y que se usan hipermedios. REST promueve mecanismos de caché y sistemas intermedios para mejorar el rendimiento.
Este documento describe la arquitectura REST y sus principales elementos. REST es una técnica arquitectónica para el diseño de aplicaciones en la red que se originó en 2000 y define recursos accesibles a través de URIs y la manipulación de recursos mediante métodos HTTP como GET, POST, PUT y DELETE. Los principales elementos de REST incluyen la identificación de recursos, la manipulación de recursos, los metadatos y la comunicación sin estado.
Este documento presenta una introducción a los conceptos básicos de los webservices. Explica las características y diferencias entre REST y SOAP, destacando que REST es un estilo arquitectónico mientras que SOAP es un protocolo estándar. También describe los aspectos positivos y negativos de ambos paradigmas, así como el modelo de madurez Richardson para diseñar APIs RESTful.
RES - Transferencia de Estado RepresentacionalRobert Caraguay
Este documento presenta una introducción a la arquitectura REST. Describe los elementos clave de REST como la identificación de recursos mediante URIs, la manipulación de recursos a través de métodos HTTP como GET, POST, PUT y DELETE, y la comunicación sin estado entre cliente y servidor. También menciona algunas tecnologías y frameworks como Ruby on Rails, .NET, y Django que soportan el desarrollo de APIs REST.
Este documento describe la arquitectura REST (Representational State Transfer). Explica que REST es un estilo arquitectónico para el diseño de aplicaciones web a gran escala propuesto por Roy Fielding. REST se basa en la utilización de recursos identificados por URLs y la transferencia de sus representaciones a través de protocolos como HTTP. Finalmente, contrasta REST con la arquitectura SOAP y analiza escenarios donde REST puede ser aplicable.
REST es un estilo de arquitectura para servicios web que se basa en estándares como HTTP. La web sigue este estilo REST donde los recursos se identifican mediante URIs y pueden manipularse usando verbos HTTP como GET, POST, PUT y DELETE. REST ofrece ventajas como escalabilidad e interoperabilidad para sistemas distribuidos.
Este documento presenta información sobre el desarrollo de aplicaciones web utilizando arquitecturas REST y MVC. Brevemente describe los objetivos de REST, sus principios clave como el uso de recursos y URIs, y ventajas como la escalabilidad. También compara REST con SOAP, y presenta ejemplos de implementaciones como Amazon y eBay. Finalmente, explica conceptos básicos de MVC como la separación de la lógica, la vista y el modelo, y cómo frameworks como Struts y Spring MVC aplican este patrón.
Rest clase 4 - curso front-end 2014 - open webinarsOpenWebinars.net
REST no es una tecnología ni protocolo, sino un estilo de arquitectura de red que maximiza propiedades como rendimiento, escalabilidad y simplicidad. Siguiendo los principios de REST, como estado stateless, uso de caché y organización por capas, es posible obtener una arquitectura óptima. Una aplicación es considerada RESTful si cumple con requisitos como recursos identificados de forma unívoca por URIs y representaciones que contienen enlaces.
El documento describe los conceptos de REST y RESTful. Explica que REST es un estilo de arquitectura para servicios web que utiliza recursos identificados por URIs y operaciones limitadas como GET, PUT, POST y DELETE. Los principios de REST incluyen que los recursos se representan mediante tipos de contenido, que los mensajes son autocontenidos y que se usan hipermedios. REST promueve mecanismos de caché y sistemas intermedios para mejorar el rendimiento.
Este documento compara y contrasta REST y los Servicios Web. Explica que REST es un estilo de arquitectura para sistemas distribuidos hipermedia como la Web. REST se basa en estándares como HTTP y URI y sigue principios como la identificación de recursos y la manipulación a través de representaciones. También describe los principios fundamentales de REST como la escalabilidad, generalidad de interfaces e independencia de implementación. Finalmente, ofrece ejemplos de cómo diseñar una interfaz basada en REST siguiendo buenas prácticas como definir primero los
Este documento presenta una introducción al uso de webservices. Explica las características y diferencias entre REST y SOAP, así como sus ventajas e inconvenientes. También describe los conceptos clave de una arquitectura REST como recursos, verbos HTTP, control de hipermedia y niveles de madurez Richardson.
Este documento presenta un curso sobre programación web con tecnología Java. Explica los contenedores web, servlets, JSP y el protocolo HTTP. También cubre temas como sesiones, el patrón MVC, entornos de desarrollo y despliegue de aplicaciones web con Java.
Este documento describe tres tipos de arquitectura de sistemas de información: 1) la arquitectura cliente-servidor, donde las aplicaciones se dividen en procesos independientes de cliente y servidor; 2) la arquitectura web, donde el servidor web transfiere páginas HTML al cliente a través del protocolo HTTP; y 3) la arquitectura orientada a servicios, donde las aplicaciones se basan en servicios con interfaces estandarizadas.
Este documento proporciona una introducción a la arquitectura orientada a servicios (SOA). Explica conceptos como desarrollo basado en componentes, servicios web, microservicios y servicios REST. También compara SOA con servicios web y componentes tradicionales, destacando que los servicios son más independientes, accesibles a través de protocolos estándar e involucran conceptos de negocio de alto nivel.
Este documento presenta información sobre la instalación y administración de aplicaciones web. Explica conceptos como la arquitectura cliente-servidor, el protocolo HTTP, los componentes involucrados en la comunicación con plataformas web como clientes, servidores, protocolos y lenguajes de programación como HTML, PHP y JavaScript. El documento fue realizado por tres estudiantes para un curso de tecnología en gestión de redes de datos.
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3ballesterosymendoza
Este documento describe brevemente la historia y evolución de la web desde sus orígenes hasta la actualidad. Comenzó como una idea en los años 40 y se desarrolló en los años 60-80, lanzándose oficialmente en 1990. Desde entonces ha pasado por varias etapas como la Web 2.0 basada en usuarios y servicios. Los estándares como HTML, HTTP, XML y otros han permitido que la web se convierta en una plataforma global para compartir información de forma descentralizada.
Este documento compara REST y los servicios web. Explica que REST es un estilo de arquitectura para sistemas distribuidos hipermedia como la Web. Describe los principios de REST como la identificación de recursos mediante URIs y la manipulación de recursos a través de representaciones. También compara las características y diferencias entre REST y SOAP para servicios web.
HTTP es el protocolo usado para la transferencia de datos en la World Wide Web. Funciona mediante transacciones sin estado entre un cliente y un servidor, aunque las cookies permiten mantener cierto estado de sesión. Las transacciones HTTP consisten en encabezados que especifican la acción requerida y el tipo de datos, seguidos opcionalmente por los datos. HTTP define varios métodos como GET, POST y HEAD para realizar diferentes acciones sobre los recursos.
Este documento trata sobre los fundamentos de los servicios informáticos. Explica que un servicio es una función o prestación ofrecida por una organización para satisfacer las necesidades de un cliente. Luego, detalla los pasos para crear un servicio informático y describir brevemente el modelo TCP/IP, la arquitectura cliente-servidor y los microservicios. Finalmente, aborda temas como la integración de servicios, el binding y el servidor DNS.
El documento describe los conceptos de REST y RESTful. Explica que REST es un estilo de arquitectura para servicios web que utiliza recursos identificados por URIs y operaciones limitadas como GET, PUT, POST y DELETE. También describe los principios de REST como el uso de hipermedia, mensajes autocontenidos, y el mantenimiento del estado solo en el cliente.
El documento describe los conceptos de REST y RESTful. Explica que REST describe un estilo de arquitectura para servicios web basado en recursos en lugar de métodos. Los principios de REST incluyen el uso de URIs para identificar recursos de forma única, operaciones limitadas como GET, PUT, POST y DELETE, y mensajes autocontenidos sin estado. REST promueve el uso de caché, escalabilidad y evolución independiente de componentes.
Este documento contiene 13 preguntas sobre conceptos relacionados con aplicaciones web y tecnologías asociadas. Se definen servicios web, estándares web, W3C, lenguajes de programación para web como PHP, ASP, JSP y XML. También se explican los lenguajes de scripts, la diferencia entre lenguajes del lado del servidor y del cliente, y tecnologías como Apache, HTTPS, certificados digitales y bases de datos relacionales.
La Unión Europea ha acordado un embargo petrolero contra Rusia en respuesta a la invasión de Ucrania. El embargo prohibirá las importaciones marítimas de petróleo ruso a la UE y pondrá fin a las entregas a través de oleoductos dentro de seis meses. Esta medida forma parte de un sexto paquete de sanciones de la UE destinadas a aumentar la presión económica sobre Moscú y privar al Kremlin de fondos para financiar su guerra.
El documento describe el protocolo HTTP, que es el protocolo usado para la transferencia de hipertexto en la Web. HTTP fue desarrollado por el W3C y la IETF y especificado en la versión 1.1 del RFC 2616. HTTP define la sintaxis y semántica que usan los elementos de la arquitectura web como clientes y servidores para comunicarse mediante peticiones y respuestas.
HTTP es el protocolo usado para la transferencia de datos en la World Wide Web. Es un protocolo sin estado que sigue el esquema de petición-respuesta entre un cliente y un servidor. Define 8 métodos como GET y POST que indican la acción a realizar sobre un recurso identificado por una URL. Ha pasado por varias versiones siendo la más reciente la 1.1.
Un servidor web responde a peticiones de navegadores mediante HTTP o HTTPS, proporcionando recursos solicitados. Funciona en un bucle esperando peticiones en un puerto, recibiendo y buscando recursos para enviar. Aunque solo puede servir archivos estáticos, se han diseñado programas servidores más complejos que atienden peticiones adicionales y extienden esta funcionalidad básica.
El documento presenta una introducción a los conceptos de arquitectura de servicios web, incluyendo definiciones de términos clave como SOAP, WSDL, UDDI y WS-*. También describe brevemente las características y componentes de la arquitectura de servicios web, así como algunos desafíos relacionados a la seguridad en este contexto.
Este documento compara y contrasta REST y los Servicios Web. Explica que REST es un estilo de arquitectura para sistemas distribuidos hipermedia como la Web. REST se basa en estándares como HTTP y URI y sigue principios como la identificación de recursos y la manipulación a través de representaciones. También describe los principios fundamentales de REST como la escalabilidad, generalidad de interfaces e independencia de implementación. Finalmente, ofrece ejemplos de cómo diseñar una interfaz basada en REST siguiendo buenas prácticas como definir primero los
Este documento presenta una introducción al uso de webservices. Explica las características y diferencias entre REST y SOAP, así como sus ventajas e inconvenientes. También describe los conceptos clave de una arquitectura REST como recursos, verbos HTTP, control de hipermedia y niveles de madurez Richardson.
Este documento presenta un curso sobre programación web con tecnología Java. Explica los contenedores web, servlets, JSP y el protocolo HTTP. También cubre temas como sesiones, el patrón MVC, entornos de desarrollo y despliegue de aplicaciones web con Java.
Este documento describe tres tipos de arquitectura de sistemas de información: 1) la arquitectura cliente-servidor, donde las aplicaciones se dividen en procesos independientes de cliente y servidor; 2) la arquitectura web, donde el servidor web transfiere páginas HTML al cliente a través del protocolo HTTP; y 3) la arquitectura orientada a servicios, donde las aplicaciones se basan en servicios con interfaces estandarizadas.
Este documento proporciona una introducción a la arquitectura orientada a servicios (SOA). Explica conceptos como desarrollo basado en componentes, servicios web, microservicios y servicios REST. También compara SOA con servicios web y componentes tradicionales, destacando que los servicios son más independientes, accesibles a través de protocolos estándar e involucran conceptos de negocio de alto nivel.
Este documento presenta información sobre la instalación y administración de aplicaciones web. Explica conceptos como la arquitectura cliente-servidor, el protocolo HTTP, los componentes involucrados en la comunicación con plataformas web como clientes, servidores, protocolos y lenguajes de programación como HTML, PHP y JavaScript. El documento fue realizado por tres estudiantes para un curso de tecnología en gestión de redes de datos.
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3ballesterosymendoza
Este documento describe brevemente la historia y evolución de la web desde sus orígenes hasta la actualidad. Comenzó como una idea en los años 40 y se desarrolló en los años 60-80, lanzándose oficialmente en 1990. Desde entonces ha pasado por varias etapas como la Web 2.0 basada en usuarios y servicios. Los estándares como HTML, HTTP, XML y otros han permitido que la web se convierta en una plataforma global para compartir información de forma descentralizada.
Este documento compara REST y los servicios web. Explica que REST es un estilo de arquitectura para sistemas distribuidos hipermedia como la Web. Describe los principios de REST como la identificación de recursos mediante URIs y la manipulación de recursos a través de representaciones. También compara las características y diferencias entre REST y SOAP para servicios web.
HTTP es el protocolo usado para la transferencia de datos en la World Wide Web. Funciona mediante transacciones sin estado entre un cliente y un servidor, aunque las cookies permiten mantener cierto estado de sesión. Las transacciones HTTP consisten en encabezados que especifican la acción requerida y el tipo de datos, seguidos opcionalmente por los datos. HTTP define varios métodos como GET, POST y HEAD para realizar diferentes acciones sobre los recursos.
Este documento trata sobre los fundamentos de los servicios informáticos. Explica que un servicio es una función o prestación ofrecida por una organización para satisfacer las necesidades de un cliente. Luego, detalla los pasos para crear un servicio informático y describir brevemente el modelo TCP/IP, la arquitectura cliente-servidor y los microservicios. Finalmente, aborda temas como la integración de servicios, el binding y el servidor DNS.
El documento describe los conceptos de REST y RESTful. Explica que REST es un estilo de arquitectura para servicios web que utiliza recursos identificados por URIs y operaciones limitadas como GET, PUT, POST y DELETE. También describe los principios de REST como el uso de hipermedia, mensajes autocontenidos, y el mantenimiento del estado solo en el cliente.
El documento describe los conceptos de REST y RESTful. Explica que REST describe un estilo de arquitectura para servicios web basado en recursos en lugar de métodos. Los principios de REST incluyen el uso de URIs para identificar recursos de forma única, operaciones limitadas como GET, PUT, POST y DELETE, y mensajes autocontenidos sin estado. REST promueve el uso de caché, escalabilidad y evolución independiente de componentes.
Este documento contiene 13 preguntas sobre conceptos relacionados con aplicaciones web y tecnologías asociadas. Se definen servicios web, estándares web, W3C, lenguajes de programación para web como PHP, ASP, JSP y XML. También se explican los lenguajes de scripts, la diferencia entre lenguajes del lado del servidor y del cliente, y tecnologías como Apache, HTTPS, certificados digitales y bases de datos relacionales.
La Unión Europea ha acordado un embargo petrolero contra Rusia en respuesta a la invasión de Ucrania. El embargo prohibirá las importaciones marítimas de petróleo ruso a la UE y pondrá fin a las entregas a través de oleoductos dentro de seis meses. Esta medida forma parte de un sexto paquete de sanciones de la UE destinadas a aumentar la presión económica sobre Moscú y privar al Kremlin de fondos para financiar su guerra.
El documento describe el protocolo HTTP, que es el protocolo usado para la transferencia de hipertexto en la Web. HTTP fue desarrollado por el W3C y la IETF y especificado en la versión 1.1 del RFC 2616. HTTP define la sintaxis y semántica que usan los elementos de la arquitectura web como clientes y servidores para comunicarse mediante peticiones y respuestas.
HTTP es el protocolo usado para la transferencia de datos en la World Wide Web. Es un protocolo sin estado que sigue el esquema de petición-respuesta entre un cliente y un servidor. Define 8 métodos como GET y POST que indican la acción a realizar sobre un recurso identificado por una URL. Ha pasado por varias versiones siendo la más reciente la 1.1.
Un servidor web responde a peticiones de navegadores mediante HTTP o HTTPS, proporcionando recursos solicitados. Funciona en un bucle esperando peticiones en un puerto, recibiendo y buscando recursos para enviar. Aunque solo puede servir archivos estáticos, se han diseñado programas servidores más complejos que atienden peticiones adicionales y extienden esta funcionalidad básica.
El documento presenta una introducción a los conceptos de arquitectura de servicios web, incluyendo definiciones de términos clave como SOAP, WSDL, UDDI y WS-*. También describe brevemente las características y componentes de la arquitectura de servicios web, así como algunos desafíos relacionados a la seguridad en este contexto.
Semelhante a Presentación sobre el protocolo RESTAPI. (20)
En 1974 la Crónica de la Organización Mundial de la
Salud publicó un importante artículo llamando la atención
sobre la importancia de la deficiencia de yodo como problema
de la salud pública y la necesidad de su eliminación, escrito por
un grupo de académicos expertos en el tema, Prof. JB Stanbury
de la Universidad de Harvard, Prof. AM Ermans del Hospital
Saint Pierre, Bélgica, Prof. BS Hetzel de la Universidad de
Monash, Australia, Prof. EA Pretell de la Universidad Peruana
Cayetano Heredia, Perú, y Prof. A Querido del Hospital
algunos casos de tirotoxicosis y el temor a su extensión con
(18)
distribución amplia de yodo . Recién a partir de 1930 varios
(19)
investigadores, entre los que destaca Boussingault , volvieron
a insistir sobre este tema, aconsejando la yodación de la sal para
su uso terapéutico.
Desórdenes por deficiencia de yodo en el Perú
Universitario, Leiden, Holanda .
(15)
En el momento actual hay suficiente evidencia que
demuestra que el impacto social de los desórdenes por
deficiencia de yodo es muy grande y que su prevención resulta
en una mejor calidad de vida y de la productividad, así como
también de la capacidad de educación de los niños y adultos.
Prevención y tratamiento de los DDI
Los desórdenes por deficiencia de yodo pueden ser
exitosamente prevenidos mediante programas de suplementa-
ción de yodo. A través de la historia se han ensayado varios
medios para tal propósito, pero la estrategia más costo-efectiva
y sostenible es el consumo de sal yodada. Los experimentos de
Marine y col.
(16, 17)
entre 1907 a 1921 probaron que la deficiencia
y la suplementación de yodo eran factores dominantes en la
etiología y el control del bocio endémico. El uso experimental
de la sal yodada para la prevención del bocio endémico se llevó
a cabo en Akron, Ohio, con resultados espectaculares y fue
seguida por la distribución de sal yodada en Estados Unidos,
Suiza y otros lugares. El uso clínico de este método, sin
embargo, fue largamente postergado por la ocurrencia de
La presencia de bocio y cretinismo en el antiguo Perú
antecedió a la llegada de los españoles, según comentarios en
crónicas y relatos de la época de la Conquista y el Virreinato. En
(20)
una revisión publicada por JB Lastres se comenta que Cosme
Bueno (1769), refiriéndose a sus observaciones entre los
habitantes del altiplano, escribió “los más de los que allí habitan
son contrahechos, jibados, tartamudos, de ojos torcidos y con
unos deformes tumores en la garganta, que aquí llaman cotos y
otras semejantes deformidades en el cuerpo y sus corres-
pondientes en el ánimo”. Y es lógico aceptar como cierto este
hecho, dado que la deficiencia de yodo en la Cordillera de los
Andes es un fenómeno ambiental permanente desde sus
orígenes.
Luego de la Independencia hasta los años 1950s, la
persistencia del bocio y el cretinismo endémicos en la sierra y la
selva fue reportada por varios autores, cuyos importantes
(20)
2. Modelo arquitectónico para el
funcionamiento de la web.
Arquitectura web deseada, identifica,
compara soluciones y evalúa
restricciones.
Desarrollado en 1993 se inicio la
especificación de protocolos web
como HTTP/1.0, HTTP/1.1 y URI.
La web se basaba en notas informales,
tuvo que evolucionar con la aparición
de navegadores como Mosaic.
Optimizar aspectos esenciales de sistemas de
hipertexto para cumplir con los requisitos de
comportamiento y rendimiento de, optimizando
casos comunes de la web.
INTRODUCCIONAREST
La estandarización a través de
organizaciones como el IETF y el W3C,
definiendo estándares como HTTP,
URI y HTML.
Define la conducta para una
aplicación web, interconectadas,
navegación por enlaces y
transiciones de estado.
3. RESTYURL
URI
Identificadores
Uniformes de Recursos,
Se definieron como
identificadores de
documentos
REST
Redefine el concepto de
recurso URI. Basado en
la intención del autor y
no en el valor al crear la
referencia.
Recursos
En Rest, las
representaciones de
recursos se manipulan
en lugar de los recursos
mismos.
Autonomi
a
Se basa en la autoría
independiente de
hipertexto
interconectado a través
de múltiples dominios de
confianza.
4. AUTORÍAREMOTA.
La autoría remota a través de la interfaz
uniforme de la web busca la separación entre
la representación que un cliente puede
recuperar y el mecanismo que el servidor
puede utilizar para almacenar, generar o
recuperar el contenido de esa representación.
01.
Asociación de recursos y
representaciones.
02. Obtención de URI de
recursos fuente.
03. Derivación de recursos.
04.
Naturaleza de los
recursos.
05. Ocultamiento de detalles de
implementación
06. Ejemplo: Migración de
servidor.
5. VINCULACIÓNDE
SEMÁNTICAAURI
La web semántica se trata de enriquecer la información
en la web con metadatos significativos para que las
máquinas puedan comprender y procesar la información
de manera más eficaz.
La arquitectura web consta de restricciones en el
modelo de comunicación entre componentes.
Evita que los componentes asuman algo más allá de
la abstracción de recursos.
Oculta los mecanismos reales a ambos lados de la
interfaz abstracta.
6. RESTNOCOINCIDE
ENURI
Los desajustes ocurren cuando:
Se hace una implementación de software que viola
las restricciones arquitectónicas ya establecidas.
El software intenta tratar a la Web como un sistema
de archivos distribuido.
Los intentos de reflejar el contenido de un servidor
web como archivos fracasarán porque la interfaz de
recursos no siempre coincide con la semántica de un
sistema de archivos
7. RESTAPLICADOA
HTTP
REST se utilizó para:
Identificar problemas con las
implementaciones HTTP existentes.
La planificación para la implementación de
nuevas versiones de protocolo.
La separación del análisis de mensajes de la
semántica HTTP.
La distinción entre respuestas autorizadas y
no autorizadas.
Un control detallado de almacenamiento en
caché.
8. EXTENSIBILIDAD
Uno de los principales objetivos de REST es
respaldar la implementación gradual y
fragmentada de cambios dentro de una
arquitectura ya implementada.
HTTP se modificó para:
Respaldar ese objetivo mediante la
introducción de requisitos de versiones
Reglas para ampliar cada uno de los
elementos de sintaxis del protocolo.
9. VERSIONESDEPROTOCOLO
La versión HTTP de un mensaje indica las
capacidades del remitente y la compatibilidad
bruta del mensaje.
Las conexiones pueden operar a su mejor nivel de
protocolo, independientemente de limitaciones en
clientes o servidores.
El servidor responde con la versión menor
compatible dentro de la misma versión principal
del mensaje del cliente.
10. ELEMENTOSDEPROTOCOLO
EXTENSIBLES
Espacios de nombres separados: estos incluye valores
de conjuntos de caracteres, etiquetas de idioma, nombres
de métodos, códigos de estado de respuesta
Extensión de métodos: siempre que se pueda compartir
un conjunto estandarizable de semántica entre el cliente,
el servidor y cualquier intermediario.
Separación de reglas de análisis y semántica: permite
la introducción de nuevos métodos y elementos
Regla de extensibilidad de códigos de estado: regla
general para interpretar nuevos códigos de estado de
respuesta.
11. MENSAJESAUTODESCRIPTIVOS
ENRESTYHTTP
HTPP temprano (viejito) tenia falta de identificación del
host dentro de las solicitudes.
Falta de distinción sintáctica entre datos de control
de mensajes y metadatos.
Falta de soporte para extensiones obligatorias
12. MEJORAENLAIDENTIFICACIÓN
DELHOSTENHTTP
Problema Inicial:
1.
HTTP no enviaba el URI completo en las solicitudes.
Suposición errónea: El servidor identificaría su autoridad de
nombres basándose en la IP y el puerto TCP.
Problema crítico con el crecimiento exponencial de la web y
la limitación de direcciones IP.
Solución Implementada:
2.
Inclusión de información del host de la URL de destino en
un campo de encabezado 'Host'.
Aplicación en HTTP/1.0 y obligatorio en HTTP/1.1.
Rechazo de solicitudes sin campo 'Host' en HTTP/1.1.
Impacto:
3.
Posibilidad de alojar miles de sitios web con nombres de
dominio distintos en una sola dirección IP.
13. CODIFICACIONESEN
CAPASYMETADATOSEN
HTTP
Herencia de MIME:
1.
HTTP adoptó la sintaxis de MIME para describir
metadatos de representación.
MIME incluye solo la etiqueta del tipo de medio más
externo en el campo 'Content-Type'.
Limitaciones y Desafíos:
2.
Dificultad para determinar la naturaleza de
mensajes codificados sin decodificar las capas.
Problema con las primeras extensiones de HTTP
que cambiaban la semántica de 'Content-Type'.
15. INDEPENDENCIASEMÁNTICAEN
ELANÁLISISDEMENSAJESHTTP
01.
Separación del Análisis y la Semántica:
Análisis de mensajes HTTP separado de su significado semántico.
Incluye la búsqueda y agrupación de campos de encabezado.
02.
03.
Beneficios para Intermediarios:
Permite a los intermediarios procesar y reenviar mensajes HTTP
de manera eficiente.
Facilita la rápida transmisión y gestión de mensajes.
Impacto en Extensiones y Análisis:
Las extensiones pueden implementarse sin afectar a los analizadores
existentes.
Mejora la compatibilidad y flexibilidad en la evolución de HTTP.
16. GESTIÓNDELÍMITES
DETAMAÑOENHTTP
Flexibilidad sobre Límites de Tamaño:
1.
HTTP no especifica límites de tamaño para URI, campos de encabezado, representaciones
o valores de campos.
Evita restricciones innecesarias, permitiendo una mayor adaptabilidad.
Consideraciones Prácticas:
2.
Aunque existen límites prácticos (como la memoria disponible), no se imponen límites
rígidos en el protocolo.
Problemas conocidos con URI largos en clientes web más antiguos, pero abordados en la
especificación sin limitar a todos los servidores.
Códigos de Estado en HTTP/1.1:
3.
Introducción de códigos de estado para elementos del protocolo demasiado largos.
Incluyen: URI demasiado largo, campo de encabezado demasiado largo y cuerpo
demasiado largo.
Limitaciones en la comunicación con dispositivos con recursos limitados, como PDAs.
17. CONTROLDECACHÉY
TRANSPARENCIA
SEMÁNTICAENHTTP
Equilibrio entre Eficiencia y Transparencia:
1.
REST busca un equilibrio entre eficiencia de bajo retardo y
transparencia semántica en caché.
HTTP permite que las aplicaciones determinen los requisitos de caché.
Importancia de la Descripción Precisa de Datos:
2.
Esencial describir completamente y con precisión los datos
transferidos.
Evita confusiones sobre el contenido real de los datos en las
aplicaciones.
Implementación en HTTP/1.1:
3.
Adición de campos de encabezado para control de caché: Cache-
Control, Age, Etag, Vary.
Estos campos facilitan la gestión detallada y flexible de la caché.
18. FUNDAMENTOSDE
LANEGOCIACIÓNDE
CONTENIDOENHTTP
Asignación de Recursos:
1.
Relación entre solicitudes y respuestas en HTTP.
Diferentes representaciones para una única solicitud.
Concepto de Negociación de Contenido:
2.
Proceso de selección de contenido más que
negociación.
Determina la representación más adecuada para las
necesidades del cliente.
19. TIPOSDE
NEGOCIACIÓNDE
CONTENIDOENHTTP
Negociación Preventiva (Controlada por el Servidor):
1.
El servidor selecciona la representación basada en las capacidades del
cliente.
Limitaciones debido a la variabilidad de las necesidades y preferencias
del usuario.
Negociación Reactiva (Impulsada por el Agente):
2.
El servidor proporciona una lista de representaciones disponibles.
El cliente elige la representación más adecuada.
Negociación Transparente:
3.
Intermediarios seleccionan la mejor representación en nombre de
otros agentes.
Uso de la información 'Vary' para evitar confusiones en cachés.
20. DESAFÍOSYVENTAJAS
ENLANEGOCIACIÓN
DECONTENIDO
Desafíos Comunes:
1.
Dificultad para comunicar las características exactas
de las dimensiones de representación.
Ventajas de la Negociación Reactiva:
2.
Menos carga en cada solicitud.
Mayor contexto para tomar decisiones informadas.
No interfiere con el funcionamiento de las cachés.
22. CONEXIONES
PERSISTENTES.
En las primeras versiones de HTTP:
Única solicitud/respuesta por conexión.
Simple pero ineficiente debido a costos
de configuración y algoritmo de gestión
en el protocolo TCP.
Propuestas iniciales para combinar
múltiples solicitudes y respuestas.
Problemas con nuevos métodos que
violaban restricciones REST.
23. CONEXIONES
PERSISTENTES.
¿Cuál fue la solución?
Conexiones persistentes usando mensajes
delimitados por una longitud.
Problemas de compatibilidad con “keep-
alive” en HTTP/1.0
Las conexiones persistentes solo son posibles
después de redefinir mensajes de HTTP como
autoexplicativos e independientes del protocolo
de transporte que estén usando.
24. CACHÉDEESCRITURA
DIRECTAENHTTP
Desafío de la caché de escritura inversa en
HTTP.
HTTP no permite que una caché almacene el
cuerpo de una solicitud PUT para su
reutilización en una respuesta GET.
Razones:
Los metadatos no pueden generarse en
segundo plano.
No se puede determinar el control de
acceso.
25. DESVENTAJASRESTEN
HTTP
Nacen las desventajas a partir de los
desajustes arquitectónicos en HTTP. Algunos se
deben a extensiones de terceros fuera del
proceso de estándar. Otros se deben a la
necesidad de mantener la compatibilidad con
componentes de HTTP/1.0 ya implementados.
26. DIFERENCIACIÓNDE
RESPUESTASNO
AUTORITATIVAS
Dificultad para diferenciar respuestas
autoritativas y no autoritativas.
Importancia para aplicaciones críticas y para
identificar la causa de errores.
HTTP/1.1 introdujo la directiva ‘no-caché’ en
las solicitudes para forzar la comunicación
con el servidor de origen.
28. COOKIESENHTTP
"Las cookies en HTTP desempeñan un papel
fundamental en la interacción entre los
navegadores y los servidores web. Son
pequeños elementos de información que se
almacenan en el navegador de un usuario y se
utilizan para diversas finalidades.
01.
Problema de falta de
coherencia en el modelo
REST
02.
Falta de coincidencia entre
el estado de la aplicación y
las cookies al usar la
funcionalidad de historial
del navegador.
03.
Las cookies violan los
principios de la arquitectura
REST y permiten el rastreo
de usuarios entre sitios.
29. EXTENSIONES
OBLIGATORIAS
Los nombres de campos de encabezado
se pueden extender, solamente si la
información no es esencial para la
comprensión del mensaje.
Las extensiones obligatorias requieren
cambios importantes en el protocolo o
en la semántica de los métodos.
Se esperaba que las extensiones de
nombres de campo obligatorias sean
admitidas en una futura revisión
importante de HTTP.
30. MEZCLADEMETADATOS
Incapacidad para distinguir sintácticamente
entre metadatos de representación y datos de
control de mensajes, ambos transmitidos
como campos de encabezado.
Limitación en la superposición de metadatos
para realizar comprobaciones de integridad
de mensajes.
31. MEZCLADEMETADATOS
Anticipar problemas en la implementación de
características como conexiones persistentes
y autenticación por digestión.
Solución propuesta: Agregar el campo de
encabezado "Connection" para identificar
datos de control por conexión que no deben
reenviarse por intermediarios y desarrollar un
algoritmo para el tratamiento canónico de los
resúmenes de campos de encabezado.
32. SINTAXISMIMEENHTTP
HTTP heredó la sintaxis de mensajes MIME
para mantener la compatibilidad entre
protocolos de internet reutilizando campos
estandarizados.
MIME y HTTP tienen distintos objetivos,
MIME para enviar información coherente
para destinatarios desconocidos, HTTP
para recuperar objetos de manera
eficiente mediante solicitudes separadas.
33. SINTAXISMIMEENHTTP
La sintaxis MIME es ineficiente para
sistemas que no se basan en un transporte
propenso a perdidas.
En futuras versiones HTTP, es posible que
no sea necesario conservar la sintaxis
MIME, aunque puede que se sigan usando
elementos de protocolo para metadatos de
representación.
34. COINCIDENCIADE
RESPUESTASCON
SOLICITUDES
Los mensajes HTTP no son auto
explicativos con respecto a la
correspondencia entre respuesta-
solicitud.
Durante las primeras etapas de HTTP, se
basaba en una única solicitud con una
única respuesta por conexión.
El orden de las solicitudes determina el
orden de las respuestas en HTTP.
35. COINCIDENCIADE
RESPUESTASCON
SOLICITUDES
Aunque HTTP se define como
independiente del protocolo de
transporte, aun usa una comunicación
asíncrona.
Esta extensión sería útil en situaciones de
difusión o multidifusión y podría permitir
al servidor elegir el orden de transmisión
de respuestas, priorizando las respuestas
más pequeñas/significativas.
36. TRANSFERENCIADE
TECNOLOGIA
Aunque REST tuvo su influencia más directa sobre
la creación de estándares web, la validación de su
uso como modelo de diseño arquitectónico se
produjo mediante la implementación de los
estándares en forma de implementaciones de
nivel comercial.
37. EXPERIENCIADE
IMPLEMENTACIÓNCON
LIBWWW-PERL
¿Que es LIBWWW-PERL?
Siguiendo el modelo del libwww original desarrollado
por Tim Berners-Lee y el proyecto WWW del CERN,
libwww-perl proporcionó una interfaz uniforme para
realizar solicitudes web e interpretar respuestas web
para aplicaciones cliente escritas en lenguaje Perl
Fue la primera biblioteca de protocolos web
desarrollada independientemente del proyecto original
del CERN, lo que refleja una interpretación más
moderna de la interfaz web que la que estaba presente
en bases de código más antiguas. Esta interfaz se
convirtió en la base para diseñar REST.
38. COMOFUNCIONA
LIBWWW-PERL
libwww-perl constaba de una única interfaz de
solicitud que utilizaba Perl para cargar dinámicamente
el paquete de protocolo de transporte apropiado
según el esquema del URI solicitado. Por ejemplo,
cuando se le pide que realice una solicitud "GET"
libwww-perl extraerá el esquema de la URL ("http") y
lo usará para construir una llamada. a
wwwhttp'request ( ), utilizando una interfaz común a
todo tipo de recursos (HTTP, FTP, WAIS, archivos
locales, etc.).
39. EXPERIENCIADE
IMPLEMENTACIÓN
CONAPACHE
El proyecto Apache es un esfuerzo colaborativo de
desarrollo de software destinado a crear una
implementación de software de código abierto, sólida, de
calidad comercial y con todas las funciones de un servidor
HTTP.
Apache se hizo conocido tanto por su comportamiento
robusto en respuesta a las variadas demandas de un
servicio de Internet como por su rigurosa implementación
de los estándares del protocolo HTTP.
40. IMPLEMENTACIÓNDE
URIYSOFTWARE
COMPATIBLECON
HTTP/1.1
En su momento Microsoft Internet Explorer superó a Netscape
Navigator en la cuota de mercado de navegadores web poco
después de ser el primer navegador importante en
implementar el estándar de cliente HTTP/1.1. Además, muchas
de las extensiones HTTP individuales que se definieron durante
el proceso de estandarización, como el campo de encabezado
Host, ahora han alcanzado una implementación universal.
El estilo arquitectónico REST logró guiar el diseño y la
implementación de la arquitectura web moderna. Hasta la
fecha, no ha habido problemas significativos causados por la
introducción de los nuevos estándares
41. LECCIONESDE
ARQUITECTURAYLAS
VENTAJASDEUNAAPI
BASADAENRED
Hay una serie de lecciones arquitectónicas generales que se
pueden aprender de la arquitectura web moderna y de los
problemas identificados por REST.
Lo que distingue a la Web moderna de otros middleware es la
forma en que utiliza HTTP como interfaz de programación de
aplicaciones (API) basada en red. Este no fue siempre el caso.
El diseño web inicial hizo uso de un paquete de biblioteca,
CERN libwww , como biblioteca de implementación única para
todos los clientes y servidores. CERN libwww proporcionó una
API basada en biblioteca para crear componentes web
interoperables.
42. APIBASADAENRED
Una API basada en red es una sintaxis integrada, con
semántica definida, para interacciones de
aplicaciones. Una API basada en red no impone
ninguna restricción al código de la aplicación aparte
de la necesidad de leer/escribir en la red, pero sí
impone restricciones al conjunto de semánticas que
se pueden comunicar de manera efectiva a través de
la interfaz. En el lado positivo, el rendimiento sólo
está limitado por el diseño del protocolo y no por
ninguna implementación particular de ese diseño.
43. COSASATENEREN
CUENTA
Es importante tener en cuenta que existen varias
capas involucradas en cualquier arquitectura,
incluida la de la Web moderna. Los sistemas como la
Web utilizan una biblioteca API (sockets) para
acceder a varias API basadas en red (por ejemplo,
HTTP y FTP), pero la API del socket en sí está por
debajo de la capa de aplicación. Del mismo modo,
libwww es un cruce interesante porque ha
evolucionado hasta convertirse en una API basada en
biblioteca para acceder a una API basada en red y,
por lo tanto, proporciona código reutilizable sin
asumir que otras aplicaciones de comunicación
también están usando libwww .
44. HTTPNOESRPC
HTTP no es RPC: Aunque ambos implican peticiones y
respuestas, se diferencian en cómo se manejan estas
peticiones y respuestas.
HTTP vs RPC: Lo que distingue a HTTP de RPC no es la
sintaxis, sino que las peticiones en HTTP se dirigen a
recursos utilizando una interfaz genérica con semántica
estándar que puede ser interpretada por intermediarios casi
tan bien como por las máquinas que originan los servicios.
Por otro lado, los mecanismos RPC se definen en términos
de APIs de lenguaje, no de aplicaciones basadas en red.
45. HTTPNOESUNPROTOCOLODE
TRANSPORTE
HTTP está diseñado para ser un protocolo de
transferencia, no un protocolo de transporte. Los
mensajes en HTTP reflejan la semántica de la
arquitectura web al realizar acciones sobre recursos
mediante la transferencia y manipulación de
representaciones de esos recursos.
Una verdadera aplicación de HTTP mapea las acciones
del usuario del protocolo a algo que puede expresarse
utilizando la semántica de HTTP. Esto crea una API
basada en la red para servicios que pueden ser
entendidos por agentes e intermediarios sin ningún
conocimiento de la aplicación.
46. ESTADODELAAPLICACIÓNEN
UNSISTEMABASADOENRED
Modelo REST: REST define un modelo de comportamiento para las
aplicaciones que son en gran medida inmunes a las condiciones de fallo
parcial que acosan a la mayoría de las aplicaciones basadas en red. Sin
embargo, los desarrolladores de aplicaciones pueden introducir
características que violan este modelo, especialmente en lo que respecta a
las restricciones sobre el estado de la aplicación y la interacción sin estado.
Estado indirecto de la aplicación: Tanto en el caso de los marcos como en el
de las cookies, el fallo radicaba en proporcionar un estado indirecto de la
aplicación que no podía ser gestionado o interpretado por el agente de
usuario. Un diseño que colocara esta información dentro de una
representación primaria podría haber logrado las mismas tareas sin violar las
restricciones REST, conduciendo a una mejor interfaz de usuario y a una
menor interferencia con el almacenamiento en caché.
47. JAVAFRENTEAJAVASCRIPT
Aunque Java es un lenguaje de programación popular y recibió un
gran apoyo de la prensa y críticas favorables de los desarrolladores,
no ha logrado ser ampliamente adoptado para el código bajo
demanda en la Web. Por otro lado, JavaScript, a pesar de las críticas
iniciales, ha visto un aumento constante en su uso desde su
introducción.
JavaScript se adapta mejor al modelo de despliegue de la tecnología
web. Tiene una barrera de entrada más baja y afecta menos a la
visibilidad de las interacciones. Además, provoca menos latencia
percibida por el usuario ya que suele descargarse como parte de la
representación primaria y puede ejecutarse mientras se descarga el
resto de la página HTML.