Почему HTTP:// содержит две косые черты и file:/// three в браузере?
Я хочу спросить почему http://
содержит две косые черты, это просто стандартно, чтобы сделать его URL или какой-либо логический смысл? и почему file:///
содержит три слеша?
file:///C:/a.html
2 ответа
Компонент полномочий URI должен предшествовать //
:
Компоненту авторитета предшествует двойной слеш ("//") […]
Это также, почему не все URI содержат двойную косую черту: потому что не все URI имеют компонент полномочий (например, URI, использующие mailto
схема, xmpp
схема и т. д.).
Если вы удивляетесь, почему для (HTTP) URI была выбрана двойная косая черта вместо чего-то другого (или ничего), обратитесь к часто задаваемым вопросам Тима Бернерса-Ли Почему //, # и т. Д.? → Какова история //?
tl; dr: он скопировал синтаксис имени файла, который использовал Аполлон.
Кстати, он сожалеет об этом выборе:
Я должен сказать, что теперь я сожалею о том, что синтаксис такой неуклюжий. мне бы хотелось
http://www.example.com/foo/bar/baz
быть просто написаннымhttp:com/example/foo/bar/baz
где клиент узнает, чтоwww.example.com
существовал и был сервером для связи. Но сейчас уже слишком поздно.
Как уже упоминалось в этом сообщении суперпользователя:
Полный синтаксис: file:// host /path.
Если хост является localhost, его можно опустить, что приведет к файлу file:///path.
Другими словами, ссылка на файлы на вашем компьютере аналогична ссылке на файлы в localhost.