URIとは
URI(Uniform Resource Identifier/ユニフォーム・リソース・アイデンティファイア)は、インターネット上の資源を識別する文字列の総称で、URLは場所も示すURIの一種です。電子文書や画像だけでなく、サービス、概念、名前など、識別したい対象を広く「資源」として扱えます。
URIの中心的な役割は、ある対象をほかの対象と区別して指し示すことです。そのURIから実際にデータを取得できるか、物理的な保存場所を直接表すかは、URIの種類や使い方によって異なります。
総称URI資源を識別する文字列
位置やアクセス方法も示すURLhttps://example.jp/guide/
永続的な名前として使うURNurn:isbn:978...
「識別する」とはどういうことか
識別子は、対象そのものを文字列の中へ保存するものではありません。決められた範囲で、ほかの対象と区別して参照できるようにします。図書館の蔵書番号が本そのものではないのと同じです。
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
スキームが解釈方法を決める
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」