Относительные URL-адреса протокола относительные URL-адреса?

так считают протокол-относительный URL вроде так;

//www.example.com/file.jpg

идея, которую я держал в голове, сколько себя помню, заключается в том, что относительные к протоколу URL-адреса на самом деле являются абсолютными URL-адресами. Они ведут себя точно так же, как абсолютные URL-адреса, и никогда не работают как относительные URL-адреса. Я бы не ожидал, что это заставит браузер найти что-то в

http://www.example.com///www.example.com/file.jpg

URL-адрес определяет хост и путь (как абсолютный URL-адрес), и схема наследуется от какая бы страница ни использовалась, и поэтому она делает полный однозначный URL, то есть абсолютный URL.

верно?

теперь, после дальнейших исследований, я наткнулся на ответ, в которой говорится;

A URL-адресом называется абсолютный URL-адрес если он начинается со схемы и схемы конкретной части (здесь // после http:). Все остальное-это относительное URL-адрес.

ни вопрос, ни ответ конкретно не обсуждают относительные к протоколу URL-адреса, поэтому я помню, что это может быть просто оплошность в формулировках.

однако теперь я также сталкиваюсь с проблемой в своей разработке, где система, которая принимает только абсолютные URL-адреса, не работает с относительными URL-адресами протокола, и я не знаю, по дизайну или из-за ошибки.

на раздел RFC3986 который часто связан с отношение к относительным URL-адресам протокола также много разбрызгивает слово "относительный". 4.3 далее говорится, что абсолютные URI определяют схему.

все это свидетельствует против моего первоначального предположения привели меня к вопросу;

относительные URL-адреса протокола относительны или абсолютны?

2 ответов


каждый относительный URL-адрес является однозначным URL-адресом, учитывая URL-адрес относительно. Поэтому, если ваша страница http://mypage.com/some/folder/ тогда вы знаете относительный URL this/that соответствует http://mypage.com/some/folder/this/that и вы знаете относительный URL //otherpage.com/ разрешает http://otherpage.com/. Важно отметить, что он не может быть разрешен без знания URL-адреса страницы, относительно которого он относится.

относительный URL - это любой относительный URL-адрес to что-то и не может быть решена сама по себе. URL-адрес aboslute не требует контекста что бы ни решить.


то, что вы называете "относительным URL-адресом протокола", WHATWG называет "относительным URL-адресом схемы" в стандартный URL document, и это не абсолютный URL, а относительный URL.

предоставлено большинство сайтов, доступных на HTTPS, показывают одно и то же содержимое на соответствующих http-адресах, что не обязательно так, и поэтому имеет смысл URL, который не включает схему, нельзя считать абсолютным.

из документа:

An абсолютный URL-адрес должен быть схемы, следовал по ":", а затем либо схема-относительный URL, если схемы это относительный схемы или схема данных в противном случае, необязательно с последующим "?"и запрос.

конкретно отвечая на ваш вопрос, мы имеем:

A относительным URL-адресом должен быть либо схема-относительный URL, an абсолютный-путь-относительный URL-адрес или путь-относительный URL-адрес это не начинается с схемы и ":", возможно, следует "?"и запрос.

в точке, где относительным URL-адресом is парсится, a базовый URL-адрес должно быть в объеме.

примеры (в скобках указан необязательно)

путь-относительный URL-адрес [path segment][/[path segment]]…

  • about
  • about/staff.html
  • about/staff.html?
  • about/staff.html?parameters

абсолютный-путь-относительный URL-адрес: /[path-relative URL]

  • /
  • /about
  • /about/staff.html
  • /about/staff.html?
  • /about/staff.html?parameters

схема-относительный URL: //[userinfo@]host[:port][absolute-path-relative URL]

  • //username:password@example.com:8888
  • //username@example.com
  • //example.com
  • //example.com/
  • //example.com/about
  • //example.com/about/staff.html
  • //example.com/about/staff.html?
  • //example.com/about/staff.html?parameters

абсолютный URL-адрес: scheme:[scheme-relative URL][?parameters]

  • https://username:password@example.com:8888
  • https://username@example.com
  • https://example.com
  • https://example.com/
  • https://example.com/about
  • https://example.com/about/staff.html
  • https://example.com/about/staff.html?
  • https://example.com/about/staff.html?parameters

относительный URL-адрес:

  • все от схема-относительный URL список
  • все от абсолютный-путь-относительный URL-адрес список
  • все от путь-относительный URL-адрес список

Примечание: этот ответ не противоречит первому ответу, но мне было только несколько ясно, что post ответил на вопрос после прочтения его несколько раз и проведения дальнейших исследований. Надеюсь, этот ответ лучше подходит для других, натыкающихся на это.