web-dev-qa-db-ja.com

絶対URLの定義は何ですか(完全修飾?)

リソースにリンクするには、(少なくとも)3つの方法があります。

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

1つ目は「相対URL」です。問題ありません。しかし、私は(2)と(3)の両方が「絶対URL」と呼ばれているのを見てきました。どちらが正しく「絶対URL」と呼ばれ、もう一方の正しい名前は何ですか?

(関連する規格またはその他の公式文書を参照するためのボーナスポイント。)

21
Scott Stafford

RFC 3986 はUniform ResourceIdentifiersを定義します。

単一のスラッシュ文字で始まる相対参照は次のとおりです。
絶対パス参照と呼ばれます。する相対参照
スラッシュ文字で始まらないものは、相対パス参照と呼ばれます。

  1. href="foo/bar.html"は相対参照、具体的には相対パス参照です。
  2. href="/foo/bar.html"相対参照であり、 絶対パス
  3. href="http://example.com/foo/bar.html"絶対URI
  4. href="//example.com/foo/bar.html"ネットワークパス参照です

2つのスラッシュ文字で始まる相対参照は、ネットワークパス参照と呼ばれます。このような参照はめったに使用されません。

33
Jacob Krall

「絶対URLには、スキーム、ネットワークの場所、URLパスの一部など、ベースドキュメントの取得のコンテキストからすでにわかっている可能性のある大量の情報が含まれています。」

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

番号(2)は絶対パス、(3)は絶対URLです。

4
Lorenzo Marcon

私は見つけたW3の説明が好きです ここ

URLを解決すると、それが何に関連して解決されたかに関係なく同じ出力が得られ、その出力が失敗ではない場合、URLは絶対URLです。

スキーム、パス、またはそのような他の概念は表示されませんが、基本的には、同じ入力が常に同じ出力をもたらすと言っています。 #3についてしか言えません。

しかし、私は技術にあまり夢中にならないでしょう-あなたの宇宙がウェブサイトであるならば、#2はまだ絶対です。また、あなたの宇宙が計画であるならば、//example.com/foo/bar.htmlのようなものは絶対です。そのような場合の「絶対」という言葉は、開発者の観点からはまだ意味があると思います。

2
Joe Enos

絶対URLの定義に適合するのは#3だけです。 1と2は相対URLです。

相対URL([RFC1808]で定義)にはプロトコルまたはマシン情報が含まれていません。そのパスは通常、現在のドキュメントと同じマシン上のHTMLドキュメントを参照します。相対URLには、相対パスコンポーネント(「..」は親の場所を意味します)が含まれる場合があり、フラグメントURLの場合もあります。出典: http://www.w3.org/TR/WD-html40-970708/htmlweb.html

URLを解決すると、それが何に関連して解決されたかに関係なく同じ出力が得られ、その出力が失敗ではない場合、URLは絶対URLです。出典: http://www.w3.org/TR/url/

2
Olivia

RFC 3986URI Generic Syntax)は、セクション4.3で指定します。絶対URI次のルール:

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

したがって、#2は絶対URIではありません

1
Mormegil

(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指定はしません。」

1
Brian

私が#2で聞いた用語は、「ルート相対」です。これは、その意味が文言で明確であり、#1および#3と容易に区別できるため、有用な定義であると思います。

1
Alan Coughlin

いくつかのさらなる視覚的な例で他の答えをサポートします。

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

完全修飾URLには、http://(または https:// www )が含まれます。 URLがドメインだけの場合は、末尾の/も指定する必要があります。

これらのURLは完全修飾されています:

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

これらのURLは完全修飾されていません:

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
theUtherSide