REST
REST est une architecture de développement d'applications Web inventée par Roy T. Fielding dans sa thèse de doctorat.
En plus d'introduire ce concept, cette thèse présente un panel d'architectures Web. Elle fournit une grille de lecture qui permet de comparer les architectures entre elles en présentant leur avantages et leurs inconvénients, ainsi que les types d'applications pour lesquelles chaque architecture est adaptée.
Voir aussi l'article de Wikipedia
En plus d'introduire ce concept, cette thèse présente un panel d'architectures Web. Elle fournit une grille de lecture qui permet de comparer les architectures entre elles en présentant leur avantages et leurs inconvénients, ainsi que les types d'applications pour lesquelles chaque architecture est adaptée.
Voir aussi l'article de Wikipedia
Les principales caratéristiques de cette architecture sont :
- REST respecte l'architecture originale du Web basée sur le protocole http;
- les ressources (fichiers, écrans, ...) sont représentées par des URI ;
- PUT GET POST DELETE sont les commandes du protocoles http qui permettent de manipuler les ressources;
- aucun état relatif à l'interaction client/serveur n'est stocké sur le serveur; le client doit donc fournir au serveur toutes les données nécessaire au bon déroulement de la requête;
-utilisation des standards hypermedia : HTML ou XML qui permettent de faire des liens vers d'autres ressources et d'assurer ainsi la navigation dans l'application REST.
Cette architecture n'est pas limitée à la réalisation d'application pour un utilisateur humain. Elle est de plus en plus utilisée pour la réalisation de services Web destinés à la communication entre machines. Dans ce cadre là, les requêtes et les réponses sont typiquement encodées en XML. REST dans ce cas là se pose en alternative à RPC et SOAP, alternative sensée être plus simple à mettre en oeuvre.
Les avanatges de cette architecture par rapport à d'autres architectures d'applications web sont entres autres :
- L'absence d'état sur le serveur conduit à une consommation de mémoire inférieure et donc à une capacité plus grande de répondre à un grand nombre de requêtes simultanées.
- L'absence d'état sur le serveur rend le fonctionnement plus simple à appréhender. Le résultat d'un requête ne dépend pas de variables cachées difficilement identifiables. Cela conduit à une mise au point plus simple.
- L'absence d'état serveur permet une répartition des requêtes sur plusieurs serveurs avec une meilleure granularité et de manière plus souple. Cela permet aussi une meilleure tolérance aux pannes d'un des serveurs.
- Le respect de la philosophie du protocole http, à la différence de SOAP conduit à un architecture plus cohérente et plus simple.
- l'utilisation d'URI comme représentant d'une ressource, permet la mise en place de serveurs cache.
Le principal désavatage de REST est la néssité pour le client de conserver localement toutes les données nécessaires au bon déroulement d'une requête, ce qui induit une consommation en bande passante réseau plus grande. Attention, il est cependant possible de coupler une application web REST à un service extérieur assurant la permanence des données, par exemple une base de donnée. On pourrait cependant considérer que l'utilisation d'un tel service pour gérer des données relatives à une session ouverte par le client serait en violation de la philosophie de REST. L'utilisation d'un tel service extérieur ne doit permettre que de conserver des données destinées à survivre à la session.
- REST respecte l'architecture originale du Web basée sur le protocole http;
- les ressources (fichiers, écrans, ...) sont représentées par des URI ;
- PUT GET POST DELETE sont les commandes du protocoles http qui permettent de manipuler les ressources;
- aucun état relatif à l'interaction client/serveur n'est stocké sur le serveur; le client doit donc fournir au serveur toutes les données nécessaire au bon déroulement de la requête;
-utilisation des standards hypermedia : HTML ou XML qui permettent de faire des liens vers d'autres ressources et d'assurer ainsi la navigation dans l'application REST.
Cette architecture n'est pas limitée à la réalisation d'application pour un utilisateur humain. Elle est de plus en plus utilisée pour la réalisation de services Web destinés à la communication entre machines. Dans ce cadre là, les requêtes et les réponses sont typiquement encodées en XML. REST dans ce cas là se pose en alternative à RPC et SOAP, alternative sensée être plus simple à mettre en oeuvre.
Les avanatges de cette architecture par rapport à d'autres architectures d'applications web sont entres autres :
- L'absence d'état sur le serveur conduit à une consommation de mémoire inférieure et donc à une capacité plus grande de répondre à un grand nombre de requêtes simultanées.
- L'absence d'état sur le serveur rend le fonctionnement plus simple à appréhender. Le résultat d'un requête ne dépend pas de variables cachées difficilement identifiables. Cela conduit à une mise au point plus simple.
- L'absence d'état serveur permet une répartition des requêtes sur plusieurs serveurs avec une meilleure granularité et de manière plus souple. Cela permet aussi une meilleure tolérance aux pannes d'un des serveurs.
- Le respect de la philosophie du protocole http, à la différence de SOAP conduit à un architecture plus cohérente et plus simple.
- l'utilisation d'URI comme représentant d'une ressource, permet la mise en place de serveurs cache.
Le principal désavatage de REST est la néssité pour le client de conserver localement toutes les données nécessaires au bon déroulement d'une requête, ce qui induit une consommation en bande passante réseau plus grande. Attention, il est cependant possible de coupler une application web REST à un service extérieur assurant la permanence des données, par exemple une base de donnée. On pourrait cependant considérer que l'utilisation d'un tel service pour gérer des données relatives à une session ouverte par le client serait en violation de la philosophie de REST. L'utilisation d'un tel service extérieur ne doit permettre que de conserver des données destinées à survivre à la session.
Rétroliens
Laurence et Sébastien Dubourg sur : Deboguer un programme web CGI
Show preview
Exemple de session de debogageIl s'agit de déboguer un programme cgi stateless (voir l'article sur l'architecture REST) tournant sur un serveur Apache dans l'architecture Linux ou Unix.
On suppose que le CGI en question est un programme C (ou C++) lancé
Laurence et Sébastien Dubourg sur : DELETE PUT GET POST
Show preview
Lorsqu'un client (par exemple un navigateur internet) envoie une requête à un serveur web, il doit préciser une URL (adresse) et une méthode. Cette méthode indique ce que le client veut faire de l'entité représentée par l'URL. Prenons quelques exemples.
Laurence et Sébastien Dubourg sur : Redirections dans une application Web
Show preview
Dans une application web construite selon l'architecture REST, l'URL (adresse web) est considéré comme une une URI (Uniform Resource Identifier) qui identifie une ressource (par exemple un compte client, une facture, une référence catalogue...). Dans ce c
Laurence et Sébastien Dubourg sur : Êtes-vous Web 2.0
Show preview
Le présent blog est-il certifié web 2.0 ?Derrière le concept fumeux, car recouvrant des réalités trop disparâtres, il y a un certains nombre de techniques intéressantes qu'il ne faudrait pas jeter avec l'eau du bain marketing.
Une chose est certaine :
Commentaires
Afficher les commentaires en Vue non groupée | Vue groupée