Dans HTTP 1.1, il existe en réalité un code d'état ( 307 ) qui indique que la demande doit être répétée en utilisant la même méthode et les mêmes données de publication .
Comme d’autres l’ont dit, il existe un risque potentiel d’utilisation abusive, ce qui explique peut-être pourquoi de nombreux cadres restent fidèles aux normes 301 et 302. Cependant, avec une bonne compréhension et une utilisation responsable, vous devriez être capable de réaliser ce que vous cherchez.
Notez que, selon les spécifications de W3.org , lorsque ce METHOD
n'est pas le cas HEAD
ou GET
, les agents utilisateurs doivent informer l'utilisateur avant de réexécuter la demande au nouvel emplacement. Vous devez également fournir une note et un mécanisme de secours à l'utilisateur si les anciens agents utilisateurs ne savent pas quoi faire avec un 307.
En utilisant ce formulaire:
<form action="Test307.aspx" method="post">
<input type="hidden" name="test" value="the test" />
<input type="submit" value="test" />
</form>
Et après avoir Test307.aspx, il suffit de renvoyer 307 avec l'emplacement: http://google.com , Chrome 13 et Fiddler confirment que "test = le test" est effectivement posté sur Google. Bien sûr, la réponse suivante est un 405 puisque Google n'autorise pas le POST, mais cela montre les mécanismes.
Pour plus d'informations, voir Liste des codes d'état HTTP et spécification W3.org .
307 Redirection temporaire (depuis HTTP / 1.1) À cette occasion, la requête doit être répétée avec un autre URI, mais les futures requêtes peuvent toujours utiliser l'URI d'origine. 2 Contrairement à 303, la méthode de requête ne doit pas être modifiée lors de la réémission de la requête d'origine. Par exemple, une demande POST doit être répétée à l'aide d'une autre demande POST.