Un aperçu de 301
, 302
et307
La RFC 7231 , la référence actuelle pour la sémantique et le contenu du protocole HTTP / 1.1, définit le code d'état 301
(déplacé de façon permanente) et 302
(trouvé), qui permet de changer la méthode de demande de POST
à GET
. Cette spécification définit également le 307
code d'état (Redirection temporaire) qui ne permet pas de changer la méthode de demande de POST
en GET
.
Voir plus de détails ci-dessous:
6.4.2. 301 Déménagé Définitivement
Le 301
code d'état (déplacé de façon permanente) indique que la ressource cible a reçu un nouvel URI permanent et que toute référence future à cette ressource doit utiliser l'un des URI inclus. [...]
Remarque: Pour des raisons historiques, un agent utilisateur PEUT changer la méthode de demande de POST
à GET
pour la demande suivante. Si ce comportement n'est pas souhaité, le 307
code d'état (Redirection temporaire) peut être utilisé à la place.
6.4.3. 302 Trouvés
Le 302
code d'état (Trouvé) indique que la ressource cible réside temporairement sous un URI différent. Étant donné que la redirection peut être modifiée à l'occasion, le client doit continuer à utiliser l'URI de demande effectif pour les demandes futures. [...]
Remarque: Pour des raisons historiques, un agent utilisateur PEUT changer la méthode de demande de POST
à GET
pour la demande suivante. Si ce comportement n'est pas souhaité, le 307
code d'état (Redirection temporaire) peut être utilisé à la place.
6.4.7. 307 Redirection temporaire
Le 307
code d'état (Redirection temporaire) indique que la ressource cible réside temporairement sous un URI différent et que l'agent utilisateur NE DOIT PAS changer la méthode de demande s'il effectue une redirection automatique vers cet URI. Étant donné que la redirection peut changer avec le temps, le client doit continuer à utiliser l'URI de la demande effective d'origine pour les demandes futures. [...]
Remarque: Ce code d'état est similaire à 302
(Trouvé), sauf qu'il ne permet pas de changer la méthode de demande de POST
à GET
. Cette spécification ne définit aucune contrepartie équivalente pour 301
(déplacé de façon permanente) (la RFC 7238 , cependant, définit le code d'état 308
(redirection permanente) à cet effet).
Le besoin de 308
La RFC 7238 a été créée pour définir le 308
code de statut (Redirection permanente), qui est similaire à 301
(Déplacé de manière permanente) mais ne permet pas de changer la méthode de demande de POST
à GET
.
Le 308
code d'état est maintenant défini par la RFC 7538 (qui a rendu obsolète la RFC 7238 ).
3. 308 Redirection permanente
Le 308
code d'état (Redirection permanente) indique que la ressource cible a reçu un nouvel URI permanent et que toute référence future à cette ressource doit utiliser l'un des URI inclus. Les clients dotés de capacités d'édition de liens doivent automatiquement relier les références à l'URI de demande effectif à une ou plusieurs des nouvelles références envoyées par le serveur, lorsque cela est possible. [...]
Remarque: Ce code d'état est similaire à 301
(Déplacé définitivement), sauf qu'il ne permet pas de changer la méthode de demande de
POST
à GET
.
Nous avons les éléments suivants:
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn't allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
Choisir le code de statut le plus approprié
Michael Kropat a rassemblé un ensemble de tableaux de décision qui aident à déterminer le meilleur code de statut pour chaque situation. Consultez les informations suivantes pour les codes d'état 2xx
et 3xx
: