La barre oblique de fin est-elle automatiquement ajoutée au clic de l'URL de la page d'accueil dans le navigateur?


17

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?


Oui. Par exemple, je pense qu'Opera cache la barre oblique (et il cache aussi parfois le protocole qui me rend fou de dev!) ...
Matt

Quelle est exactement la question ici? (Ou le point de la question.) Et quel est "le" site auquel vous faites référence? Si vous vérifiez ici avec les webmasters, par exemple, vous remarquerez que dans Firefox et Chrome (je ne fais pas de test complet), ce que vous décrivez dans la mesure où une barre oblique est ajoutée ne se produit pas . Il semble en fait forcer la suppression de la barre oblique si vous essayez d'en ajouter une, d'ailleurs.
Di

@Su ', je fais référence à n'importe quel site et la barre d'état fait référence à celle affichée en bas de n'importe quel navigateur et la barre d'URL fait référence à la barre d'adresse en haut. Désolé si je vous ai causé de la confusion.
Débordement de questions

2
@Matt Opera cache également la chaîne de requête (peu après ?dans l'URL), ce qui est assez idiot IMO.
DisgruntledGoat

Réponses:


28

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:

GET / HTTP/1.1
Host: example.com

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 :

Notez que le chemin absolu ne peut pas être vide; si aucun n'est présent dans l'URI d'origine, il DOIT être donné comme "/" (la racine du serveur).

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 vers http://example.com/directory/(barre oblique) - mais cela dépend du serveur; ça pourrait tout simplement casser! Sur Apache, par exemple, cela dépend de la DirectorySlashdéfinition de la directive on.


Pour ajouter à la réponse, chaque fois que vous créez un lien vers votre page d'accueil, ajoutez la barre oblique de fin pour économiser les ressources du serveur.
Anagio

5
@Anagio Je ne pense pas que vous compreniez la réponse. Vous ne sauveriez pas du tout les ressources du serveur car il n'y a pas de redirection. Un domaine avec et sans barre oblique est 100% identique. En d'autres termes, il n'y a absolument aucun moyen de renvoyer un contenu différent pour chacun (ce que vous pouvez faire avec les URL de répertoire).
DisgruntledGoat

1
@DisgruntledGoat si vous omettez la barre oblique de fin et que le serveur redirige, puis l'ajout d'une barre oblique de fin dans les liens éviterait au serveur d'avoir à recharger la page. C'est tout ce que je voulais en venir, pour mettre fin à ce slash talk Google a un excellent article dessus googlewebmastercentral.blogspot.com/2010/04/…
Anagio

5
@Anagio Cet article concerne les barres obliques de fin pour les répertoires , alors que cette question concerne uniquement les barres obliques de fin sur le domaine . Comme l'indique la réponse ci-dessus, cela ne fait aucune différence, car un lien vers example.comou les example.com/deux nécessitent exactement la même demande au serveur.
DisgruntledGoat

3
… Car le navigateur «corrigera» cela.
unor
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.