web-dev-qa-db-fra.com

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 d'état?

  • 301 (Déplacé de façon permanente): cette requête et toutes les futures requêtes doivent être adressées à l'URI donné.

  • 308 (Redirection permanente): la demande et toutes les demandes futures doivent être répétées en utilisant un autre URI.

Ils semblent être similaires.

79

Un aperçu de 301, 302 Et 307

Le RFC 7231 , référence actuelle pour la sémantique et le contenu du protocole HTTP/1.1, définit le 301 (déplacé de façon permanente) et 302 Code d'état (trouvé), permettant de modifier la méthode de requête de POST à GET. Cette spécification définit également le code d'état 307 (redirection temporaire) qui ne permet pas de modifier la méthode de requête de POST à GET.

Voir plus de détails ci-dessous:

6.4.2. 301 déplacé de façon permanente

Le code de statut 301 (Déplacé de façon permanente) indique qu'un nouvel URI permanent a été attribué à la ressource cible et que toute référence future à cette ressource doit utiliser l'un des URI inclus. [...]

Remarque: Pour des raisons historiques, un agent d'utilisateur PEUT changer la méthode de requête de POST en GET pour la requête suivante. . Si ce comportement n'est pas souhaité, le code d'état 307 (Redirection temporaire) peut être utilisé à la place.

6.4.3. 302 trouvé

Le code de statut 302 (Trouvé) indique que la ressource cible réside temporairement sous un autre URI. É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 d'utilisateur PEUT changer la méthode de requête de POST en GET pour la requête suivante. . Si ce comportement n'est pas souhaité, le code d'état 307 (Redirection temporaire) peut être utilisé à la place.

6.4.7. 307 Redirection temporaire

Le code de statut 307 (Redirection temporaire) indique que la ressource cible réside temporairement sous un autre URI et que l'agent d'utilisateur NE DOIT PAS changer de méthode de requête s'il effectue une redirection automatique vers cet URI. Étant donné que la redirection peut changer au fil du temps, le client doit continuer à utiliser l'URI de demande effectif d'origine pour les demandes futures. [...]

Remarque: Ce code de statut est similaire à 302 (Trouvé), sauf qu'il ne permet pas de modifier la méthode de requête de POST à GET. Cette spécification ne définit aucune contrepartie équivalente pour 301 (Déplacé de façon permanente) ( RFC 7238 définit toutefois le code d'état 308 (Redirection permanente) à cette fin).

La nécessité de 308

La RFC 7238 a été créée pour définir le code d'état 308 (redirection permanente), similaire à 301 (déplacé de façon permanente) mais ne permet pas de changer la méthode de requête de POST à GET.

Le code d'état 308 est maintenant défini par le RFC 7538 (qui rend obsolète le RFC 7238 ).

3. 308 Redirection permanente

Le code de statut 308 (Redirection permanente) indique qu'un nouvel URI permanent a été attribué à la ressource cible et que toute référence future à cette ressource doit utiliser l'un des URI inclus. Les clients dotés de fonctionnalité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, dans la mesure du possible. [...]

Remarque: Ce code de statut est similaire à 301 (Déplacé de façon permanente), sauf qu'il ne permet pas de modifier la méthode de requête de POST à GET.

Se nous avons ce qui suit:

                                                             +-----------+-----------+
                                                             | 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 mis en place un ensemble de diagrammes de décision qui permet de déterminer le meilleur code de statut pour chaque situation. Voir ce qui suit pour les codes de statut 2xx Et 3xx:

Picking a 2xx or 3xx status code

183
cassiomolin