この記事には複数の問題があります。 |

Uniform Resource Locator(ユニフォーム リソース ロケータ、URL)とは、インターネット上のリソース(資源)を特定するための形式的な記号の並び。統一資源位置指定子(とういつしげんいちしていし)とも。
WWWをはじめとするインターネットアプリケーションにおいて提供されるリソースを、主にその所在を表記することで特定する。なお、ここでいう、「リソース」とは、(主にインターネット上の)データやサービスを指し、例えばウェブページの保存場所や電子メールの宛先といったものが該当する
1994年、WWWの開発者ティム・バーナーズ=リーおよびIETFによって定義され、その仕様はRFC 1738によって公開された。
URLを含む一般概念としてURIがある。
URLはリソースの場所を特定する「住所」のようなものだと例えられることがある。
日本ではURLのことを俗に「ホームページアドレス」と呼ぶことがある。「ホームページアドレス」はMACアドレスやIPアドレス、メールアドレス等とは異なり、RFCなどの文書で規定されている標準的な技術用語ではない。
ウェブブラウザには、URLを入力して移動したり、現在表示されているウェブページのURLを表示・取得したりすることのできるテキストボックスまたはコンボボックスのようなGUI部品(ウィジェット)が用意されており、一般的にアドレスバーと呼ばれる。モダンなウェブブラウザではアドレスバーと検索ボックスが統合され、URLだけでなく検索キーワードを入力することもできる。
| https: | //ja.wikipedia.org | /wiki/Wikipedia |
| ↑ | ↑ | ↑ |
| | | | | パス名 |
| | | ホスト名 | (ディレクトリ名を含む) |
| スキーム(プロトコル名ではない) | ||
「https://ja.wikipedia.org/wiki/Wikipedia」は典型的なURLの例である。URLはこのような特徴的な形式の文字列であり、WWWが普及した今日にあっては頻繁に目にするものである。
上のURLは「ウィキペディア日本語版の中にあるウィキペディアについて説明している項目」というリソースを特定する。
httpsはこのリソース(項目)を入手する為にはHTTPSを使うべきであることを表す。ja.wikipedia.orgは、ホスト名(またはインターネットホスト名)と呼ばれ、リソースが保管それているホスト先を表す。この内、jaが実際にリソースが保管されているコンピュータ(サーバ)を示すローカルのホスト名であり、wikipedia.orgがホストが存在するネットワークを示すドメイン名である。このホスト名は、Fully Qualified Domain Name(FQDN)とも呼ばれる。/wiki/Wikipediaの部分は最終的にリソースを特定するための詳細である。ホストのファイルシステム内でのファイル名あるいはディレクトリ名に対応する場合が多いが、そうでない場合もある。//の2文字は有意義に使われる機会が少ない。2009年10月、URLの提案者であるティム・バーナーズ=リーは「できることなら取り除きたい」と発言している。一般にURLは
(スキーム名):(スキームごとに定められた何かの表現形式)
という形をしている。スキーム名としてはプロトコル名が用いられていることが多いがそれに限らない。RFC 1738には次のスキーム名が定義されている。
IANAに登録されたスキームが公式に認められたスキームであると見なされており、RFC 7595で登録手続きなどについて規定されている。この他にもjavascriptスキーム(この後ろに書かれた内容がJavaScript言語によって書かれたスクリプトであることを示す)のように広く普及している非公式なスキームもある。
URLの、スキーム名以降の部分はスキームごとに定められた規則に従う。例えば、電子メールの宛先を表すmailtoスキームのURLの場合、
mailto:example@example.com
のようになっており、先に挙げたhttpsスキームの例とは大きく異なっている。
httpsやftpのような特定のホストにIP接続する類のスキームでは次のような共通の形式が使われている。この表記では、接続するプロトコルは、呼び出している機能のプロトコルと同じものが使用される。
//<user>:<password>@<host>:<port>/<url-path>?<query-string>
<user> - ホストに接続するときに使うユーザー名。必要がなければ省略可。<password> - ユーザー名に対応するパスワード。必要がなければ省略可。<host> - ホスト名、FQDNまたはIPアドレスhttps://104.18.26.120/ ← IPv4の場合 https://[2606:4700::6812:1b78]/ ← IPv6の場合
<port> - 接続先ポート番号。ホストのどのポートに接続するかを表す。スキームがデフォルトのポート番号を規定している場合は省略してもよい。<url-path> - ホストに要求するパス。ホストのファイルシステムにおけるパスと対応する場合が多いが、そうでない場合もある。必要がなければ省略可。<query-string> - 接続先が利用するパラメータ。?に続いて任意の形式でデータを記述する。省略可。正式名は「URL-query string」。WHATWGがURL Living Standardを策定している。これは、RFC 3986やその他URLに関係するRFCを置き換える標準仕様である。ただし、廃止などにする手続きが行われたわけではないので、各種RFCも状態としては有効である。
なお、cURL作者のDaniel SteinbergはURL Standardについても不十分という意見を発している。
URLに関連するRFC(およびその邦訳)には次のものがある。
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が発行しているURLについての文書には次のものがある。
恒久リンク(英: permanent link)とは恒久的なURLのこと。主にコンテンツ管理システム、とりわけブログツールにおいて、個々の記事へのURLが更新作業を繰り返しても変わらないしくみを意味する。一般的に、URLは永久に変化しないことが好ましい。
特定の記事あるいはウエブページに対する直接リンク(直リンクとも呼ばれる)が増大するにつれ、一方でリンク切れ(英: dead link)の大量発生も大きな問題となっている。そのような事態を避けるためコンテンツの更新作業が行われ、なおかつ更新履歴が保存されるシステムにおいて、有効なコンテンツへのURLが変動しないように、データへの参照番号などを固定化するとともに参照方法を簡略化し、URLが冗長にならないことが望ましいとされる。
そのための特殊な手法としてApacheウエブサーバの場合、mod_rewriteを使ってURLを書き換える、PATH_INFOからパラメータを取得してプログラムを動作させるなどがある。特にmod_rewriteの場合は、PHPによる動的コンテンツを静的なhtmlコンテンツに見せかけることが容易にできてしまう。またPATH_INFO方式の場合は動的コンテンツをサブディレクトリに見せかけることができる。このほかいわゆる携帯サイトではURLを短縮化する様々な工夫が施されるようになっている。いずれにしてもURLのみならずオリジナルのファイル拡張子を隠蔽することで、スクリプトを画像や音楽ファイルのように装うなど悪用のおそれもあるので、ホスティングサーバにおいては利用が制限されるケースが多い。