2010-08-22 14 views
1

J'ai une séquence de formes qui suit l'algorithme suivant:Devrais-je utiliser un mélange de POST et GET pour cette séquence de formulaire?

Form # 1

  1. Demander entrée de la valeur A.
  2. Envoyer X * Demande de valeur A.

Formulaire # 2

  1. Affichage de la valeur A et invite à l'entrée de la valeur B.
  2. Envoyer requête POST avec une valeur A et B.

* X doit-à l'étape 2 soit GET ou POST? J'allais simplement faire un POST, mais j'ai hésité et je me suis demandé si je devais utiliser GET puisque le formulaire # 1 ne fait que transmettre une valeur (s) à la forme # 2 et non POSTing à une base de données.

Merci!

Répondre

2

Effectue un POST, car son objectif est de provoquer un effet de bord côté serveur (en particulier, de changer l'état du formulaire multi-page).

RFC 2616 dit dans section 9.1.1:

En particulier, la convention a été établi que les méthodes GET et HEAD ne devraient pas avoir l'importance de prendre une action autre que la récupération. Ces méthodes doivent être considérées comme "sûres". Cela permet aux agents utilisateurs de représenter d'une manière spéciale d'autres méthodes, telles que POST, PUT et DELETE, de sorte que l'utilisateur soit averti du fait qu'une action potentiellement dangereuse est demandée.

Naturellement, il n'est pas possible de s'assurer que le serveur ne génère pas d'effets secondaires suite à l'exécution d'une requête GET; en fait, certaines ressources dynamiques considèrent cela comme une caractéristique. La distinction importante ici est que l'utilisateur n'a pas demandé les effets secondaires, donc ne peut donc pas être tenu responsable pour eux.