URI(URL)とは|絶対URLと相対URL
- 著者:YAMANJO
- 公開日:2008年7月27日
- 最終更新日:2025年4月23日
URLとURIの違い、絶対URLと相対URLの概念と記述方法について学習していきましょう。
URLとは
HTMLファイルは、ウェブサーバに保存されて公開することでウェブページとして閲覧できるようになります。しかし、インターネット上にウェブサーバは無数に存在しており、アクセスするにはその位置情報が必要になります。
前項で学習のとおり、インターネットにおける住所表記に当たるものが「URL(ユーアールエル)」になります。URLは「Uniform Resource Locator」の略で、インターネット上の「Resource(リソース)」の位置を示します。
URLは、一般的にウェブサイトのアドレスを示す用途で用いられることが多いですが「Resource」は資源を意味し、HTMLファイルだけでなく、埋め込まれた画像や動画など、ウェブを構成するファイル全体を含みます。
したがって、
URLはインターネット上のあらゆるファイルの位置(場所)を示す
方法になります。
ファイルには、HTMLファイルにリンクとして埋め込まれた画像や動画ファイル、HTMLのレイアウト情報だけを別にまとめたCSSファイル、JavaScriptなどのプログラミング言語で処理を記述したプログラムファイルなど様々あります。(CSSは SGML・XML・XHTMLとは 、JavaScriptは Java・JavaScriptとは で詳しく学習します)
つまり、URLでインターネット上のあらゆるファイルの位置を指定することが可能です。詳しくは後述しますが、ウェブサーバのURLは「http://www.yamanjo.net」までで指定されており、最終的にファイル名まで指定することができます。
例えば「http://www.yamanjo.net/sample.jpg」とすると、「yamanjo.net」というドメインが設定されたサーバのルートフォルダにある「sample.jpg」という画像ファイルが指定されます。そのため、サーバに保存可能なファイルであれば、拡張子によってあらゆるファイルを指定することができます。(拡張子について詳しくは、拡張子とは を参照してください)
このように、インターネットではURLだけでファイルの位置を識別可能ということになります。
ただし、
URLで識別されるのは位置(場所)だけ
になります。
どこのサーバのどのフォルダにどのファイルがあるという位置が識別できるだけです。
そのため、URLでわかるのは「どこにあるか」だけであり、いくら拡張子を指定しても、それが実際になんのファイルなのか中身までは示すことができません。URLが指定した位置に指定したファイル名があれば、そのファイルを取得できるというだけです。そこにファイルが存在していれば取得でき、なければエラーになります。
とは言え、URLはファイルの位置を特定することで、ともなってHTTPなどのアクセス手段を提供します。例えば「http:」であればHTTPによる通信、「https:」や「ftp:」などのように他のプロトコルを指定することができます。
こうして、実質的にファイル取得(ウェブサーバなどからのファイル転送)をともなうため、URLは位置情報の提示だけにとどまらず、ファイル取得の手段となっています。
URIとは
では、ファイルの中身まで識別する方法があるのかというと、これはURLと分けて考える必要があります。
先述のとおり、そもそもURLはインターネット上の「位置」を識別する情報(識別子という)で、結果としてファイル取得の手段になっていますが、URL自体にファイルの中身を細かく指定して転送するような機能はありません。
そのため、URLとは別の識別子を利用することになりますが、現在のところ、識別子として利用されているのは「位置」のURLと「名前」の識別子だけになります。
名前とは「ファイル名」のことではありません。その名前だけで一意に特定できる識別情報になります。URLのように重複しない世界で唯一の「名前」になります。
こうした名前の識別子を、
URN(ユーアールエヌ)
と言います。
URNは「Uniform Resource Name」の略で、リソースの名前を示します。具体的には、書籍の国際標準図書番号(ISBN)、論文・研究データなどの識別子(DOI)、音楽の著作権管理コード(ISRC、ISWCなど)です。
つまり、インターネット上にあるなしを問いません。世界中のどこにあっても名前だけで一意に特定できる識別子がURNであり、どこにあるかという位置情報は関係ないのです。
そのため、URLであれば位置だけを特定できるファイル、URNであれば名前だけを特定できるファイルというのが本来の意味になります。ファイルの中身まで規定するものではありません。
URNがインターネットで扱われる場合は、ファイル名とは別にHTMLファイルのヘッダ領域などに記述されることが多くなっています。「urn:isbn:111-2222-333」のように表現します。こうした情報はブラウザでは表示されませんが、検索エンジンや機械的処理には利用されることがあります。
このURNとURLを合わせた概念が、
URI(ユーアールアイ)
になります。
前項でも少し触れましたが、URIは「Uniform Resource Identifier」の略で、「Uniform(統一)」されたリソースの「Identifier(識別子)」という意味になります。身分証明などに使われる「ID」は「Identifier」から派生しています。
下図のとおり、URNとURLを含み、名前と位置の識別を合わせて、リソースを一意に識別するための統一的な枠組みにしたわけです。URNの意味でもURLの意味でもURIで表現することができます。

