Quelle est la différence entre les codes D'état HTTP 301 et 308?
Quelle est la différence entre HTTP 301
et 308
codes de statut?
301
(déplacé de façon permanente): cette demande et toutes les demandes futures doivent être adressées à L'URI en question.308
(redirection permanente): la requête et toutes les requêtes futures doivent être répétées en utilisant un autre URI.
Ils semblent être similaires.
1 réponses
un aperçu de 301
,302
et 307
RFC 7231, la référence courante pour la sémantique et le contenu du protocole HTTP/1.1, définit le 301
(déplacé de façon permanente) et 302
(Found) code d'état, qui permet de changer la méthode de requête de POST
GET
. Cette spécification définit également le 307
(redirection temporaire) code d'état qui ne permet pas la méthode request être modifié à partir de POST
GET
.
Voir plus de détails ci-dessous:
6.4.2. 301 Déplacés De Façon Permanente
301
(déplacé de façon permanente) le code d'état indique que la cible une nouvelle URI permanente a été assignée et toute future les références à cette ressource doivent utiliser l'un des URI ci-joints. [...]Remarque: Pour des raisons historiques, un agent utilisateur Peut modifier la demande méthode de
POST
GET
pour la requête suivante. Si ce le comportement est indésirable, le307
(Redirection Temporaire) code d'état peut être utilisé à la place.
302
(Trouvé) code d'état indique que la ressource cible réside temporairement sous une URI différente. Depuis la redirection peut être modifiée à l'occasion, le client doit continuer à utiliser le URI de la demande effective pour les demandes futures. [...]Remarque: Pour des raisons historiques, un agent utilisateur PEUT modifier la demande méthode de
POST
GET
pour la requête suivante. Si ce le comportement est indésirable, le307
(Redirection Temporaire) code d'état peut être utilisé à la place.
6.4.7. 307 Redirection Temporaire
307
(Redirection temporaire) code d'état indique que la cible la ressource réside temporairement sous un URI différent et l'agent utilisateur Ne doit pas changer la méthode de requête si elle exécute un redirection vers cette URI. Puisque la redirection peut changer avec le temps, le client doit continuer à utiliser L'URI original de la demande effective pour les demandes à venir. [...]Remarque: Ce code d'état est similaire à
302
(), sauf qu'il ne permet pas de changer la méthode de requête dePOST
GET
. Ce spécification définit pas d'équivalent pour301
(Déplacé De façon permanente) ( RFC 7238, cependant, définit le code de statut308
(Redirection permanente) à cet effet).
Le besoin de 308
RFC 7238 a été créé pour définir les 308
(redirection permanente) code de statut, qui est similaire à 301
(déplacé de façon permanente) mais ne permet pas de changer la méthode de requête de POST
GET
.
308
code d'état est maintenant défini par l' RFC 7538 (obsolète RFC 7238).
308
(redirection permanente) le code de statut indique que la cible ressource a été assigné une nouvelle URI permanente et tout futur les références à cette ressource doivent utiliser l'un des URI ci-joints. Les Clients avec des capacités d'édition de lien devraient automatiquement re-lien références à L'URI de la demande effective d'un ou de plusieurs des nouvelles références envoyées par le serveur, si possible. [...]Remarque: Ce code d'état est similaire à
301
(Déplacé De Façon Permanente), sauf qu'il ne permet pas de changer la méthode request dePOST
pourGET
.
Se 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 |
+------------------------------------------------------------+-----------+-----------+
Choix le plus approprié code d'état
regardez le diagramme ci-dessous (extrait de ce page):