Каково определение абсолютного URL (полностью квалифицированного?)

Существует (по крайней мере) три способа ссылки на ресурс:

  • href="foo/bar.html"
  • href="/foo/bar.html"
  • href="#" onclick="location.href='http://example.com/foo/bar.html'; return false;"

Первый - это "относительный URL", без проблем. Но я видел (2) и (3) оба упоминания как "абсолютный URL". Что правильно называется "абсолютным адресом", и что такое собственное имя другого?

(Бонусные баллы за ссылки на соответствующие стандарты или другую официальную документацию.)

Ответ 1

RFC 3986 определяет унифицированные идентификаторы ресурсов.

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

  • href="foo/bar.html" - относительная ссылка, в частности ссылка относительного пути.
  • href="/foo/bar.html" - относительная ссылка с абсолютным путем
  • href="http://example.com/foo/bar.html" - абсолютный URI
  • href="//example.com/foo/bar.html" является ссылкой на сетевой путь

Относительная ссылка, которая начинается с двух косой черты, называется ссылкой на сетевой путь; такие ссылки редко используются.

Ответ 2

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

http://tools.ietf.org/html/rfc1808

Число (2) является абсолютным путем, (3) является абсолютным URL.

Ответ 3

RFC 3986 (Общий синтаксис URI) указан в разделе 4.3. Абсолютный URI - следующее правило:

absolute-URI = scheme ":" hier-part [ "?" query ]

Следовательно, # 2 не является абсолютным URI

Ответ 4

Я считаю, что (2) также является релятивным URL и (3) является абсолютным URL-адресом.

http://kb.iu.edu/data/abwp.html показывает некоторые примеры.

В http://www.wisegeek.com/what-is-an-absolute-url.htm он объясняет это следующим образом:

"Абсолютный URL-адрес дает полную информацию о местоположении. Он начинается с http://и продолжается, включая каждую деталь. Это означает, что если веб-мастеру изменилось местоположение исходного файла, абсолютная спецификация URL найдет изображение, в то время как относительная спецификация URL-адреса не будет."

Ответ 5

Мне нравится описание W3, найденное здесь:

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

Он не вызывает схему, путь или любые другие подобные понятия, но в основном просто говорит, что один и тот же ввод всегда выводит один и тот же вывод. Вы можете только сказать, что около # 3.

Я бы не слишком увлекся техническими особенностями, но # 2 по-прежнему абсолютен, если ваша вселенная - это веб-сайт. Также что-то вроде //example.com/foo/bar.html является абсолютным, если ваша вселенная является схемой. Я думаю, что слово "абсолютное" в этих случаях по-прежнему имеет смысл с точки зрения разработчика.

Ответ 6

Только определение № 3 соответствует определению абсолютного URL. 1 и 2 являются относительными URL-адресами.

Относительный URL (определенный в [RFC1808]) не содержит никакой информации о протоколе или машине, и его путь обычно относится к HTML-документу на том же компьютере, что и текущий документ. Относительные URL-адреса могут содержать относительные компоненты пути ( ".." означает родительское местоположение) и могут быть фрагментами. Источник: http://www.w3.org/TR/WD-html40-970708/htmlweb.html

URL-адрес является абсолютным URL-адресом, если его разрешение приводит к тому же выводу независимо от того, что оно разрешено относительно, и этот вывод не является сбой. Источник: http://www.w3.org/TR/url/

Ответ 7

Термин, который я слышал для # 2, является "root relative". Я считаю, что это полезное определение, поскольку его смысл ясен в формулировке и легко отличает его от # 1 и # 3.