Un article que j'ai lu une fois disait que cela signifiait sauter (d'un URI à un autre), mais j'ai détecté ce "302" même quand il n'y avait en fait aucun saut!
Un article que j'ai lu une fois disait que cela signifiait sauter (d'un URI à un autre), mais j'ai détecté ce "302" même quand il n'y avait en fait aucun saut!
Réponses:
Une redirection 302 signifie que la page a été temporairement déplacée, tandis qu'une 301 signifie qu'elle a été déplacée de manière permanente.
Les 301 sont bons pour la valeur SEO, tandis que les 302 ne le sont pas parce que les 301 demandent aux clients d'oublier la valeur de l'URL d'origine, tandis que les 302 conservent la valeur de l'original et peuvent donc potentiellement réduire la valeur en créant deux URL logiquement distinctes qui chacun produit le même contenu (les moteurs de recherche les considèrent comme des doublons distincts plutôt que comme une seule ressource avec deux noms).
Cette question a été posée il y a longtemps, alors que la RFC 2616 traînait toujours. Certaines réponses à cette question sont basées sur un tel document, qui n'est plus pertinent de nos jours. Citant Mark Nottingham qui, au moment de la rédaction de cet article, copréside les groupes de travail HTTP et QUIC de l'IETF:
N'utilisez pas RFC2616 . Supprimez-le de vos disques durs, de vos signets et gravez (ou recyclez de manière responsable) toutes les copies imprimées.
L'ancienne RFC 2616 a été supplantée par les documents suivants qui, ensemble, définissent le protocole HTTP / 1.1:
Je vise donc à fournir une réponse basée sur la RFC 7231 qui est la référence actuelle pour les codes d'état HTTP / 1.1.
302
code d'étatUne réponse avec 302
est un moyen courant d'effectuer la redirection d'URL. Avec le 302
code d'état, la réponse doit inclure un en- Location
tête avec un URI différent. Un tel en-tête sera analysé par l'agent utilisateur puis effectuera la redirection:
Les navigateurs Web peuvent changer de POST
à GET
dans la demande suivante. Si ce comportement n'est pas souhaité, le 307
code d'état (Redirection temporaire) peut être utilisé à la place.
Voici comment le 302
code d'état est défini dans la RFC 7231 :
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.Le serveur DEVRAIT générer un
Location
champ d'en-tête dans la réponse contenant une référence URI pour les différents URI. L'agent utilisateur PEUT utiliser laLocation
valeur du champ pour la redirection automatique. La charge utile de réponse du serveur contient généralement une courte note hypertexte avec un lien hypertexte vers les différents URI.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é, le307
code d'état (Redirection temporaire) peut être utilisé à la place.
Selon la documentation Web MDN de Mozilla , un cas d'utilisation typique 302
est:
La page Web est temporairement indisponible pour des raisons qui n'ont pas été imprévues. De cette façon, les moteurs de recherche ne mettent pas à jour leurs liens.
La RFC 7231 définit les codes d'état suivants pour la redirection:
La RFC 7238 a été créée pour définir un autre code d'état pour la redirection:
308
(Redirection permanente)Reportez-vous à cette réponse pour plus de détails.
Location
tête était la chose qui m'a aidé). Il s'avère que j'appelais un service avec http
et ils ont déménagé https
, tout ce que j'ai eu en réponse était 302
, dès que j'ai lu l'en- Location
tête ici, j'ai vu la http/https
différence. Je vous remercie!
Une façon simple de regarder les redirections HTTP 301 par rapport à 302 est:
Supposons que vous ayez un signet vers " http://sample.com/sample ". Vous utilisez un navigateur pour vous y rendre.
Une redirection 302 vers une URL différente à ce stade signifierait que vous devez conserver votre signet vers " http://sample.com/sample ". C'est parce que l'URL de destination peut changer à l'avenir.
Une redirection 301 vers une URL différente signifierait que votre signet devrait changer pour pointer vers la nouvelle URL car il s'agit d'une redirection permanente.
À partir de la RFC 2616 (la spécification du protocole de transfert hypertexte) :
10.3.3 302 Trouvé La ressource demandée réside temporairement sous un URI différent. Puisque la redirection peut être modifiée à l'occasion, le client DEVRAIT continuez à utiliser Request-URI pour les demandes futures. Cette réponse ne peut être mis en cache que s'il est indiqué par un en-tête Cache-Control ou Expires champ. L'URI temporaire DEVRAIT être donnée par le champ Location dans le réponse. À moins que la méthode de demande ne soit HEAD, l'entité du réponse DEVRAIT contenir une courte note hypertexte avec un lien hypertexte vers le ou les nouveaux URI.
La source:
De Wikipedia :
Le code d'état de réponse HTTP 302 Trouvé est le moyen le plus courant d'effectuer une redirection. C'est un exemple de pratique industrielle en contradiction avec la norme.
Selon les définitions de code d'état http, un 302 indique une redirection (temporaire). "La ressource demandée réside temporairement sous un autre URI"
302 est une réponse indiquant un changement d'emplacement de ressource - "Trouvé".
L'URL où la ressource doit maintenant se trouver doit se trouver dans l'en-tête de la réponse "Location".
Le "saut" doit être effectué par le client demandeur (faites une nouvelle requête à l'url de la ressource dans le champ d'en-tête Location de la réponse).
En terme de référencement, 301 et 302 sont tous les deux bons cela dépend de la situation,
Si une seule version peut être retournée (c'est-à-dire que l'autre redirige vers elle), c'est super! Ce comportement est avantageux car il réduit le contenu dupliqué. Dans le cas particulier des redirections vers des URL de barre oblique de fin, nos résultats de recherche afficheront probablement la version de l'URL avec le code de réponse 200 (le plus souvent l'URL de barre oblique de fin), que la redirection soit 301 ou 302.
Le code HTTP 302 est pour la redirection, voir http://en.wikipedia.org/wiki/HTTP_302 .
Il indique au navigateur lisant une page d'aller ailleurs et de charger une autre page. Son utilisation est très courante.
Selon RFC 1945 / Hypertext Transfer Protocol - HTTP / 1.0 :
302 Moved Temporarily
The requested resource resides temporarily under a different URL.
Since the redirection may be altered on occasion, the client should
continue to use the Request-URI for future requests.
The URL must be given by the Location field in the response. Unless
it was a HEAD request, the Entity-Body of the response should
contain a short note with a hyperlink to the new URI(s).
If the 302 status code is received in response to a request using
the POST method, the user agent must not automatically redirect the
request unless it can be confirmed by the user, since this might
change the conditions under which the request was issued.
Note: When automatically redirecting a POST request after
receiving a 302 status code, some existing user agents will
erroneously change it into a GET request.
EXEMPLE: - Bien qu'il ne soit pas très courant que nous ayons besoin d'une redirection 302, cette option peut être très utile dans certains cas. Voici les cas les plus fréquents:
Une redirection 302 est un code qui informe les visiteurs d'une URL spécifique que la page a été déplacée temporairement, les dirigeant directement vers le nouvel emplacement.
En d'autres termes, la redirection 302 est activée lorsque des robots Google ou d'autres moteurs de recherche demandent à charger une page spécifique. A ce moment, grâce à cette redirection, le serveur renvoie une réponse automatique indiquant une nouvelle URL.
De cette manière, les erreurs et les désagréments sont évités pour les moteurs de recherche et les utilisateurs, garantissant une navigation fluide.
Pour plus de détails, reportez-vous à cet article .
Un code d'état 302 est un code d'état de réponse HTTP indiquant que la ressource demandée a été temporairement déplacée vers un URI différent. Étant donné que l'emplacement ou la directive de redirection actuelle peut être modifiée à l'avenir, un client qui reçoit un code de réponse 302 Found doit continuer à utiliser l'URI d'origine pour les demandes futures.
Une réponse HTTP avec ce code d'état fournira en outre une URL dans le champ d'en-tête Location. Il s'agit d'une invitation à l'agent utilisateur (par exemple un navigateur Web) à faire une deuxième requête, sinon identique, à la nouvelle URL spécifiée dans le champ de localisation. Le résultat final est une redirection vers la nouvelle URL.
Pour tous ceux qui pourraient être curieux de connaître la dénomination, je vais simplement ajouter qu'elle s'appelle probablement "Trouvé" car la ressource principale (par exemple, une page Web privée) que l'utilisateur a l'intention de recevoir n'est pas disponible à ce moment-là (par exemple, l'utilisateur n'a pas encore prouvé son identité), donc à la place, le serveur a trouvé une nouvelle ressource que l'utilisateur peut recevoir (qui est une page de connexion dans le cas d'utilisation le plus courant).
De plus, c'est "se perdre et se retrouver" à la manière de cache-cache, ce qui signifie qu'une ressource perdue sous un statut 302 n'est perdue que temporairement , elle n'est pas censée être perdue pour toujours (à moins qu'un joueur n'ait de mauvaises intentions;)).