PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Redirection 307 et 308

lundi 16 juin 2014 à 02:20

Le standard HTTP 1.1 vient de subir une mise à jour.

Oui, LE standard HTTP 1.1. La fameuse RFC2616, qui n’a pas été touchée depuis l’année de sortie de The Matrix (coïncidence ? Je ne pense pas…).

Bref, qu’est-ce qui change ?

Essentiellement la forme, qui permettra à la RFC de HTTP 2.0 de faire référence à des parties de celle de la HTTP 1.1, maintenant divisée en 8, et évitera de se répéter.

Le web ne va donc pas casser.

Mais il y a quand même intronisation officielle de la redirection 308, qui est à la 301 ce que la 307 est à la 302.

Je me doute que ça vous parle autant qu’un personnage de film de Charlie Chaplin en fond d’écran d’un Windows avec driver realtek.

Pour rappel, quand un serveur HTTP répond à un client, il lui renvoie un code pour indiquer la nature de sa réponse. Quand tout va bien, c’est 200, quand la page n’est pas trouvée, c’est le fameux 404, quand le serveur est en erreur, c’est une 50x, etc.

Quand le serveur renvoie un code 30x, c’est généralement une redirection : on dit au client, ce que tu cherches est ailleurs, et le client, recevant ce code, fait donc une seconde requête, sur la nouvelle adresse.

Le code 301 indique une redirection permanente, ce qui signifie que le client peut considérer que c’est la nouvelle adresse qui remplace l’ancienne, pour toujours.

Le code 302 indique une redirection temporaire, généralement on utilise ça pour orienter le client sur le site à la suite d’une action, comme la saisie d’un formulaire.

Mais ces deux codes ont une particularité : le client effectue une simple requête GET vers la nouvelle adresse. Si vous avez fait une requête complexe avant, par exemple une requête POST avec plein de paramètres, le client va se rediriger avec une nouvelle requête GET basique, toute l’information précédente est perdue.

Cela peut être ce que l’on veut. Mais parfois, on souhaite que le client fasse la redirection avec une copie exacte de la requête initiale.

C’est ce que fait le code 307 : une redirection temporaire, mais avec la même requêtes. C’est comme la 302, donc, mais répète la même requête deux fois.

Le code 308 demande aussi une redirection en répétant la requête, mais une redirection permanente, comme la 301.

C’est ce dernier qui a été ajouté officiellement au protocole, puisqu’il est déjà supporté par la plupart des navigateurs : même IE le comprends depuis 2008.

(le support est vraiment aléatoire, voir comments)

Par curiosité, vous pouvez tester la redirection ici.

flattr this!

Error happened! 0 - count(): Argument #1 ($value) must be of type Countable|array, null given In: /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php:428 http://ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/?Redirection-307-et-308 #0 /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php(999): VroumVroum_Blog->update() #1 /var/www/ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/index.php(1): require_once('...') #2 {main}