web-dev-qa-db-ja.com

URI、URL、URNの違いは何ですか?

URI、URL、URNの違いは何ですか?私はたくさんのサイト(ウィキペディアも含む)を読んだことがありますが、それはわかりません。

URI: http://www.foo.com/bar.html
URL: http://www.foo.com/bar.html
URN:bar.html

これは正しいです?

238
thom

Uniform Resource Identifier(URI)は、インターネット上の名前またはリソースを識別するために使用される文字列です。

URIは、場所、名前、またはその両方によってリソースを識別します。 URIにはURLとURNとして知られる2つの特殊化があります

Uniform Resource Locator(URL)は、識別されたリソースが利用可能な場所とそれを取得するためのメカニズムを指定するUniform Resource Identifier(URI)のサブセットです。 URLは、リソースを取得する方法を定義します。 HTTP URL(http://)である必要はなく、URLは(ftp://)または(smb://)でもかまいません。

Uniform Resource Name(URN)は、URNスキームを使用するUniform Resource Identifier(URI)であり、は識別されたリソースの可用性を意味しません。 URN(名前)とURL(ロケーター)はどちらもURIであり、特定のURIは同時に名前とロケーターの両方になることがあります。

URNは、URN、URC、およびURLで構成されている、より大きなインターネット情報アーキテクチャの一部です。

bar.htmlはURNではありません。 URLは住所のようなものですが、URNは人の名前に似ています。 URNは何かの身元を定義し、URLは場所を提供します。本質的には、「何」対「どこ」。 URNは<URN> ::= "urn:" <NID> ":" <NSS>の形式でなければなりません。ここで<NID>は名前空間識別子、<NSS>は名前空間固有の文字列です。

言い換えると、

  • URLはリソースを識別するURIであり、リソースへのアクセス方法を記述することによってリソースを見つける手段も提供します。
  • URLはURIです
  • URIは必ずしもURLではありません

100%明確にするために残された唯一のことは、URLではないURIの例を持つことになるでしょう。 RFC3986 の例を使うことができます。

URL: ftp://ftp.is.co.za/rfc/rfc1808.txt
URL: http://www.ietf.org/rfc/rfc2396.txt
URL: ldap://[2001:db8::7]/c=GB?objectClass?one
URL: mailto:[email protected]
URL: news:comp.infosystems.www.servers.unix
URL: telnet://192.0.2.16:80/
URN (not URL): urn:oasis:names:specification:docbook:dtd:xml:4.1.2
URN (not URL): tel:+1-816-555-1212 (?)

また、これをチェックしてください - https://quintupledev.wordpress.com/2016/02/29/difference-between-uri-url-and-urn/

301
ayush

以下に要約します Prateek Joshiの素晴らしい説明

理論:

  • URI(Uniform Resource Identifier)はリソース(テキスト文書、画像ファイルなど)を識別します
  • URL(Uniform Resource Locator)は、ネットワークロケーションを含むURIのサブセットです。
  • URN(Uniform Resource Name)は、特定のスペース内に名前を含み、場所を含まないURIのサブセットです。

あれは:

enter image description here

そして例として:

enter image description here

また、まだ読んでいないのであれば、 Roger Pateの答え を読むことをお勧めします。

102
Gustavo Mori

URL - niform Resource Locator

その場所からリソースを取得する方法に関する情報が含まれています。例えば:

  • http://example.com/mypage.html
  • ftp://example.com/download.Zip
  • mailto:[email protected]
  • file:///home/user/file.txt
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html(相対URL、別のURLのコンテキストでのみ有用)

URLは常にプロトコル(http)で始まり、通常はネットワークホスト名(example.com)やドキュメントパス(/foo/mypage.html)などの情報が含まれています。 URLには、クエリパラメータとフラグメント識別子があります。

URN - 統一リソース名

リソースを名前で識別します。常に接頭辞urn:で始まります。次に例を示します。

  • ISBN番号で本を識別するurn:isbn:0451450523
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66はグローバルに一意な識別子
  • urn:publishing:book - 文書を本の一種として識別するXML名前空間。

URNはアイデアと概念を識別できます。それらは文書の識別に限定されません。 URNがドキュメントを表すとき、それは "リゾルバ"によってURLに翻訳されることができます。その後、ドキュメントはURLからダウンロードできます。

URI - niform Resource Identifier

URIは、URL、URN、およびリソースを示すその他の方法の両方を網羅しています。

URLでもURNでもないURIの例は、data:,Hello%20Worldのような データURI です。 URIにデータが含まれているため、URLでもURNでもありません。名前を付けたり、ネットワーク上で検索する方法を教えたりすることもありません。

文書自体ではなく、文書に関するメタデータを指すUniform Resource Citation(URC)もあります。 URCの例としては、Webページのソースコードを表示するためのインジケーターがあります:view-source:http://example.com/。 URCは、URLでもURNでもない別のタイプのURIです。

よくある質問

私はもうURLを言うべきでないと聞きました、なぜですか?

HTMLのw3仕様では、 アンカータグのhref に、URLだけでなくURIを含めることができると記載されています。 <a href="urn:isbn:0451450523">のようなURNを入れることができるはずです。ブラウザはそのURNをURLに解決し、あなたに代わって本をダウンロードします。

URNによる文書の取得方法を実際に知っているブラウザはありますか?

私が知っているわけではありませんが、最近のWebブラウザはデータURIスキームを実装しています。

URIをURLとURNの両方にすることはできますか?

良い質問。私はこれが本当であると述べるウェブ上の多くの場所を見ました。私はURLとURNの両方である何かの例を見つけることができませんでした。 URNが有効なネットワークプロトコルではないurn:で始まるため、それがどのように可能であるかわかりません。

URLとURIの違いは、それが相対的なものか絶対的なものかに関係がありますか?

いいえ。相対URLと絶対URLはどちらもURL(およびURI)です。

URLとURIの違いは、クエリパラメータがあるかどうかと関係がありますか?

いいえ。クエリパラメータがある場合とない場合の両方のURLがURL(およびURI)です。

URLとURIの違いは、フラグメント識別子があるかどうかと関係がありますか?

いいえ。フラグメント識別子のあるなしにかかわらず、両方のURLはURL(およびURI)です。

tel: URIはURLまたはURNですか?

例えばtel:1-800-555-5555です。 urn:で始まらず、ネットワークを介してリソースに到達するためのプロトコルがあります。それはURLでなければなりません。

しかし、w3Cは現在URLとURIは同じものであると言っていませんか?

はい。 W3Cは、これについてはかなりの混乱があることを認識しました。彼らは RI明確化文書 を発行しました。それは今ではURLとURIを同じ意味で使うことは問題ないと言っています。 URIを厳密にURL、URN、URCなどの異なるタイプにセグメント化することはもはや役に立ちません。

48

ウィキペディア によるURI(Uniform Resource Identifier):

リソースを識別するために使用される文字列。

URL(Uniform Resource Locator) は、リソースとの対話メカニズムを意味するURIです。例えば、 https://www.google.com は、対話メカニズムとしてHTTPの使用を指定します。すべてのURIが対話固有の情報を伝える必要があるわけではありません。

URN(Uniform Resource Name) は、その方式としてurnを持つURIの特定の形式です。 URIの一般形式の詳細については、 https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax を参照してください。

IRI(International Resource Identifier) は、URIの国際文字を使用できるようにするURIの定義の改訂です。

2
gst