HTTP 302
Le code de réponse HTTP 302 Found est une manière classique de réaliser des Redirections d'URL non permanentes.
Une réponse avec ce code donne en plus une URL dans le champ d'entête location (en). Le User-Agent (c.à.d le navigateur web) est invité par la réponse contenant ce code à refaire une nouvelle requête à l'URL spécifiée dans le champ location. Beaucoup de navigateurs webs implémentent ce code d'une manière qui viole les standards, en changeant le type de la nouvelle requête vers GET, sans tenir compte du type de la requête originale (c'est-à-dire POST)[1]. C'est pour cette raison que deux nouveaux statuts ont été créés : HTTP 303 et HTTP 307 pour distinguer les deux comportements, avec 303 changeant le type de la requête vers GET et 307 conservant le type de la requête originelle. Malgré ces deux codes bien distincts, le code 302 est toujours employé dans les frameworks web pour préserver la compatibilité avec les navigateurs n'implémentant pas le HTTP/1.1[2].
L'amélioration de RFC 2616[3] a changé la définition pour autoriser les User-Agents à transformer une requête POST en requête GET[4].
Exemple
modifierRequête client:
GET /index.html HTTP/1.1 Host: www.example.com
Réponse serveur:
HTTP/1.1 302 Found Location: http://www.iana.org/domains/example/
Voir aussi
modifier- Liste des codes HTTP
- HTTP 301 - Redirection permanente
Liens externes
modifierRéférences
modifier- Eric Lawrence, « HTTP Methods and Redirect Status Codes », EricLaw's IEInternals blog (consulté le )
- « Request and response objects | Django documentation | Django », Docs.djangoproject.com (consulté le )
- (en) Request for comments no 2616
- « draft-ietf-httpbis-p2-semantics-26 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », Tools.ietf.org (consulté le )
- (en) Request for comments no 1945