URNとURLの2つだけなので、使い分ければいいように思えますが、識別情報をURIに統一することで、技術的な場面では大きなメリットがあります。
例えば、異なるシステムがURLとURNを扱う場合、それぞれのルールや形式を守らなければならず、システム間でのやり取りが複雑になります。URIに統一することでやり取りが容易になるのです。また、将来的に新しいリソース識別方法が登場しても内部で追加するだけで、URIのまま使い続けることができます。
そのため、URIという呼び方はウェブ関係の仕様書や解説書などでよく利用さています。一般的によく使うのはURLとURIですが、どちらを使っても問題ありません。
ではなぜ、URIはURNとURLの2つだけで、中身を識別する概念がないのかというと、そもそもURIの設計がリソースの中身ではなく、リソースを参照する方法や名前に焦点を当てているからです。
ウェブページの場合、HTMLファイルの中身は更新による修正をともなうことが多く、同じURNやURLでも内容が変わるため、中身ベースの識別は適していません。つまり、中身で識別するのは「変わらない情報」に向いているということです。また、URIが設計された1990年代はセキュリティに対する意識も低かったため、中身の一意性は重要視されていませんでした。
しかし、現在ではセキュリティの意識が高くなり、ファイルの中身が変わっていないことを証明する用途で、中身の識別をURI以外の方法で求めています。
例えば、有名なビットコインで発案されたブロックチェーンという技術に用いられるハッシュ値などがありますが、少々難解なので、本項では割愛します。(ブロックチェーンとハッシュ値については、Web3.0とは で詳しく学習します)
絶対URL
このように、URLは位置だけを特定する識別子ですが、実質的にそのファイルの取得までがセットになっています。そのため、URLを打ち込むだけでブラウザがHTMLファイルを取得して、ウェブページとして表示します。
URLは多くの方が打ち込んだ経験があると思いますが、その中でウェブサーバの位置を特定し、そのサーバのどのフォルダにある何のファイルなのかまで表現しています。
下図は、このページのアドレスになります。それぞれの文字列が何を意味しているのかを理解していきましょう。

