web-dev-qa-db-fra.com

Comment fonctionne HTTP 302?

Comment fonctionne HTTP 302? Je voudrais connaître les internes

44
GilliVilla

Vous voulez dire comment les navigateurs le gèrent? Le serveur envoie un code 302 Avec un en-tête Location et le navigateur demande le nouvel URI spécifié par l'en-tête Location à la place.

Contrairement à 301 (Moved Permanently), le navigateur continue d'utiliser l'URI d'origine pour effectuer des requêtes, au cas où le code 302 Disparaîtrait

47
Michael Mrozek

Le serveur renvoie une réponse HTTP avec le code 302, indiquant une redirection temporaire, et inclut un Location: en-tête indiquant le nouvel URI, par exemple.

HTTP/1.1 302 Found
Location: http://some-other-url

Et éventuellement d'autres en-têtes à la discrétion du serveur.

Le navigateur prend normalement cela comme une directive pour effectuer automatiquement une nouvelle demande distincte pour l'autre URI spécifié par l'en-tête d'emplacement. Le client (navigateur) n'est pas forcé pour ce faire (il pourrait, en théorie, simplement afficher un message à l'utilisateur, ou faire tout ce qu'il veut), mais c'est ainsi que les clients HTTP se comportent généralement.

Notez que puisque le 302 est une redirection temporaire, un client qui se comporte bien continuera à utiliser l'ancienne URL à l'avenir, plutôt que d'aller directement à la nouvelle (301 est une redirection permanente).

21
Tyler McHenry

De: http://www.ietf.org/rfc/rfc2616.txt et http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html =

10.3.3 302 trouvés

La ressource demandée réside temporairement sous un URI différent. Étant donné que la redirection peut être modifiée à l'occasion, le client DEVRAIT continuer à utiliser l'URI de demande pour les demandes futures. Cette réponse ne peut être mise en cache que si elle est indiquée par un champ d'en-tête Cache-Control ou Expires.

L'URI temporaire DEVRAIT être donné par le champ Emplacement dans la réponse. Sauf si la méthode de demande était HEAD, l'entité de la réponse DEVRAIT contenir une courte note hypertexte avec un lien hypertexte vers les nouveaux URI.

Si le code d'état 302 est reçu en réponse à une demande autre que GET ou HEAD, l'agent utilisateur NE DOIT PAS rediriger automatiquement la demande, sauf si elle peut être confirmée par l'utilisateur, car cela pourrait changer les conditions dans lesquelles la demande a été émise.

  Note: RFC 1945 and RFC 2068 specify that the client is not allowed
  to change the method on the redirected request.  However, most
  existing user agent implementations treat 302 as if it were a 303
  response, performing a GET on the Location field-value regardless
  of the original request method. The status codes 303 and 307 have
  been added for servers that wish to make unambiguously clear which
  kind of reaction is expected of the client.
9
xgMz

Les internes de quoi? 302 est un code retour que le serveur donne au client, ce que le client fait est jusqu'à lui. Les RFC donnent des indications sur ce que le client devrait faire, mais dans le monde réel 301, 302, 303 et 307 sont tous traités de la même manière par les navigateurs traditionnels.

2
James Antill

Juste un module complémentaire - Il est important que le client stop frappe la même URL de serveur avec la même demande consécutivement/fréquemment.

1
A.T.