Quelle est la définition d'une URL absolue (entièrement qualifiée?)

il y a (au moins) trois façons d'établir un lien avec une ressource:

  1. href="foo/bar.html"
  2. href="/foo/bar.html"
  3. href="http://example.com/foo/bar.html"

La première est une "url relative", pas de problème. Mais j'ai vu (2) et (3) Tous les deux désignés comme une "url absolue". Qui est correctement appelé un "url absolue", et quel est le véritable nom de l'autre?

(points Bonus pour les références aux normes pertinentes ou à d'autres documents officiels.)

18
demandé sur Scott Stafford 2013-07-01 18:25:31

8 réponses

RFC 3986 définit les identificateurs de ressources Uniformes.

Une référence relative, qui commence par un caractère barre oblique est

appelé référence de chemin absolu. Une référence relative qui fait

ne pas commencer par un caractère slash est appelé une référence de chemin relatif.

  1. href="foo/bar.html" est une référence relative, spécifiquement un trajectoire relative référence.
  2. href="/foo/bar.html" est un référence relative avec un chemin absolu
  3. href="http://example.com/foo/bar.html" est un URI absolu
  4. href="//example.com/foo/bar.html" est un référence de chemin de réseau

une référence relative qui commence par deux caractères de barre oblique est appelée référence de chemin de réseau; de telles références sont rarement utilisées.

31
répondu Jacob Krall 2013-07-01 22:59:57

" les URL absolues contiennent une grande quantité d'informations qui peuvent déjà être connues dans le contexte de la récupération du document de base, y compris le schéma, l'emplacement du réseau et certaines parties du chemin de L'URL."

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

Le nombre (2) est un chemin absolu, le (3) est une URL absolue.

4
répondu Lorenzo Marcon 2013-07-01 14:34:56

RFC 3986 ( URI Generic syntaxe) spécifie dans la section 4.3. Absolute URI la règle suivante:

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

par conséquent, #2 n'est pas un URI absolu

1
répondu Mormegil 2013-07-01 14:33:57

je crois que (2) est également un relateive URL et (3) est une URL absolue.

http://kb.iu.edu/data/abwp.html en montre quelques exemples.

http://www.wisegeek.com/what-is-an-absolute-url.htm, il l'explique comme ceci:

"Une URL absolue donne toutes les informations de localisation. Il commence par http: / / et continue, en incluant tous les détails. Cela signifie que si le webmaster devait changer l'emplacement du fichier original, un la spécification absolue de L'URL permettrait de trouver l'image, alors que la spécification relative de l'URL ne le ferait pas."

1
répondu Brian 2013-07-01 14:33:59

j'aime le W3 description ici:

une URL est une URL absolue si sa résolution aboutit à la même sortie indépendamment de ce qu'elle est réglée par rapport à, et que la sortie n'est pas échec.

il ne fait pas apparaître scheme, path, ou tout autre concept de ce genre, mais il dit simplement que la même entrée apporte toujours la même sortie. On ne peut dire ça que du #3.

je ne serais pas trop surpris par le technicité cependant - #2 est encore absolue si votre univers est le site web. Aussi quelque chose comme //example.com/foo/bar.html est absolue si votre univers est le régime. Je pense que le mot "absolu" dans ces cas est encore significatif du point de vue du développeur.

1
répondu Joe Enos 2013-07-01 14:39:41

seul le #3 correspond à la définition d'URL absolue. 1 et 2 sont des URLs relatives.

une URL relative (définie dans [RFC1808]) ne contient aucun protocole ou information machine, et son chemin se réfère généralement à un document HTML sur la même machine que le document courant. Les URLs relatives peuvent contenir des composants relatifs de chemin (".."signifie l'emplacement parent) et peut être des URLs de fragment. Source:http://www.w3.org/TR/WD-html40-970708/htmlweb.html

une URL est une URL absolue si la résolution résulte dans la même sortie indépendamment de ce qu'il est résolu par rapport à, et cette sortie n'est pas un échec. Source:http://www.w3.org/TR/url/

1
répondu Olivia 2013-07-01 14:41:06

le terme que j'ai entendu pour #2 est "parent racine". Je crois qu'il s'agit d'une définition utile, car sa signification est claire dans le libellé et la distingue facilement des numéros 1 et 3.

1
répondu Alan Coughlin 2015-11-15 00:33:06

le Soutien d'autres réponses avec quelques autres exemples visuels.

https://datacash.custhelp.com/app/answers/detail/a_id/1067/~/fully-qualified-url

une URL entièrement qualifiée contient le http:// (ou https://www). Si L'URL n'est que votre domaine, le / suivant doit également être fourni.

ces URLs sont pleinement qualifiées:

http://www.datacash.com/
https://www.datacash.com/
http://datacash.com/
https://datacash.com/
http://www.datacash.com/Transaction.html
https://www.datacash.com/Transaction.html
http://datacash.com/Transaction.html
https://datacash.com/Transaction.html

ces URLS ne sont pas entièrement qualifiés:

datacash.com
datacash.com/
datacash.com/Transaction.html
www.datacash.com
www.datacash.com/
www.datacash.com/Transaction.html
http://datacash.com
https://datacash.com
http://www.datacash.com
https://www.datacash.com
0
répondu theUtherSide 2018-05-18 20:55:12