Comment fonctionne HTTP 302? Je voudrais connaître les internes
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
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).
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.
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.
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.