Je pose cette question car chaque fois que je survole un lien vers une page d'accueil (par exemple http://www.example.com)
, je remarque qu'une barre oblique de fin est toujours ajoutée (comme observé dans la barre d'état du navigateur) si le lien de la page d'accueil contient un attribut href qui se termine par une barre oblique ou pas. Mais chaque fois que je suis sur la page d'accueil, l'URL affichée n'a pas de barre oblique de fin.
J'ai essayé d'entrer une barre oblique dans l'URL dans la barre d'URL. Et avec Firebug activé, je remarque que le site renvoie toujours un état 200 OK. Un article ici discutant de ceci indique qu'avoir une barre oblique à la fin évitera une redirection 301. Mais je ne vois aucune redirection, même sur cette page.
Serait-ce une fonctionnalité de navigateur qui ajoute la barre oblique?
?
dans l'URL), ce qui est assez idiot IMO.Réponses:
Oui, tous les navigateurs traditionnels "ajoutent une barre oblique" à la demande HTTP lorsqu'ils demandent une URL de domaine nue (c'est-à-dire la page d'accueil). Ceci est en fait nécessaire pour rendre la requête HTTP valide, ce qui
http://example.com/
est:Notez la
/
(barre oblique) dans la première ligne - il s'agit de l'URL demandée. Ce n'est pas valable de ne rien avoir ici. De RFC 2616 :Vous devez regarder la requête HTTP que le navigateur fait au serveur. L'URL affichée dans la "barre d'état du navigateur", ou même l'URL dans la barre d'adresse peut être différente - plus conviviale. Google Chrome n'ajoute pas la barre oblique de fin dans la barre d'état, bien que la barre oblique soit présente dans la demande.
Aucune redirection 301 ne se produit si vous spécifiez
http://example.com
(pas de barre oblique) car le navigateur corrige la demande HTTP avant qu'elle ne soit effectuée.Notez que cela est différent des barres obliques ajoutées à la fin des URL lorsqu'il existe un chemin / répertoire. par exemple.
http://example.com/directory/
. L'article auquel vous créez un lien semble traiter les deux de la même manière et ne semble pas être entièrement correct de l'OMI. Si vous avez demandéhttp://example.com/directory
(pas de barre oblique), le navigateur n'ajoute pas de barre oblique et oui, la plupart des serveurs seront redirigés vershttp://example.com/directory/
(barre oblique) - mais cela dépend du serveur; ça pourrait tout simplement casser! Sur Apache, par exemple, cela dépend de laDirectorySlash
définition de la directiveon
.la source
example.com
ou lesexample.com/
deux nécessitent exactement la même demande au serveur.