用語辞典・インターネット全般

URI

URIとは

URI(Uniform Resource Identifier/ユニフォーム・リソース・アイデンティファイア)は、インターネット上の資源を識別する文字列の総称で、URLは場所も示すURIの一種です。電子文書や画像だけでなく、サービス、概念、名前など、識別したい対象を広く「資源」として扱えます。

URIの中心的な役割は、ある対象をほかの対象と区別して指し示すことです。そのURIから実際にデータを取得できるか、物理的な保存場所を直接表すかは、URIの種類や使い方によって異なります。

用語の包含関係URIは識別子の総称、URLはその中の位置付け

総称URI資源を識別する文字列

位置やアクセス方法も示すURLhttps://example.jp/guide/

永続的な名前として使うURNurn:isbn:978...

重なる性質を持つ場合もある
図1RFC 3986では、URIはロケーター、名前、またはその両方として分類できます。URLは資源を識別するだけでなく、主なアクセス方法によって場所を特定できるURIの部分集合です。

「識別する」とはどういうことか

識別子は、対象そのものを文字列の中へ保存するものではありません。決められた範囲で、ほかの対象と区別して参照できるようにします。図書館の蔵書番号が本そのものではないのと同じです。

URIが指す「資源」は、現在取得できるファイルだけに限られません。今日の天気という情報源、組織、人物、抽象的な概念なども、規則を決めてURIで識別できます。そのため、URIを「ネット上に実在するファイルの住所」だけだと考えると範囲を狭くし過ぎます。

URLとURNとの関係

URI
資源を識別する文字列の総称です。https:urn:mailto:など、先頭のスキームに応じて後ろの意味が決まります。
URL
URIのうち、資源を識別するとともに、主なアクセス方法やネットワーク上の位置によって資源を見つける手段を示すものです。
URN
urn:isbn:のように、場所が変わっても対象を識別し続ける名前として設計されたURIです。名前だけで内容を直接取得できるとは限りません。

「URLかURNか」を文字列の見た目だけで完全に二分できるとは限りません。RFC 3986は、URIがロケーター、名前、または両方の性質を持ち得ると説明しています。実務ではWebのアドレスをURLと呼ぶことが多く、一般利用でURIという語を意識しない場面もあります。

URIの共通構造

共通構文スキームごとの違いを包む大きな形式
scheme://authority/path?query#fragment

WebのURLhttps://example.jp/docs/?lang=ja#intro

メール宛先mailto:info@example.jp

ISBNのURNurn:isbn:9780307476463

図2共通構文に存在する部分を、すべてのURIが持つわけではありません。各スキームの仕様が、コロン以降の形式や意味をさらに定めます。

スキームが解釈方法を決める

URIの最初にあるhttps:mailto:などをスキームと呼びます。スキームは単なる分類ラベルではなく、後ろの文字列をどの規則で解釈し、どのアプリや処理へ渡すかを決める手掛かりです。

https:ならブラウザがWeb資源への接続として扱い、mailto:ならメール作成画面を開く処理へ渡すことがあります。ただし、対応するアプリが端末にない、利用者が許可しないなどの理由で処理できない場合もあります。

URI参照と相対参照

文書中では、完全なURIだけでなく、../images/map.png#chapter-2のような相対形式も使います。RFC 3986では、完全なURIと相対参照を合わせた概念をURI参照として扱います。

相対参照は単独では完全な接続先を決められません。文書の基準URIと組み合わせて解決します。同じ文字列でも基準が違えば別のURIになるため、コピー先や公開階層を変えるとリンク切れが起きる場合があります。

「URLはURIの一種」をどう使うか

仕様を説明する文脈では、識別子全体を指すURIと、その中で位置やアクセス手段を示すURLを分けると正確です。一方、ブラウザのアドレス欄や日常会話でhttps://...を示すならURLと呼んで問題ありません。

用語の上位・下位関係を覚える目的は、言い間違いを責めるためではありません。識別できることその場で取得できることが同じではない、と理解するために役立ちます。

仕様の確認資料:RFC 3986「Uniform Resource Identifier (URI): Generic Syntax」

関連用語