Por que os URLs de arquivos começam com três barras?

173

O HTTP começa com duas barras. Por exemplo. http://example.com .

O mesmo vale para o FTP. Por exemplo. ftp://example.com .

No entanto, os "URLs" de arquivos começam com três barras. Por exemplo. Lendo um arquivo pdf usando o chrome, o URL seria file:///D:/Desktop/Book.pdf .

Por que URLs de arquivos usam três barras?

    
por Pacerier 30.10.2011 / 15:25

3 respostas

9

Como outros já mencionaram, o esquema do arquivo está no formato "file: // < host > / < path >". Embora a maioria dos navegadores não tenha problemas com apenas duas barras, e com razão.

Como todas as coisas são iguais, a palavra-chave com barra tripla e "localhost" existe apenas para garantir a conformidade com a sintaxe válida de URI / URL. No contexto do esquema do arquivo, o host não tem sentido, pois é carregado diretamente de um sistema de arquivos sem nenhum protocolo de transferência explícito ou caminho do documento do servidor. Como não é HTTP, ele não pode ser carregado a partir de um servidor da Web padrão, onde, em teoria, você poderia ter vários hosts virtuais locais configurados. E ele não pode carregar de um volume de rede padrão que é tecnicamente outro "host", já que o navegador usa apenas o nome do volume como "file: /// volumes / foo". Por fim, tentar coisas como "file: //example.com/some/file" não funciona. Provavelmente há algum motivo para suportar um host externo, mas não consigo pensar em nenhum.

A IETF está atualmente preparando alterações para remover o requisito de barra tripla, embora o rascunho também adicione algumas possibilidades excêntricas como file:c|/path e até file://///host.example.com/path .

https://tools.ietf.org/html/draft-ietf-appsawg-file-scheme-03

"3. This specification neither defines nor forbids a mechanism for accessing non-local files."

    
por 12.09.2015 / 00:18
246

A sintaxe completa é file://host/path .

Se o host for localhost , ele poderá ser omitido, resultando em file:///path .

Veja RFC 1738 - Localizador Uniforme de Recursos (URL) :

A file URL takes the form:

file://<host>/<path>

[…]

As a special case, <host> can be the string "localhost" or the empty string; this is interpreted as 'the machine from which the URL is being interpreted'.

    
por 30.10.2011 / 15:34
25

Dennis explicou a terceira barra, necessária para separar o host do path , mas os outros dois são muito mais interessantes ...

Acontece que eles eram uma adição inútil e um tanto arbitrária à sintaxe da URL. Tim Berners-Lee, inventor da World Wide Web e autor de muitos de seus padrões (incluindo o RFC que Dennis ligado a), lamentou o uso do 'double slash' em uma entrevista em 2009.

The double slash, though a programming convention at the time, turned out to not be really necessary, Mr. Berners-Lee explained. Look at all the paper and trees, he said, that could have been saved if people had not had to write or type out those slashes on paper over the years — not to mention the human labor and time spent typing those two keystrokes countless millions of times in browser address boxes.

link

Assim, salvo um lapso menor (e não característico) na previsão, há 18 anos, o URL do seu arquivo poderia ter sido facilmente file:/D:/Desktop/Book.pdf , em vez de file:///D:/Desktop/Book.pdf .

Para responder à sua pergunta, não há um bom motivo para os URLs terem três barras.

    
por 25.09.2012 / 09:11