URIとURLの違いは何ですか?


44

私はこれらのページを読みました:

URL、URN、およびURIの基本を知っています。しかし、それらの違いはほとんどありません。私が理解できないことは、次のようなページにあります:http://www.bernzilla.com/item.php?id=100どの部分がURL、URN、URIなのか!
URIは全体ですが、URLとURNですか??

ウィキペディアからの写真

編集:
w3c.orgから:

URLは、他の属性によってではなく、プライマリアクセスメカニズム(ネットワークの「場所」など)の表現によってリソースを識別するURIの一種です。

www.damnhandy.comから:

現在、アプリケーションを記述するときにURLを使用することは正しくないと考えられています。

id属性ですか?アプリケーション部分はどうですか?PHPはアプリケーションですか?


3
この質問はStack Overflowで何度か尋ねられ、多くの注目と良い反応を得ました:URIとURLの違いは何ですか?
ヒッピートレイル

回答:


42

URI / URLベン図

URL- Uniform Resource Locator

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

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:user@example.com
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (相対URL、別のURLのコンテキストでのみ有用)

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

URN- 統一リソース名

一意の永続的な名前でリソースを識別します。通常、接頭辞で始まりますurn: 。例:

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

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

URI- ユニフォームリソース識別子

URIには、URL、URN、およびリソースを識別するその他の方法が含まれます。

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

また、ドキュメント自体ではなく、ドキュメントに関するメタデータを指す統一リソース引用(URC)もあります。URCの例は、Webページのソースコードを表示するための識別子ですview-source:http://example.com/。URCは、URLでもURNでもない別のタイプのURIです。

よくある質問

もうURLを言ってはいけないと聞いたのですが、なぜですか?

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

ブラウザは実際にURNでドキュメントを取得する方法を知っていますか?

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

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

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

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

いいえ。クエリパラメータのあるURLとないパラメータはどちらもURL(およびURI)です。

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

いいえ。フラグメント識別子のあるURLとないフラグメントURLは両方ともURL(およびURI)です。

しかし、W3CはURLとURIは同じものだと言っていないのですか?

はい。W3Cは、これについて多くの混乱があることを認識しました。彼らは、URLとURIという用語を(URIを意味するように)交換可能に使用してもよいと言っているURI明確化ドキュメントを発行しました。URIをURL、URN、URCなどの異なるタイプに厳密にセグメント化することはもはや有用ではありません。

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

URNの定義は、上記で説明したものよりも緩やかになりました。URI最新のRFCでは、urn:「名前のプロパティ」があれば、URIは(先頭がであるかどうかに関係なく)URNになることができるとされています。つまり、リソースが存在しなくなった場合や使用できなくなった場合でも、グローバルに一意で永続的です。例:などのHTML Doctypeで使用されるURI http://www.w3.org/TR/html4/strict.dtd。そのURIは、w3.org Webサイトのページが削除された場合でも、HTML4 Transitional Doctypeに名前を付け続けます。


W3Cの明確化とURL / URIの区別について混乱するのは、実際には多くのWebサーバードキュメントがURLをリクエスト文字列全体として記述し、URIを「プロトコルに従う部分」として記述していることです。さらに、変数名$ uriでその部分を参照します。例:nginx.com/blog/creating-nginx-rewrite-rules これは、W3Cの定義では厳密に「正しい」とは思われませんか?しかし、それは私が思うに最も便利です。
マイク

1
URIは広く誤解されていました。多くの人々は、URIは相対URLのようなURLの一部である、またはプロトコルに従うと考えていました。これは決して正しいことではありませんでしたが、それらのアイデアはサーバーのドキュメントやプログラミングAPIにかなり頻繁に取り入れられました。
スティーブンオステルミラー

10

これらの記事は非常によく説明していると思います。あなたの質問に答えるために- これはすべて URLです:

http://www.bernzilla.com/item.php?id=100

それの各ビット- http: www.bernzilla.comなどはそれ自身の名前を持っています:

  • http:はスキームです
  • wwwはサブドメインです
  • bernzilla.comはドメインです
  • comはトップレベルドメインまたはTLDです
  • (/dir/item.phpなどのフォルダーまたはパスがありますが、ありません)
  • item.phpは、拡張子がphpのページまたはファイル名です
  • id = 100はクエリ文字列です

ウィキペディアからその図を見て、なぜあなたが尋ねているのかを見ることができます。この図は、URLとURNの2種類のURIがあり、中央のファジービットは、両方が可能な場合を示しています。


ご回答ありがとうございます。質問を編集しました。もう一度見てもらえますか?
元に戻す

私は、アプリケーションの説明に関するその引用を理解しておらず、誰かがそれを指摘しているコメントを見ることができません。回答を更新して、個別の部分について説明します。
ポールモリス

@paul 最初の行のURIを意味しませんか?場所id=100はなく、インジケータです。
-DisgruntledGoat

私はURLを意味したと思います。一部のサイトでは、IDを変更すると、通常の言い方で異なる「ページ」が表示されます。ウィキペディアでリソースの定義を読むページはリソースの一例だと思います。
ポールモリス

7

言及したURLがURLとURNの両方の部分で構成されているわけではありません。

http://www.bernzilla.com/item.php?id=100 URLとURIの両方です。

基本的に、URIはURLとURNのスーパーセットです。URLとURNの間にもいくつかの重複があります。

URIは、場所、名前、またはその両方によってリソースを識別します。

したがって、URLはすべてURI、URNはURIですが、すべてのURIがURLとは限りません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.