HTTP 302

HTTP Status Code
(Redirigé depuis Erreur 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

modifier

Requê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

Liens externes

modifier
  • RFC 2616[3] (HTTP 1.1)
  • RFC 1945[5] (HTTP 1.0)

Références

modifier
  1. Eric Lawrence, « HTTP Methods and Redirect Status Codes », EricLaw's IEInternals blog (consulté le )
  2. « Request and response objects | Django documentation | Django », Docs.djangoproject.com (consulté le )
  3. a et b (en) Request for comments no 2616
  4. « draft-ietf-httpbis-p2-semantics-26 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », Tools.ietf.org (consulté le )
  5. (en) Request for comments no 1945