「http:」から始まる記述はもうお馴染みかもしれませんが、ここで通信プロトコルをHTTPに指定しています。前項で学習のとおり、現在では「https:」が主流になっており「https:」と記述した場合は、プロトコルをHTTPSに指定したことになります。
本来URLは識別子に過ぎませんが、実質的にファイル取得を目的としているため、プロトコルを指定しなければ通信することができません。URLが識別する位置情報までのアクセス手段を指定しなければ意味をなさないからです。
そのため、まず最初にプロトコルを指定します。この部分の記述を「スキーム」と言います。正式には「URIスキーム」ですが、単にスキームと呼ばれることが多いです。
すでに「HTTP」と「HTTPS」があるように、スキームではその他のプロトコルを指定することもできます。WWWでの使用が一般的なため「http:」か「https:」しか見たことがないかもしれませんが、「ftp:」や「mailto:」などを指定することもできます。
スキームは「//」で区切られ、その後に「www.」が指定されています。この部分は「サブドメイン」と呼ばれる記述になりますが、先にドメインを理解しておく必要があるので後回しにします。
直後に続く「yamanjo.net」の部分が「ドメイン」になります。ドメインについては、ドメインとDNS で詳しく学習しますが、簡単に言えば、サーバを特定するための識別子です。
ここで言うサーバはウェブサーバに限りません。HTTPやFTP、SMTP、POPといった様々なアプリケーション層のプロトコルは、それぞれ対応するサーバと通信を行います。つまり、ウェブサーバ、FTPサーバ、メールサーバといった役割に応じたサーバコンピュータが存在します。
しかし、一般的には1台のサーバコンピュータで、ウェブサーバ、FTPサーバ、メールサーバなど複数のサーバ(プログラム)が稼働しているケースが多く、こうした複合的な役割を担う1つのサーバを特定するための識別子になります。逆に言えば、役割によって物理的にサーバが異なる場合はドメインも変わります。
したがって、ドメインは重複しない文字列である必要があります。「yamanjo.net」は世界でただ1つのドメインで、重複して取得することはできません。メールアドレスの取得で、すでに文字列が使用されていてアドレスが取得できなかった経験があるのではないでしょうか。 メールアドレスもURLも、サーバが同じであればドメイン部分は同じになります。
ドメインは公的な組織によって、ドメイン名とサーバが紐づけられて管理されています。これにより、ドメイン名のみでサーバを特定することができます。(厳密に言えば、サーバを特定するIPアドレスとドメインを紐づけています)
通常、ドメイン名の一部は契約したプロバイダから任意に割り当てられますが、最近では、覚えやすい好みのドメインを習得する「独自ドメイン」を購入して、自分のウェブサイトやメールアドレスに使用するケースも増えています。
では、後回しにした「サブドメイン」とは何かというと、ドメインの所有者が自由に作成できる識別子になります。具体的に言えば、既存のドメインに文字列を追加して、新しいURLを作成することができます。
例えばYahoo!JAPANのウェブサイトでは、本サイトが「https://www.yahoo.co.jp」、ニュースが「https://news.yahoo.co.jp」、オークションが「https://auctions.yahoo.co.jp」のようにサブドメインを分けています。
サブドメインを作成するメリットは、本ドメインのメインサイトから派生した別のサブサイトを作成したい場合などに、新たにドメインを取得することなく関連性を保ちつつ、別サイト(別アドレス)にすることができます。例えば、サポートページを別にしたり、異なるブランドの別サイトを作成するなど、様々な用途でサブドメインが使われています。
ひと昔前までは「www.」がウェブサーバ、「ftp.」がFTPサーバ、「smtp.」や「pop.」がメールサーバのように、サーバ内の役割に対応させることが一般的でしたが、現在では運用者が任意の名前で意味付けも自由に行っており、実際のサーバ構成と一致しないことも多くなっています。
では、「www.」がある場合とない場合では別サイトになるのかというと、そうでもありません。おかげで理解が難しくなるのですが、昔の仕組みでは、サブドメインの記述がないとウェブサーバに到達できないことがあったために、URLにウェブサーバを指定する目的で「www.」のサブドメインが使われていました。
ところが、近年では技術的にこれが不要になり「www.」を省略するURLが多くなっています。「https://yamanjo.net」でも「https://www.yamanjo.net」でも当サイトにアクセスすることができます。したがって、当サイトの場合はどちらも同じサイトになります。
これは、管理者である私が「yamanjo.net」というドメインを取得し、当サイトを作成した時に「http://www.yamanjo.net」をURLに指定したために、サブドメインが作成されたからです。ドメイン取得サービスでは、最初から「www.」のサブドメインが自動で設定されているケースも多く、一般的に「www.」のサブドメインが利用可能になっています。
つまり、意図して分離しない限り「www.」のサブドメインについては、異なるURLであっても基本的にはどちらかのアドレスに一本化して振り替えられるように設定されています。
以上がサブドメインとドメイン部分になります。ドメインによってサーバの位置が特定されると、次はサーバ内部のパスを指定します。
パス部の記述については、絶対パスと相対パス で学習したOSのフォルダパスの記述方法と同じです。スラッシュでフォルダの階層を区切ってファイル名まで指定します。
以上がURLの構造になります。さらにポート番号やパラメータという条件などを指定する記述を追加する場合もありますが、本項での学習はここまでに留めます。
フォルダパスと同様に、スキームからファイル名までのすべて記述する方法を、
絶対URL(絶対URI)
と言います。
絶対URLは、目的のウェブサイトにまず到達するために必要なURLになります。
相対URL
たいていのウェブサイトでは、そのサイト内のページへのリンクを設定しており、トップページから様々なページへリンクできるようになっています。
ハイパーリンクはハイパーテキストのもっとも代表的な機能で、URLを文字列や画像に埋め込み、クリックするとそのURLにジャンプできる機能です。
こうしたサイト内リンクの場合、絶対URLで記述するとかなり長いアドレスになってしまいます。また、ページ内に埋め込む画像などのURLも絶対URLで記述すると、記述量が増えてHTMLファイルのサイズが大きくなりやすく、転送効率が下がる可能性があります。
そのため、サイト内のリンクについては、
相対URL(相対URI)
で記述する方法が一般的です。
相対パスと同様に、あるファイルやフォルダを起点として目的のファイルやフォルダまでのルートを示す記述方法です。
例えば、トップページからこのページへのリンクを絶対URLで記述すると「https://www.yamanjo.net/knowledge/internet/internet_09.html」となりますが、相対URLでは「knowledge/internet/internet_09.html」になります。
相対URLの記述方法は、相対パスとまったく同じです。詳しくは、絶対パスと相対パス を参照してください。
ただし、相対パスと相対URLに書き方の違いはありませんが、そもそもパスとURLは異なる概念になるので、混同しないように整理しておきましょう。パスはディレクトリ構造の中でファイルの位置を示すものであり、インターネット上でファイルの位置を示すURLとは似て非なるものです。
パスにはスキームやパラメータを含むことができず、URLではパス以外の情報も記述することができるという違いがあります。そのため、厳密には相対パスと相対URLも異なる性質を持ちます。パス部の書き方が同じというだけです。
その他の違いとして、
絶対URLではファイル名を省略することができる
ようになっています。
例えば「https://www.yamanjo.net」や「https://www.yahoo.co.jp」などのように、サイトのトップページのURLはファイル名を省略している場合がほとんどです。
これは、ファイルを保存しているウェブサーバのデフォルト値(初期設定値)が適用されるためです。一般的には「index.html」というファイルが指定されます。(「default.html」などの場合もあります)
つまり、ファイル名を省略して絶対URIを記述した場合は「http://www.yamanjo.net/index.html」が自動的に指定されることになります。したがって、「index.html」というファイル名でトップページが作成されています。
同様に「https://www.yamanjo.net/index.html」や「https://www.yahoo.co.jp/index.html」とブラウザに入力してもトップページを開くことができます。
また、最後にスラッシュ「/」を付けると、そのフォルダの「index.html」をが参照されます。そのため「https://www.yamanjo.net/」としても同じトップページを開くことができます。
ただし「フォルダ名」で終了する場合には最後のスラッシュを省略することはできません。例えば「http://yamanjo.net/test1/test2/」と「http://yamanjo.net/test1/test2」は異なるファイルを指定することになります。前者は「test2」フォルダの「index.html」ファイルで、後者は「test1」フォルダの「test2」というファイルを指定していることになります。
検索サイトとは
ウェブサーバやウェブページはインターネット上に無数に存在しており、その場所を指定しなければ目的のページを表示することができません。その方法がURLになりますが、目的のページのURLをすべて覚えることはできません。友達の携帯番号をすべて覚えておけないのと同じです。
それを解決するのが、YahooやGoogleなどのポータルサイトになります。以前は「検索サイト」と呼ばれていましたが、検索結果だけでなく総合的な情報サイトとなり、インターネットの「入口」を意味するポータルサイトと呼ばれるようになりました。
検索サイトには、キーワード検索によって該当するウェブページが表示されますが、これがそのページへのリンクになっており、URLを打ち込む手間を省くことができます。
しかし、例えば自分がウェブページを作成してウェブサーバにアップロードして公開したとしても、すぐに検索サイトの検索結果に反映されることはありません。まずは、検索サイトにページを見つけてもらう必要があるからです。
多くのサイト運営者は、検索サイトの検索結果の上位表示を目指してウェブページを作り込んだり、検索サイトが見つけやすいように様々な努力をしています。
こうした対策を「SEO」と言います。SEOは「Search Engine Optimization」の略で、検索エンジンで自分のウェブサイトを上位表示させるための取り組みのことです。
何が言いたいのかというと、それほど世の中には無数のウェブサイト(ウェブページ)が存在しているということです。その中から有益なサイトやページを整理して、ユーザーにわかりやすく紹介してくれるのが検索サイトです。
検索サイトがなかったら、ユーザーはすべてURLを直接打ち込んでアクセスする必要があります。したがって、URLを知っているサイトもしくはURLを知っているサイトからリンクされているページにしかアクセスすることができません。
こうして、大手の検索サイトは世界中のユーザーがインターネットの入口(ポータル)として利用するウェブサイトとなり、膨大なアクセス数によって巨大な広告収益を得ています。
更新履歴
- 2008年7月27日
- ページを公開。
- 2009年5月9日
- ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
- 2018年1月26日
- ページをSSL化によりHTTPSに対応。
- 2025年4月23日
- 内容修正。
著者プロフィール
YAMANJO(やまんじょ)
- 経歴
- 岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
- 医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
- 趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
- 関連リンク
- 詳細なプロフィールはこちら
- 作成したボカロ曲などはYoutubeへ
- X(Twitter)
