Quelle action HTTP utiliser ?
Le dernier article de PHPAdvent, écrit par Ben Ramsey, parle des actions HTTP et de leur idempotence (ou non-idempotence). Qu'est-ce que ça vient faire là dedans me direz-vous ? Ce que Ramsey dit c'est qu'une action est idempotente si, appliqué sur une ressource, elle retourne la même chose peu importe le nombre de fois qu'elle est utilisé. Les actions GET, HEAD, PUT, DELETE son idempotente et l'action POST ne l'est pas.
Le point de Ramsey est qu'il faut utiliser l'action POST prudemment, contrairement à l'habitude. Par exemple, cliquer sur un lien qui ajoute un article à son panier devrait utiliser le POST parce qu'à chaque fois qu'on clique dessus, ça ajoute un item dans le panier. Il dit qu'il faut faire ça pour une raison de sécurité, pour que le navigateur puisse avertir l'utilisateur que l'action fait quelque chose de spécial...
Moi je pense que c'est n'importe quoi ! Premièrement, pourquoi faudrait-il faire un formulaire avec un seul bouton pour permettre d'ajouter un un article dans son panier ? Un simple lien fait l'affaire ! Deuxièmement, même si le navigateur averti lorsqu'on appui sur le bouton précédent et qu'on tombe sur une action POST, l'utilisateur moyen ne sait même pas ce qu'il vient de se passer.
Dans les actions AJAX, je croit que ça vaut la peine de se forcer un peu pour utiliser les bonnes actions, mais dans le reste des cas, c'est vraiment se casser la tête pour rien.
Bienvenue sur notre blog, puisque c'est à la mode! Pour ceux qui ne nous connaissent pas, nous sommes Sarah et Sylvain, les programmeurs chez 