Articles

Transferencia de estado representacional

Posted by admin

seis restricciones orientadoras definen un sistema RESTful. Estas restricciones restringen las formas en que el servidor puede procesar y responder a las solicitudes del cliente para que, al operar dentro de estas restricciones, el sistema obtenga propiedades no funcionales deseables, como rendimiento, escalabilidad, simplicidad, modificabilidad, visibilidad, portabilidad y confiabilidad. Si un sistema viola cualquiera de las restricciones requeridas, no se puede considerar RESTful.,

las restricciones REST formales son las siguientes:

arquitectura cliente–servidor edit

Véase también: modelo cliente–servidor

el principio detrás de las restricciones cliente–servidor es la separación de preocupaciones. Separar las preocupaciones de la interfaz de usuario de las preocupaciones de almacenamiento de datos mejora la portabilidad de las interfaces de usuario a través de múltiples plataformas. También mejora la escalabilidad simplificando los componentes del servidor., Tal vez lo más significativo para la Web es que la separación permite que los componentes evolucionen de forma independiente, soportando así el requisito de escala de Internet de múltiples dominios organizacionales.

StatelessnessEdit

Véase también: protocolo sin estado

en una interacción cliente–servidor, el estado se compone de estado intrínseco y estado extrínseco. El estado intrínseco, llamado Estado de recurso, se almacena en el servidor y consiste en información que es independiente del contexto del servidor, lo que lo hace compartible para todos los clientes del servidor., El estado extrínseco, llamado Estado de la aplicación, se almacena en cada cliente y consiste en información que depende del contexto del servidor y, por lo tanto, no se puede compartir. Los clientes son responsables de pasar el estado de la aplicación al servidor cuando lo necesite. La restricción de almacenar el estado de la aplicación en el cliente en lugar de en el servidor hace que la comunicación sea apátrida.

CacheabilityEdit

ver también: web cache

como en la World Wide Web, los clientes y los intermediarios pueden almacenar en caché las respuestas., Las respuestas deben, implícita o explícitamente, definirse como cacheables o no cacheables para evitar que los clientes proporcionen datos obsoletos o inapropiados en respuesta a solicitudes posteriores. El almacenamiento en caché bien administrado elimina parcial o completamente algunas interacciones cliente-servidor, mejorando aún más la escalabilidad y el rendimiento.

Layered systemEdit

Véase también: Layered system

un cliente normalmente no puede decir si está conectado directamente al servidor final o a un intermediario en el camino., Si se coloca un proxy o balanceador de carga entre el cliente y el servidor, no afectará sus comunicaciones y no será necesario actualizar el código del cliente o servidor. Los servidores intermediarios pueden mejorar la escalabilidad del sistema habilitando el equilibrio de carga y proporcionando cachés compartidos. Además, la seguridad se puede agregar como una capa encima de los servicios web, separando la lógica de negocio de la lógica de seguridad. Al agregar seguridad como una capa separada, se aplican las políticas de seguridad. Finalmente, los servidores intermediarios pueden llamar a varios otros servidores para generar una respuesta al cliente.,

Código bajo demanda (opcional)editar

consulte también: scripting del lado del cliente

los servidores pueden ampliar o personalizar temporalmente la funcionalidad de un cliente transfiriendo código ejecutable: por ejemplo, componentes compilados como applets de Java o scripts del lado del cliente como JavaScript.

interfaz Uniformeditar

La restricción de interfaz uniforme es fundamental para el diseño de cualquier sistema RESTful. Simplifica y desacopla la arquitectura, lo que permite que cada parte evolucione de forma independiente., Las cuatro restricciones para esta interfaz uniforme son:

identificación de recursos en las solicitudes los recursos individuales se identifican en las solicitudes, por ejemplo, utilizando Uri en servicios web RESTful. Los recursos en sí están conceptualmente separados de las representaciones que se devuelven al cliente. Por ejemplo, el servidor podría enviar datos de su base de datos como HTML, XML o JSON, ninguno de los cuales es la representación interna del servidor., Manipulación de recursos a través de representaciones cuando un cliente tiene una representación de un recurso, incluidos los metadatos adjuntos, tiene suficiente información para modificar o eliminar el estado del recurso. Mensajes auto-descriptivos cada mensaje incluye suficiente información para describir cómo procesar el mensaje. Por ejemplo, el analizador a invocar puede ser especificado por un tipo de medio., Hypermedia como el motor de estado de la aplicación (HATEOAS) después de haber accedido a un URI inicial para la aplicación REST-análogo a un usuario web humano que accede a la página de inicio de un sitio web—un cliente REST debe ser capaz de utilizar enlaces proporcionados por el servidor de forma dinámica para descubrir todos los recursos disponibles que necesita. A medida que avanza el acceso, el servidor responde con texto que incluye hipervínculos a otros recursos que están disponibles actualmente. No es necesario que el cliente esté codificado con información sobre la estructura o la dinámica de la aplicación.

Leave A Comment