Existe-t-il un moyen pour un serveur Web d'émettre une redirection qui n'exige pas que le navigateur émette une deuxième requête?Rediriger vers une nouvelle URL sans que le navigateur n'émette une deuxième requête?
Par exemple, le navigateur a demandé http://www.mysite.com/lion
, mais le serveur souhaite que le navigateur passe à http://www.mysite.com/jungle
. La seule façon dont je sais comment accomplir cela est que le serveur envoie un code d'état 3xx
avec l'URL jungle
, et le navigateur émet une nouvelle demande pour le récupérer.
Est-il possible pour le serveur de livrer la page jungle
en réponse à la demande lion
, et de dire au navigateur "Définir votre URL à http://www.mysite.com/jungle
"?
Mais le navigateur va-t-il changer l'URL dans sa barre d'adresse? –
Non. L'URL ne change que lorsque le navigateur demande un URI différent, ce qui n'est pas le cas. Vous ne pouvez pas rediriger et ne pas rediriger. Si vous souhaitez que l'URL change (vous souhaitez que le client, qu'il s'agisse d'un navigateur ou d'un moteur de recherche, sache que l'URI se trouve à un autre emplacement), envoyez l'en-tête de redirection et le code d'état approprié. Gardez à l'esprit que lorsque vous effectuez une redirection, vous n'envoyez que les en-têtes avant que le navigateur ne fasse sa deuxième requête, c'est rapide et ne gaspille pas de bande passante. –