統一資源識別子(URI)とは|定義・仕組み・URLとの違いと具体例

コンピュータでは統一資源識別子(Uniform Resource Identifier)は、インターネット上で何かに名前を付けるために使われるものです。URIは何かの名前であるため、URLと似ています。 しかし、より正確には、URIは「資源(resource)を識別するための文字列」であり、アクセス方法や位置を含むこともあれば、単にその資源を一意に識別する名前である場合もあります。

  • https://example.org/absolute/URI/with/absolute/path/to/resource.txt
  • ftp://example.org/resource.txt

ISSN1535-3613 mailto:[email protected]

基本的な定義と役割

URI(Uniform Resource Identifier)は、ウェブ上や他の情報空間で「何を指しているか」を一意に示すための識別子です。URIは次の2つを包含する上位概念です。

  • URL(Uniform Resource Locator):資源の「場所(ロケーション)」や取得方法(http、ftp など)を示し、実際にアクセスできることを意図したもの。
  • URN(Uniform Resource Name):資源の「名前」を付けることに主眼を置き、場所に依存しない恒久的な識別を目的とするもの(例:urn:isbn:0451450523)。

URIの構成要素(一般的な形式)

URIは一般的に次のような構成を取ります(RFC 3986 準拠の表記):

scheme:[//authority]path[?query][#fragment]

  • scheme:例)http, https, ftp, mailto, urn。小文字で書かれることが多く、大文字小文字は区別されない(ただし規定に依存する部分あり)。
  • authority:オプション。ユーザー情報、ホスト名、ポート番号を含む(例)user:[email protected]:8080
  • path:資源の階層的な位置を示す文字列。ケース(大文字小文字)の扱いはスキームやサーバーの設定に依存します。
  • query:オプション。?に続くパラメータ部分(検索条件や追加情報)。
  • fragment:オプション。#以下は主に文書内の特定部分を示し、通常はサーバーに送られずクライアント側で解釈されます。

相対URIと絶対URI

絶対URIはスキームを含む完全な形(例:https://example.com/path)。相対URIは現在のベースURIを基準に解決される短縮形(例:../images/pic.png)。ウェブブラウザやHTTPクライアントは、ベースURIと相対URIを組み合わせて絶対URIに解決します。

文字エンコーディングとパーセントエンコーディング

URIで使える文字には制約があり、スペースや日本語などの非ASCII文字は直接含められません。そのため、パーセントエンコーディング(%HH)を使ってエンコードします。例えばスペースは %20、円記号や非ASCII文字はUTF-8に変換してから%エンコーディングされます。クエリ部分では '+' がスペースを示すこともありますが、仕様や利用されるライブラリに注意が必要です。

URIとURL・URNの違い(まとめ)

  • URI:識別子の総称。名前(URN)や位置(URL)などを包含する概念。
  • URL:アクセス手段や場所を示す識別子。実際にリソースを取得できることを期待する場合が多い。
  • URN:場所に依存しない恒久的な名前。必ずしも直ちにアクセス可能とは限らない。

実例と注意点

  • https://example.org/absolute/URI/with/absolute/path/to/resource.txt — HTTPSスキーム、ホスト、パスを含む典型的なURLの例(上のリスト参照)。
  • ftp://example.org/resource.txt — FTPスキームの例。プロトコルが示されることで取得方法が決まる。
  • mailto:[email protected] — メールアドレスを示すURIスキーム。メールクライアントに渡されることでメール作成画面などが開かれる。
  • urn:isbn:0451450523 — URNの例。書籍の識別子として使われ、場所に依存しない名前を表す。
  • ISSNや他の識別子(例:ISSN1535-3613)は、文脈に応じてURIスキーム(urnなど)で表現されることがあるが、そのままではURLのようにアクセスできないことがある点に注意してください。

実務上のポイント

  • すべてのURIが「直接アクセス可能(dereferenceable)」とは限らない。URNなどの名前はシステム的に解決する仕組みがなければ取得できない。
  • 正規化(normalization)と一貫性:大文字小文字や末尾のスラッシュなどにより同じ資源を指すURIが複数存在する場合がある。可能であれば正規化ルールを決めて運用する。
  • セキュリティ:ユーザー入力から生成するURIは、オープンリダイレクトやパラメータ注入などの脅威を招くため検証が必要。

まとめ

URIはインターネット上の資源を識別するための重要な仕組みであり、URLやURNを包含する概念です。スキームやパス、クエリ、フラグメントなどの要素から構成され、用途に応じてエンコーディングや正規化の扱いに注意が必要です。日常的にはURLという呼び方が広く使われますが、技術的にはURIという上位概念を理解しておくとより正確に扱えます。


AlegsaOnline.com - 2020 / 2025 - License CC3