【ゆーあーるあい】

URI とは?

💡 リソースの「統一識別子」、URLを包む上位概念
📌 このページのポイント
URI ― リソースを識別する統一的な仕組み URI(統一リソース識別子) URL (場所で識別) https://example.com/page ftp://files.example.com/doc mailto:info@example.com URN (名前で識別) urn:isbn:978-4-xxx urn:ietf:rfc:7230 URI = URL(どこにある?) + URN(何という名前?) ※ 実務ではURLとURIはほぼ同義で使われることが多い
URIのイメージ
ひよこ ひよこ

URIってURLと何が違うの?

ペンギン先生 ペンギン先生

URLはURIの一種。URI(識別子)はリソースを「識別」するだけ。URL(ロケータ)はリソースの「場所(どこにあるか)」まで示す。ほとんどのWebアドレス(https://...)はURLかつURIでもある。普通の会話では混用されることが多い。

ひよこ ひよこ

REST APIでよくURIって言うのはなぜ?

ペンギン先生 ペンギン先生

RESTの設計原則ではリソース(ユーザー・商品など)をURIで識別する。「/users/1」はID=1のユーザーを識別するURI。場所ではなく「何を指しているか(識別)」を強調するためURIという言葉を使う。

ひよこ ひよこ

URIの構造を教えて

ペンギン先生 ペンギン先生

「https://example.com:443/path?query=value#anchor」という構造。scheme(https)://authority(example.com:443)/path(?query)(#fragment)というパーツで構成される。「?」以降がクエリパラメータ、「#」以降がフラグメント(ページ内アンカー)。

ひよこ ひよこ

URIエンコーディングって何?

ペンギン先生 ペンギン先生

URIに使えない文字(日本語、スペース、特殊文字)を「%XX」形式に変換する処理だよ。「東京」は「%E6%9D%B1%E4%BA%AC」になる。JavaScriptではencodeURIComponent()で変換できる。エンコードしないとURLが壊れたりセキュリティホールになったりするから重要だよ。

ひよこ ひよこ

URNって何?URIやURLとは違うの?

ペンギン先生 ペンギン先生

URN(Uniform Resource Name)はリソースの「名前」を表すURIの一種。「urn:isbn:978-4-06-521950-9」のように、場所ではなく永続的な名前で識別する。URLは場所(https://...)、URNは名前。両方ともURIの下位概念なんだ。実際にはWeb上ではURLが圧倒的に多く使われていて、URNは書籍のISBNやRFCの識別など特定の分野で使われているよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
URIって出てきたら「インターネット上のリソースを識別する統一規格、URLを包む上位概念」と思えばOK!
📖 おまけ:英語の意味
「Uniform Resource Identifier」 = 統一リソース識別子
💬 RFC 3986で定義されたIETFの標準。URLとURNの上位概念として定義されており、日常会話ではURLとURIが混同されることが多い
← 用語集にもどる