こちらの記事は、Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) 山本 陽平 (著)の内容を読んで自分なりにわかりやすく要約したものです。
URIとは
URI (Uniform Resource Idetifier) とは、Web上でリソースを統一的に識別するIDです。Web上のデータを一意に定義する為の名前、という感じでしょうか。
URIとURL (Uniform Resource Locator) とはなにが違うの?と思う方が多いと思いますが、普段使うときは意味はほぼ同じと考えてよいです。エンジニアはあえてURIという言葉を使いますが、URLと言い換えても間違いではありません。
ではなぜ区別されているのか。正確にはURIは、URLとURNを総称する名前です。
URI=URL+URN
ということですね。
URN(Uniform Resource Name)についてはあまり聞きなじみがないと思いますので、もう少し深堀して、URL、URNについて一つずつ解説していきます。
URLとはなにか
URLは (Uniform Resource Locator) の略です。直訳すると、統一リソースの位置を示すものでしょうか。Webリソースの位置(場所)を示す情報として使われます。
わかりやすく言い換えると、「Webリソースの住所」ですね。
https://myantora.com/hogehoge/
のような文字列であらわされます。
ドメイン情報を含んでおり、ブラウザなどのクライアントからURLにアクセスすることにより、リソースを取得することができます。
URNとはなにか
URN (Uniform Resource Name)は、リソースに恒久的なIDを振るための仕組みとして考えられました。直訳すると、統一リソース名ですね。わかりやすく言い換えると「リソースの名前を示すもの」です。
ただ、URNというものはWeb上であまり聞いたことがない言葉だと思います。
URLの問題として、ドメインが変わってアクセスできなくなったり、サーバー障害などで変更されるということがあり、その問題に対応する(リソースをずっと変わらない名前で定義する)ためにURNの仕様が検討されました。
よく聞くURNの活用例としては、書籍のIDとして、ISBNがURNとして定義されています。
ISBNのURNの例
urn:isbn:1234567890123
ただしURNには、ドメインが含まれないため「Web上で取得できない」という問題と、「URLが十分永続的になっている」ということで一般的にはあまり使われてない(使う必要がない)というのが実情のようです。
要するに、URLが変更されないような仕組みを設計・構築することはエンジニアの設計努力で実現可能で、実質的にはURLにURNを含んだ状態(URI)にできる、ということです。
まとめ
URL、URN、URIについてまとめるとこのようになります。
- URLとはリソースの場所を示すものである。
- URNとはリソースの名前を示すものである。
- URLとURNを総称してURIと呼ぶ。
- URIとはリソースを識別するためのものである。
- URLにはURNが実質的に含まれるので、URIをURLと読み替えても問題ない。
なんとなく理解できたでしょうか?僕自身もあまりわかってなかったので、この記事をまとめてみて、改めて理解を深められた気がします。
ではまた!
コメント