En bref:
- GET = chercher une ressource.
- POST = mise à jour d'une ressource. DELETE = supprimer une ressource.
- PUT = créer/remplacer une ressource.
En HTML, seuls GET et POST sont autorisés. Un serveur HTTP de développement web typique ne fera rien à moins que vous ayez du code (ou de la configuration) pour spécifier ce que vous voulez qu'il fasse avec les différentes méthodes HTTP.
Rien ne vous empêche de mettre à jour les données utilisateur en réponse à une requête GET, mais ce n'est pas conseillé. Les navigateurs traitent différemment GET et POST, en ce qui concerne la mise en cache de la requête (un GET en cache sera automatiquement réémis, mais un POST en cache invitera l'utilisateur à le renvoyer) et de nombreux éléments HTML peuvent émettre des GET, les rendant dangereux pour mises à jour. Il existe également d'autres méthodes HTTP: http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol.
Beaucoup de personnes qui prétendent être RESTful vont confondre HTTP POST et PUT avec SQL UPDATE et INSERT. Il n'y a pas de corrélation directe, cela dépend toujours du contexte. Autrement dit, ce que signifie POST dépend entièrement de la ressource avec laquelle vous interagissez. Par exemple, créer une nouvelle entrée sur un blog pourrait être un POST pour le blog lui-même, ou un PUT pour une ressource subordonnée. Cependant, un PUT, by definition, doit toujours contenir la ressource entière.
En règle générale, vous ne permettrait pas à un client HTTP pour déterminer l'URI d'une nouvelle ressource, de sorte qu'un POST/blog serait plus sûr qu'un PUT à/blog/article-uri bien que HTTP ne répond des réponses appropriées Le serveur doit-il être incapable d'honorer l'URI voulu? (HTTP est juste une spécification, vous devez écrire le code pour le supporter, ou trouver un framework)
Mais comme vous pouvez toujours réaliser un PUT ou SUPPRIMER un cas d'utilisation en AFFICHANT une ressource parent responsable de ses subordonnés (c'est-à-dire POSTer un message dans/mailbox au lieu de le placer dans/mailbox/message-id), il n'est pas indispensable d'exposer publiquement les méthodes PUT ou DELETE. Vous pouvez améliorer vos compétences en programmation en adoptant les principes REST pour améliorer la visibilité des interactions au sein d'un système, il peut être plus simple de contextualiser vos interactions en termes de REST en ayant une interface uniforme, par exemple.
REST n'est pas HTTP si: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm.
oui, ça s'appelle une programmation reposante: http://shop.oreilly.com/product/9780596801694.do – fcalderan
Pourquoi diable le vote en baisse? –
@ F.Calderan: Non, ce n'est pas, ce n'est vraiment pas! ... http://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post - "Les définitions de méthodes spécifiques n'ont tout simplement pas d'importance pour le style architectural REST" - (du type inventé REST). –