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.

44
demandé sur Cassio Mazzochi Molin 2017-02-09 15:32:21

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 POSTGET. 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 POSTGET.

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 POSTGET pour la requête suivante. Si ce le comportement est indésirable, le 307 (Redirection Temporaire) code d'état peut être utilisé à la place.

6.4.3. 302 Found

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 POSTGET pour la requête suivante. Si ce le comportement est indésirable, le 307 (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 de POSTGET. Ce spécification définit pas d'équivalent pour 301 (Déplacé De façon permanente) ( RFC 7238, cependant, définit le code de statut 308 (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 POSTGET.

308 code d'état est maintenant défini par l' RFC 7538 (obsolète RFC 7238).

3. 308 Permanent Redirect

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 de POST pour GET.

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):

Picking a 2xx or 3xx status code

106
répondu Cassio Mazzochi Molin 2018-01-12 14:53:19