URI、URL、URNの違いは何ですか?私はたくさんのサイト(ウィキペディアも含む)を読んだことがありますが、それはわかりません。
URI: http://www.foo.com/bar.html
URL: http://www.foo.com/bar.html
URN:bar.html
これは正しいです?
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/
以下に要約します Prateek Joshiの素晴らしい説明 。
理論:
あれは:
そして例として:
また、まだ読んでいないのであれば、 Roger Pateの答え を読むことをお勧めします。
その場所からリソースを取得する方法に関する情報が含まれています。例えば:
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:0451450523
。urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
はグローバルに一意な識別子urn:publishing:book
- 文書を本の一種として識別するXML名前空間。URNはアイデアと概念を識別できます。それらは文書の識別に限定されません。 URNがドキュメントを表すとき、それは "リゾルバ"によってURLに翻訳されることができます。その後、ドキュメントはURLからダウンロードできます。
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です。
HTMLのw3仕様では、 アンカータグのhref
に、URLだけでなくURIを含めることができると記載されています。 <a href="urn:isbn:0451450523">
のようなURNを入れることができるはずです。ブラウザはそのURNをURLに解決し、あなたに代わって本をダウンロードします。
私が知っているわけではありませんが、最近のWebブラウザはデータURIスキームを実装しています。
良い質問。私はこれが本当であると述べるウェブ上の多くの場所を見ました。私はURLとURNの両方である何かの例を見つけることができませんでした。 URNが有効なネットワークプロトコルではないurn:
で始まるため、それがどのように可能であるかわかりません。
いいえ。相対URLと絶対URLはどちらもURL(およびURI)です。
いいえ。クエリパラメータがある場合とない場合の両方のURLがURL(およびURI)です。
いいえ。フラグメント識別子のあるなしにかかわらず、両方のURLはURL(およびURI)です。
tel:
URIはURLまたはURNですか?例えばtel:1-800-555-5555
です。 urn:
で始まらず、ネットワークを介してリソースに到達するためのプロトコルがあります。それはURLでなければなりません。
はい。 W3Cは、これについてはかなりの混乱があることを認識しました。彼らは RI明確化文書 を発行しました。それは今ではURLとURIを同じ意味で使うことは問題ないと言っています。 URIを厳密にURL、URN、URCなどの異なるタイプにセグメント化することはもはや役に立ちません。
ウィキペディア による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の定義の改訂です。