Относительные 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 ответил на вопрос после прочтения его несколько раз и проведения дальнейших исследований. Надеюсь, этот ответ лучше подходит для других, натыкающихся на это.