Вопрос Почему URL-адреса файлов начинаются с 3 косой черты?


HTTP начинается с двух косых черт. Например. http://example.com,

То же самое касается FTP. Например. ftp://example.com,

Однако файлы «URL» начинаются с трех косой черты. Например. Чтение pdf-файла с использованием chrome, URL-адрес будет file:///D:/Desktop/Book.pdf,

Зачем есть ли в файлах URL-адреса три слэша?


172
2017-10-30 14:25


происхождения


Opera для Windows расширяет его до file://localhost/D:/Desktop/ автоматически.
Также см stackoverflow.com/q/22772897/632951 - Pacerier


ответы:


Как уже упоминалось, файловая схема находится в форме «file: // <host> / <path>». Хотя у большинства браузеров не будет проблем только с двумя косыми чертами, и это справедливо.

При прочих равных условиях ключевое слово с тройной косой чертой и «localhost» существует только для обеспечения соответствия действительному синтаксису URI / URL. В контексте файловой схемы хост бессмыслен, поскольку он загружается непосредственно из файловой системы без какого-либо явного протокола передачи или документа сервера. Поскольку это не HTTP, он не может загружаться со стандартного веб-сервера, где теоретически вы можете создать несколько локальных виртуальных хостов. И он не может загружаться из стандартного сетевого тома, что является технически другим «узлом», поскольку браузер просто использует имя тома, например «file: /// volume / foo». Наконец, попытки использования таких файлов, как «файл: //example.com/some/file», не работают. Вероятно, есть какая-то причина для поддержки внешнего хоста, но я не могу придумать.

В настоящее время IETF разрабатывает изменения, чтобы удалить требование тройной слэш, хотя проект также добавляет несколько необычных возможностей, таких как file:c|/path и даже file://///host.example.com/path,

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

3. Эта спецификация не определяет и не запрещает механизм доступа к нелокальным файлам ».


8
2017-09-11 22:18





Полный синтаксис file://host/path,

Если хост localhost, его можно опустить, в результате чего file:///path,

Видеть RFC 1738 - Единые указатели ресурсов (URL):

URL-адрес файла принимает форму:

file://<host>/<path>

[...]

В качестве особого случая, <host> может быть строкой «localhost» или пустой      строка; это интерпретируется как «машина, с которой URL-адрес      интерпретируется ".


244
2017-10-30 14:34



Прохладный, я не ожидал ответа на этот вопрос в RFC-стандарте! - Pacerier
@Pacerier Почти что-нибудь что связано с Интернетом, можно объяснить RFC (обратите внимание, что они не обязательно являются «стандартами», но могут быть приняты как таковые). - slhck
Обратите внимание, что Тим Бернерс Ли извинился за те две слэши, которые указаны в каждом URL: news.bbc.co.uk/2/hi/technology/8306631.stm - Peter
Могу ли я опустить localhost из других протоколов или работает только для file://? - Agos
Обратите внимание, что Firefox действительно не соответствует этому стандарту `file: // test / C: \` будет вести себя так же, как `file: /// C: \` и `http: /// test` будет указывать неверный URL-адрес ошибка - Earlz


Деннис объяснил третий косой черт, необходимый для разделения host из path, но два других гораздо интереснее ...

Оказывается, они были бесполезным и несколько произвольным дополнением к синтаксису URL. Тим Бернерс-Ли, изобретатель Всемирной паутины и автор многих своих стандартов (в том числе RFC к которому присоединился Деннис), посетовал свое использование «двойной косой черты» в интервью еще в 2009 году.

Г-н Бернерс-Ли объяснил, что двойная косая черта, хотя в то время была конвенцией о программировании, оказалась не очень необходимой. Посмотрите на все бумаги и деревья, сказал он, которые могли бы быть спасены, если бы людям не приходилось писать или печатать эти сляки на бумаге на протяжении многих лет - не говоря уже о человеческом труде и времени, набирающем эти два нажатия нескольких миллионов раз в адресных боксах браузера.

http://bits.blogs.nytimes.com/2009/10/12/the-webs-inventor-regrets-one-small-thing/

Таким образом, за исключением незначительного (и нехарактерного) промаха в предвидении около 18 лет назад, ваш URL-адрес файла мог бы быть легко file:/D:/Desktop/Book.pdf, скорее, чем file:///D:/Desktop/Book.pdf,

Существует, чтобы ответить на ваш вопрос, нет веской причины, по которой URL-адреса имеют 3 слэша.


25
2017-09-25 07:11



TimBL также объясняет это в своем Вопросы-Ответы - Molomby
Не говоря уже о том, что 2 байта можно сохранить, просто используя http:example.com вместо http://example.com Это может показаться не очень много, но они складываются. Google получает миллионы поисков в день. Сколько ссылок находится на странице? По меньшей мере 20. Это означает, что для миллиона запросов, если косые черты не нужны, может быть сохранена пропускная способность 20 МБ. - Cole Johnson
@ColeJohnson - Знаете ли вы, что вы тоже можете оставить часть протокола? Так http://example.com могут быть связаны с //example.com в документе, переданном через http. Это называется относительный URL-адрес протокола, все браузеры поддерживают их. - Molomby
Мне это хорошо известно, но я лично использую их только в CSS. При написании HTML я также использую протокол. Нет реальной причины. Кроме того, потому что, когда HTML5 + CSS3 впервые стал «большим» несколько лет назад, почти все сайты, на которые я смотрел, были такими. - Cole Johnson
@Molomby, Он говорит обо всех байтах, потраченных впустую, когда люди не делают относительных URL-адресов протокола. Это как> 99% населения. - Pacerier