Uniform Resource Locator
Uniform Resource Locator(ユニフォーム リソース ロケータ、URL)または、統一資源位置指定子(とういつしげんいちしていし)とは、インターネット上のリソース(資源)を特定するための形式的な記号の並び。WWWをはじめとするインターネットアプリケーションにおいて提供されるリソースを、主にその所在を表記することで特定する。なお、ここでいう、「リソース」とは、(主にインターネット上の)データやサービスを指し、例えばウェブページの保存場所や電子メールの宛先といったものがそうである。
ティム・バーナーズ=リーが1991年に発表した論文[要文献特定詳細情報]でUniversal Resource Locatorと命名し、初期はその名が使われたが[1]、現在の正式名称は、「Uniform Resource Locator」である。
URLを含む一般概念としてURIがある[2]。
URLはリソースの場所を特定する「住所」のようなものだと例えられることがある。また、日本ではURLのことを「アドレス」と呼ぶことがあるが、これは、MACアドレスやIPアドレスなどと紛らわしく、技術用語としては、好まれてはいない。
目次
1 URLの形式
1.1 例
1.2 一般形式
2 標準
2.1 RFC
2.2 W3C Documents
3 パーマネントリンク
4 脚注
5 関連項目
6 外部リンク
URLの形式
例
http: | //ja.wikipedia.org | /wiki/Wikipedia |
↑ | ↑ | ↑ |
| | | | パス名 |
| | ホスト名 | (ディレクトリ名を含む) |
スキーム(プロトコル名ではない) |
「http://ja.wikipedia.org/wiki/Wikipedia
」は典型的なURLの一例である。URLはこのような特徴的な形式の文字列であり、WWWが普及した今日にあっては頻繁に目にするものである。
上のURLは「ウィキペディア日本語版の中にあるウィキペディアについて説明している項目」というリソースを特定する。
スキーム名http
はこのリソース(項目)を入手する為にはHTTPを使うべきであることを表す。
ja.wikipedia.org
はこのリソースが保管されているホストを表すホスト名である。- 残りの
/wiki/Wikipedia
の部分は最終的にリソースを特定するための詳細である。ホストのファイルシステム内でのファイル名あるいはディレクトリ名に対応する場合が多いが、そうでない場合もある。 - 大まかに言えば、上のURLは「ja.wikipedia.orgというコンピュータに接続してHTTPの決まり事に従って/wiki/Wikipediaという名前のデータを要求すれば目的の物が手に入る」と読むことができる。
- なお、httpの後のダブルスラッシュ //の2文字は有意義に使われる機会が少ない。2009年10月、URLの提案者であるティム・バーナーズ=リーは「できることなら取り除きたい」と発言している[3]。
一般形式
一般にURLは
(スキーム名):(スキームごとに定められた何かの表現形式)
という形をしている。スキーム名としてはプロトコル名が用いられていることが多いがそれに限らない。RFC 1738には次のスキーム名が定義されている。
- ftp - FTPのためのスキーム
- http - HTTPのためのスキーム
- gopher - Gopherプロトコルのためのスキーム
mailto - 電子メールの宛先を表すためのスキーム- news - ネットニュース(Usenet)のためのスキーム
- nntp - NNTPを使用したネットニュースのためのスキーム
- telnet - Telnet接続を表すためのスキーム
- wais - Wide Area Information Servers
- file - ファイルシステムの中のディレクトリやファイルを参照するためのスキーム
- prospero - Prospero Directory Service
IANAに登録されたスキーム[4]が公式に認められたスキームであると見なされており、上記の他に20あまりある。この他にもjavascriptスキーム(この後ろに書かれた内容がJavaScript言語によって書かれたスクリプトであることを示す)のように広く普及している非公式なスキームもある[5]。
URLの、スキーム名以降の部分はスキームごとに定められた規則に従う。例えば、電子メールの宛先を表すmailtoスキームのURLの場合、
mailto:example@example.com
のようになっており、先に挙げたhttpスキームの例とは大きく異なっている。
httpやftpのような特定のホストにIP接続する類のスキームでは次のような共通の形式が使われている。この表記では、接続するプロトコルは、呼び出している機能のプロトコルと同じものが使用される。
//<user>:<password>@<host>:<port>/<url-path>
<user>
- ホストに接続するときに使うユーザー名。必要がなければ省略可。
<password>
- ユーザー名に対応するパスワード。必要がなければ省略可。
<host>
- ホスト名、FQDNまたはIPアドレス
https://192.168.10.2/ <-- IPv4の場合
https://[fe80::a1b3:125d:c1f8:4781]/ <-- IPv6の場合
<port>
- 接続先ポート番号。ホストのどのポートに接続するかを表す。スキームがデフォルトのポート番号を規定している場合は省略してもよい。
<url-path>
- ホストに要求するパス。ホストのファイルシステムにおけるパスと対応する場合が多いが、そうでない場合もある。必要がなければ省略可。
標準
WHATWGがURL Living Standardを策定している。これは、RFC 3986やその他URLに関係するRFCを置き換える標準仕様である。ただし、cURL作者のDaniel Steinbergはこれについても不十分という意見を発している[6]。
RFC
URLに関連するRFC(およびその邦訳)には次のものがある。
RFC 1738 - Uniform Resource Locators(URL)
RFC 1808 - Relative Uniform Resource Locators
RFC 2396 - Uniform Resource Identifiers(URI):Generic Syntax(旧)
TS X 0097:2004 - 統一資源識別子(URI) 共通構文 標準仕様書(TS)
RFC 3305 - URIs, URLs, and URNs: Clarifications and Recommendations 1.0
RFC 3986 - Uniform Resource Identifier(URI):Generic Syntax
RFC 1983 - Internet Users' Glossary
TR X 0055:2002 - インターネット利用者のための用語 標準情報(TR)
RFC 1983による"address"の語釈は次の通り(プレーンテキストの原文に太字の効果を付与し、1行文字数などの体裁を調整)。
- There are four types of addresses in common use within the Internet. They are email address; IP, internet or Internet address; hardware or MAC address; and URL. See also: email address, IP address, internet address, MAC address, Uniform Resource Locator.
先頭の2文の大意は、「インターネットにおけるアドレスには主に4種類ある。電子メールアドレス、IPアドレス、MACアドレス、そしてURLである」となるが、参考までに、TR X 0055:2002による訳を次に引用する(太字は引用者)。
- インターネット(the Internet)内部で共通に使用するアドレスには4つの型がある。それらは、電子メールアドレス、IPアドレス又はインターネットアドレス、ハードウェアアドレス又はMACアドレス、及びURLとする。"2.147 email address"、"2.252 IP address"、"2.229 internet address"、"2.287 MAC address"及び"2.479 Uniform Resource Locator(URL)"も参照すること。
W3C Documents
W3Cが発行しているURLについての文書には次のものがある。
URL (2017年、ワーキンググループノート): WHATWG URL Standardのスナップショットとなっている。
パーマネントリンク
パーマネントリンク (permanent link) とは恒久的なURLのこと。パーマリンク (permalink) と略されることも多い。主にコンテンツ管理システム、とりわけブログツールにおいて、個々の記事へのURLが更新作業を繰り返しても変わらないしくみを意味する。一般的に、URLは永久に変化しないことが好ましい[7][8]。
特定の記事あるいはウエブページに対する直接リンク(直リンクとも呼ばれる)が増大するにつれ、一方でデッドリンク(リンク切れ、無効なURL)の大量発生も大きな問題となっている。そのような事態を避けるためコンテンツの更新作業が行われ、なおかつ更新履歴が保存されるシステムにおいて、有効なコンテンツへのURLが変動しないように、データへの参照番号などを固定化するとともに参照方法を簡略化し、URLが冗長にならないことが望ましいとされる。
そのための特殊な手法としてApacheウエブサーバの場合、mod_rewriteを使ってURLを書き換える、PATH_INFOからパラメータを取得してプログラムを動作させるなどがある。特にmod_rewriteの場合は、PHPによる動的コンテンツを静的なhtmlコンテンツに見せかけることが容易にできてしまう。またPATH_INFO方式の場合は動的コンテンツをサブディレクトリに見せかけることができる。このほかいわゆる携帯サイトではURLを短縮化する様々な工夫が施されるようになっている。いずれにしてもURLのみならずオリジナルのファイル拡張子を隠蔽することで、スクリプトを画像や音楽ファイルのように装うなど悪用のおそれもあるので、ホスティングサーバにおいては利用が制限されるケースが多い。
脚注
^ 高田敏弘、World-Wide Web 第2版、1994年1月21日
^ RFC 1630
^ The Web's Inventor Regrets One Small Thing - NYTimes.com
^ URI Schemes, IANA
^ インターネットドラフト: The 'javascript' resource identifier scheme draft-hoehrmann-javascript-scheme-03
^ Steinberg, Daniel (2016年6月3日). “私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言”. POSTD. 2017年5月24日閲覧。
^ Tim BL. “Hypertext Style: Cool URIs don't change.” (英語). W3C. 2017年2月19日閲覧。
^ Tim BL. “クールなURIは変わらない -- Style Guide for Online Hypertext”. 2017年2月19日閲覧。
関連項目
Internationalized Resource Identifier(IRI)
Uniform Resource Identifier(URI)
Uniform Resource Name(URN)- 短縮URL
- 名前空間
- パーセントエンコーディング
- メールアドレス
外部リンク
- URL Living Standard
- URL Living Standard (日本語訳)