Uniform Resource Locator

Uniform Resource Locator(ユニフォーム リソース ロケータ、URL)または、統一資源位置指定子(とういつしげんいちしていし)とは、インターネット上のリソース(資源)を特定するための形式的な記号の並び。WWWをはじめとするインターネットアプリケーションにおいて提供されるリソースを、主にその所在を表記することで特定する。なお、ここでいう、「リソース」とは、(主にインターネット上の)データやサービスを指し、例えばウェブページの保存場所や電子メールの宛先といったものがそうである。

ブラウザーに表示された、WIKIPEDIA 英語版 メインページのURL

ティム・バーナーズ=リー1991年に発表した論文でUniversal Resource Locatorと命名し、初期はその名が使われたが[1]、現在の正式名称は、「Uniform Resource Locator」である。

URLを含む一般概念としてURIがある[2]

URLはリソースの場所を特定する「住所」のようなものだと例えられることがある。また、日本ではURLのことを「アドレス」と呼ぶことがあるが、これは、MACアドレスIPアドレスなどと紛らわしく、技術用語としては、好まれてはいない

URLの形式

https://ja.wikipedia.org/wiki/Wikipedia
パス名
ホスト名ディレクトリ名を含む)
スキーム(プロトコル名ではない)

https://ja.wikipedia.org/wiki/Wikipedia」は典型的なURLの例である。URLはこのような特徴的な形式の文字列であり、WWWが普及した今日にあっては頻繁に目にするものである。

上のURLは「ウィキペディア日本語版の中にあるウィキペディアについて説明している項目」というリソースを特定する。

  • スキームhttpsはこのリソース(項目)を入手する為にはHTTPSを使うべきであることを表す。
  • ja.wikipedia.orgはこのリソースが保管されているホストを表すホスト名である。
  • 残りの/wiki/Wikipediaの部分は最終的にリソースを特定するための詳細である。ホストのファイルシステム内でのファイル名あるいはディレクトリ名に対応する場合が多いが、そうでない場合もある。
  • 大まかに言えば、上のURLは「ja.wikipedia.orgというコンピュータに接続してHTTPSの決まり事に従って/wiki/Wikipediaという名前のデータを要求すれば目的の物が手に入る」と読むことができる。
  • なお、スキーム名の後のダブルスラッシュ//の2文字は有意義に使われる機会が少ない。2009年10月、URLの提案者であるティム・バーナーズ=リーは「できることなら取り除きたい」と発言している[3]

一般形式

一般にURLは

(スキーム名):(スキームごとに定められた何かの表現形式)

という形をしている。スキーム名としてはプロトコル名が用いられていることが多いがそれに限らない。RFC 1738には次のスキーム名が定義されている。

  • ftp - FTPのためのスキーム
  • http - HTTPのためのスキーム
    • 2000年5月、RFC 2818でhttps(HTTPSのためのスキーム)が追加された
  • gopher - Gopherプロトコルのためのスキーム
  • mailto - 電子メールの宛先を表すためのスキーム
  • news - ネットニュース(Usenet)のためのスキーム
  • nntp - NNTPを使用したネットニュースのためのスキーム
  • telnet - Telnet接続を表すためのスキーム
  • wais - Wide Area Information Servers
  • file - ファイルシステムの中のディレクトリやファイルを参照するためのスキーム
  • prospero - Prospero Directory Service

IANAに登録されたスキーム[4]が公式に認められたスキームであると見なされており、RFC 7595で登録手続きなどについて規定されている。この他にもjavascriptスキーム(この後ろに書かれた内容がJavaScript言語によって書かれたスクリプトであることを示す)のように広く普及している非公式なスキームもある[5]

URLの、スキーム名以降の部分はスキームごとに定められた規則に従う。例えば、電子メールの宛先を表すmailtoスキームのURLの場合、

mailto:example@example.com

のようになっており、先に挙げたhttpsスキームの例とは大きく異なっている。

httpsや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> - ホストに要求するパス。ホストのファイルシステムにおけるパスと対応する場合が多いが、そうでない場合もある。必要がなければ省略可。

標準

WHATWGURL Living Standardを策定している。これは、RFC 3986やその他URLに関係するRFCを置き換える標準仕様である。ただし、廃止などにする手続きが行われたわけではないので、各種RFCも状態としては有効である。

なお、cURL作者のDaniel SteinbergはURL Standardについても不十分という意見を発している[6]

RFC

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 LocatorURL)"も参照すること。

W3C Documents

W3Cが発行しているURLについての文書には次のものがある。

  • URL (2017年、ワーキンググループノート): WHATWG URL Standardのスナップショットとなっている。

恒久リンク

恒久リンク[7]: permanent link)とは恒久的なURLのこと。主にコンテンツ管理システム、とりわけブログツールにおいて、個々の記事へのURLが更新作業を繰り返しても変わらないしくみを意味する。一般的に、URLは永久に変化しないことが好ましい[8][9]

特定の記事あるいはウエブページに対する直接リンク(直リンクとも呼ばれる)が増大するにつれ、一方でリンク切れ[10]: dead link)の大量発生も大きな問題となっている。そのような事態を避けるためコンテンツの更新作業が行われ、なおかつ更新履歴が保存されるシステムにおいて、有効なコンテンツへのURLが変動しないように、データへの参照番号などを固定化するとともに参照方法を簡略化し、URLが冗長にならないことが望ましいとされる。

そのための特殊な手法としてApacheウエブサーバの場合、mod_rewriteを使ってURLを書き換える、PATH_INFOからパラメータを取得してプログラムを動作させるなどがある。特にmod_rewriteの場合は、PHPによる動的コンテンツを静的なhtmlコンテンツに見せかけることが容易にできてしまう。またPATH_INFO方式の場合は動的コンテンツをサブディレクトリに見せかけることができる。このほかいわゆる携帯サイトではURLを短縮化する様々な工夫が施されるようになっている。いずれにしてもURLのみならずオリジナルのファイル拡張子を隠蔽することで、スクリプトを画像や音楽ファイルのように装うなど悪用のおそれもあるので、ホスティングサーバにおいては利用が制限されるケースが多い。

脚注

  1. 高田敏弘、World-Wide Web 第2版、1994年1月21日
  2. RFC 1630
  3. Lohr, Steve (12 October 2009). "The Web's Inventor Regrets One Small Thing". The New York Times (英語). 2021年1月5日閲覧
  4. Uniform Resource Identifier (URI) Schemes, IANA
  5. インターネットドラフト: The 'javascript' resource identifier scheme draft-hoehrmann-javascript-scheme-03
  6. Steinberg, Daniel (2016年6月3日). 私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言”. POSTD. 2017年5月24日閲覧。
  7. 日本Djangoユーザ会. はじめてのDjangoアプリ作成 その3”. Djangoドキュメント. 2019年8月24日閲覧。
  8. Tim BL. Hypertext Style: Cool URIs don't change. (英語). W3C. 2017年2月19日閲覧。
  9. Tim BL. クールなURIは変わらない -- Style Guide for Online Hypertext”. 2017年2月19日閲覧。
  10. 藤田節子「失われていくインターネット上の参照文献 図書館情報学分野の雑誌論文に参照されたインターネット文献の入手可能性の分析調査」『情報管理』第53巻第9号、国立研究開発法人 科学技術振興機構、2010年12月1日、 492-503頁、 doi:10.1241/johokanri.53.4922019年8月24日閲覧。

関連項目

外部リンク

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.