DELETE PUT GET POST
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.
Lorsque l'on consulte des pages Internet en suivant des liens, le navigateur effectue un GET. Lorsque l'on valide un formulaire web, la méthode utilisée peut être GET ou POST.
L'écriture d'applications web en architecture REST conduit à utiliser d'autres méthodes comme DELETE et PUT.
Lorsque l'on consulte des pages Internet en suivant des liens, le navigateur effectue un GET. Lorsque l'on valide un formulaire web, la méthode utilisée peut être GET ou POST.
L'écriture d'applications web en architecture REST conduit à utiliser d'autres méthodes comme DELETE et PUT.
Voici la signification des méthodes ci-dessus:
- GET permet de récupérer une entité (un fichier html, une image, ...) identifiée par sont URL. D'après la norme http 1.1, GET ne doit pas servir à faire une action (par exemple une modification) sur l'entité. GET ne devrait servir qu'a la récupération de l'entité par le client.
- POST permet d'effectuer une action sur une entité, X. l'URL est soit une entité à laquelle X se rattache (par exemple X=message URL = forum dans lequel on veut poster le message), soit un script (cas particulier d'entité) qui sait comment gérer les données envoyées.
- PUT permet de modifier ou de créer l'entité désignée par l'URL
- DELETE demande la destruction de l'entité désignée par l'URL
Pour que tout cela fonctionne, il faut à la fois que le serveur Web sache traiter les méthodes et que le client sache les envoyer. Voir le tableau de compatibilité de différents environnements.
Prenons l'exemple du serveur Apache. Si on fait une requête avec une URL désignant un script, le script est appelé et c'est à lui de traiter correctement la méthode. Supposons que http://mon-serveur/mon_cgi soit un script. Alors si on fait une requête à l'URL http://mon-serveur/mon_cgi/documents/mon_rapport le script sera appelé et devra faire lui même le travail de traitement. Si l'URL désigne un fichier, il est possible de configurer Apache, à la de la directive Script pour indiquer quel script doit être appeler pour traiter une méthode spécifique comment PUT ou DELETE. On peut ainsi facilement mettre en place un service de type Webdav.
En ce qui concerne le client, prenons l'exemple des navigateurs Web. Il est possible avec un objet de type XmlHttpRequest, d'envoyer des requêtes avec des méthodes autres que GET et POST. (voir aussi cette présentation et la description des méthodes de cet objet).
Les tests que j'ai pu faire montrent qu'IE 6, IE 7 et Mozilla supportent l'envoi d'une méthode DELETE. Konqueror 3.3.2 (Moteur KHTML) bien que supportant XmlHttpRequest, transforme bizarrement toute requête DELETE en requête GET.
- GET permet de récupérer une entité (un fichier html, une image, ...) identifiée par sont URL. D'après la norme http 1.1, GET ne doit pas servir à faire une action (par exemple une modification) sur l'entité. GET ne devrait servir qu'a la récupération de l'entité par le client.
- POST permet d'effectuer une action sur une entité, X. l'URL est soit une entité à laquelle X se rattache (par exemple X=message URL = forum dans lequel on veut poster le message), soit un script (cas particulier d'entité) qui sait comment gérer les données envoyées.
- PUT permet de modifier ou de créer l'entité désignée par l'URL
- DELETE demande la destruction de l'entité désignée par l'URL
Pour que tout cela fonctionne, il faut à la fois que le serveur Web sache traiter les méthodes et que le client sache les envoyer. Voir le tableau de compatibilité de différents environnements.
Prenons l'exemple du serveur Apache. Si on fait une requête avec une URL désignant un script, le script est appelé et c'est à lui de traiter correctement la méthode. Supposons que http://mon-serveur/mon_cgi soit un script. Alors si on fait une requête à l'URL http://mon-serveur/mon_cgi/documents/mon_rapport le script sera appelé et devra faire lui même le travail de traitement. Si l'URL désigne un fichier, il est possible de configurer Apache, à la de la directive Script pour indiquer quel script doit être appeler pour traiter une méthode spécifique comment PUT ou DELETE. On peut ainsi facilement mettre en place un service de type Webdav.
En ce qui concerne le client, prenons l'exemple des navigateurs Web. Il est possible avec un objet de type XmlHttpRequest, d'envoyer des requêtes avec des méthodes autres que GET et POST. (voir aussi cette présentation et la description des méthodes de cet objet).
Les tests que j'ai pu faire montrent qu'IE 6, IE 7 et Mozilla supportent l'envoi d'une méthode DELETE. Konqueror 3.3.2 (Moteur KHTML) bien que supportant XmlHttpRequest, transforme bizarrement toute requête DELETE en requête GET.
Rétroliens
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
Commentaires
Afficher les commentaires en Vue non groupée | Vue groupée