HTTP commence par deux barres obliques. Par exemple http://example.com
.
Il en va de même pour FTP. Par exemple ftp://example.com
.
Toutefois, les "URL" de fichiers commencent par trois barres obliques. Par exemple, en lisant un fichier pdf en utilisant chrome, l'URL serait file:///D:/Desktop/Book.pdf
.
Pourquoi les URL de fichier utilisent-elles trois barres obliques?
browser
filesystems
url
Pacerier
la source
la source
file://localhost/D:/Desktop/
automatiquement.Réponses:
Comme d'autres l'ont mentionné, le schéma de fichier se présente sous la forme "fichier: // <hôte> / <chemin>". Bien que la plupart des navigateurs n'auront pas de problème avec seulement deux barres obliques, et à juste titre.
Toutes choses étant égales par ailleurs, la triple barre oblique et le mot clé "localhost" n'existent que pour garantir la conformité avec la syntaxe URI / URL valide. Dans le contexte du schéma de fichier, l'hôte n'a pas de sens puisqu'il se charge directement à partir d'un système de fichiers sans protocole de transfert explicite ni chemin du document du serveur. Comme ce n'est pas HTTP, il ne peut pas être chargé à partir d'un serveur Web standard où plusieurs hôtes virtuels locaux pourraient en théorie être configurés. Et il ne peut pas charger à partir d'un volume réseau standard qui est techniquement un autre "hôte", car le navigateur utilise simplement le nom du volume tel que "fichier: /// volumes / foo". Enfin, essayer des choses comme "fichier: //exemple.com/some/fichier" ne fonctionne pas. Il y a probablement une raison pour soutenir un hôte externe, mais je ne peux en penser à aucun.
L'IETF élabore actuellement des modifications visant à supprimer l'exigence de triple barre oblique, bien que le projet ajoute également quelques possibilités étranges, comme
file:c|/path
et mêmefile://///host.example.com/path
.la source
La syntaxe complète est
file://host/path
.Si l'hôte est
localhost
, il peut être omis, ce qui entraînefile:///path
.Voir RFC 1738 - Uniform Resource Locator (URL) :
la source
localhost
d'autres protocoles ou est-ce que ça marche seulementfile://
?Dennis a expliqué la 3ème barre oblique, nécessaire pour séparer le
host
de lapath
, mais les deux autres sont beaucoup plus intéressants ...Il s’avère qu’ils constituaient un ajout inutile et quelque peu arbitraire à la syntaxe de l’URL. Tim Berners-Lee, inventeur du World Wide Web et auteur de bon nombre de ses normes (y compris le RFC auquel Dennis s'est lié), a déploré son utilisation de la «double barre oblique» dans une interview en 2009.
http://bits.blogs.nytimes.com/2009/10/12/the-webs-inventor-regrets-one-small-thing/
Donc, à l’exception d’une erreur mineure (et inhabituelle) il ya quelque 18 ans, l’URL de votre fichier aurait pu être facilement
file:/D:/Desktop/Book.pdf
, plutôt quefile:///D:/Desktop/Book.pdf
.Pour répondre à votre question, il n’ya aucune bonne raison pour laquelle les URL comportent 3 barres obliques.
Mise à jour: Comme @ComFreek l'indique dans les commentaires, à partir de 2017, l'
file:/D:/...
exemple ci-dessus est maintenant valide! Ceci est dû à la RFC 8089 , qui appelle spécifiquement ce correctif de la norme précédente ...Quel temps pour vivre.
la source
http:example.com
au lieu de.http://example.com
Cela peut ne pas sembler beaucoup, mais ils s'additionnent. Google reçoit des millions de recherches par jour. Combien de liens y a-t-il sur une page? Au moins 20, cela signifie que pour un million de recherches, 20 Mo de bande passante auraient pu être sauvegardés si les barres obliques n'étaient pas nécessaires.http://example.com
pourrait être lié à comme//example.com
dans un document transmis sur http. Cela s'appelle une URL relative au protocole , tous les navigateurs les prennent en charge.file:/D:/Desktop/Book.pdf
existe un URI de fichier valide, conformément à la RFC 8089 (à partir de 2017), qui a remplacé la RFC 1738 (1994) en ce qui concerne les aspects URI de fichier.