URLの概要
概要
URLは「統一資源定位子」(Uniform Resource Locator)の略称で、中国語では「ウェブサイト」と訳され、さまざまな資源のインターネットアドレスを示します。以下は典型的なURLです。
https://www.example.com/path/index.html
資源とは、インターネットを通じてアクセスできるさまざまなファイル、例えばウェブページ、画像、音声、動画、JavaScriptスクリプトなどを簡単に理解することができます。それらのURLを知っていることで、インターネット上でそれらを取得できます。
資源がインターネットを通じてアクセス可能であれば、必ず対応するURLがあります。1つのURLは1つの資源に対応しますが、同じ資源が複数のURLに対応することもあります。
URLはインターネットの基盤です。インターネットが「相互接続」されている理由は、ウェブページが「リンク」を通じて他のURLを含むことができるからです。ユーザーはクリックするだけで、1つのURLから別のURLへジャンプし、異なるウェブサイトに移動できます。
ウェブサイトの構成要素
URLは複数の部分から構成されています。以下は比較的複雑なURLで、実際のURLは通常これほど多くの部分を持ちません。
https://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#anchor
このURLの各部分を見てみましょう。
プロトコル
プロトコル(scheme)は、ブラウザがサーバーリソースを要求する方法で、上記はhttps://
の部分で、HTTPSプロトコルを使用することを示します。
インターネットはさまざまなプロトコルをサポートしており、ウェブサイトがどのプロトコルを使用するかを指定する必要があります。デフォルトはHTTPプロトコルです。つまり、プロトコルを省略し、ブラウザのアドレスバーにwww.example.com
と直接入力すると、ブラウザはデフォルトでhttp://www.example.com
にアクセスします。HTTPSはHTTPの暗号化版で、安全性の観点から、ますます多くのウェブサイトがこのプロトコルを使用しています。
HTTPとHTTPSのプロトコル名の後には、コロンと2つのスラッシュ(://
)が続きます。他のプロトコルは必ずしもそうではありません。メールアドレスプロトコルmailto:
のプロトコル名の後にはコロンが1つだけです。例えばmailto:foo@example.com
。
ホスト
ホスト(host)は、資源が存在するウェブサイトの名前またはサーバーの名前で、ドメイン名とも呼ばれます。上記のホストはwww.example.com
です。
一部のホストにはドメイン名がなく、IPアドレスのみを持っています。例えば192.168.2.15
。この場合は、ローカルネットワークにおいてよく見られます。
ポート
同じドメイン名の下に複数のウェブサイトが同時に存在する可能性があり、それらはポート(port)によって区別されます。「ポート」とは整数で、訪問者がどのウェブサイトにアクセスしたいかをサーバーに伝えると簡単に理解できます。HTTPプロトコルのデフォルトポートは80で、このパラメータを省略すると、サーバーは80ポートのウェブサイトを返します。
ポートはホスト名の後に続き、コロンで区切られます。例えばwww.example.com:80
。
パス
パス(path)は、ウェブサイト内の資源の位置を示します。例えば、/path/index.html
というパスは、ウェブサイトの/path
サブディレクトリ内のウェブページファイルindex.html
を指します。
インターネットの初期には、パスは実際に存在する物理的な位置でした。現在ではサーバーがこれらの位置をシミュレーションできるため、パスは単なる仮想位置です。
パスはディレクトリのみを含み、ファイル名を含まない場合があります。例えば/foo/
、さらには末尾のスラッシュも省略できます。この場合、サーバーは通常、デフォルトでそのディレクトリ内のindex.html
ファイルにリダイレクトします(つまり/foo/index.html
をリクエストするのと同じです)。ただし、他の処理(例えば、ディレクトリ内のすべてのファイルをリストするなど)もあり得ます。これはサーバーの設定に依存します。一般的に、www.example.com
というウェブサイトにアクセスすると、ウェブページファイルwww.example.com/index.html
が返される可能性が高いです。
クエリパラメータ
クエリパラメータ(parameter)は、サーバーに提供される追加情報です。パラメータの位置はパスの後ろで、両者は?
で区切られます。上記は?key1=value1&key2=value2
です。
クエリパラメータは1組または複数組存在できます。各グループのパラメータはキーとバリューのペア(key-value pair)の形式で、同時にキー名(key)とキー値(value)を持ち、等号(=
)で接続されます。例えば、key1=value
は1つのキーと値のペアで、key1
がキー名、value1
がキー値です。
複数のグループのパラメータは&
で接続されます。例えば、key1=value1&key2=value2
です。
アンカー
アンカー(anchor)は、ウェブページ内の位置を示すもので、#
の後にアンカー名を付けて、URLの最後に置きます。例えば#anchor
です。ブラウザがページをロードすると、自動的にアンカーの位置までスクロールします。
アンカー名は、ウェブページ要素のid
属性によって名付けられます。「要素の属性」章を参照してください。
URLの文字
URLの各構成部分は、次の文字のみを使用できます。
- 26の英字(大文字と小文字を含む)
- 10のアラビア数字
- ハイフン(
-
) - ピリオド(
.
) - アンダースコア(
_
)
さらに、URLの予約文字に属する18の文字があり、指定された位置にのみ現れることができます。例えば、クエリパラメータの冒頭はクエスチョンマーク(?
)であるため、クエスチョンマークはクエリパラメータの冒頭にしか現れず、他の位置に現れると無効となり、URL解析エラーを引き起こします。URLの他の部分でこれらの予約文字を使用する必要がある場合、エスケープ形式を使用する必要があります。
URL文字のエスケープ方法は、これらの文字の16進ASCIIコードの前にパーセント(%
)を加えることです。以下はこれら18の文字とそのエスケープ形式です。
!
:%21#
:%23$
:%24&
:%26'
:%27(
:%28)
:%29*
:%2A+
:%2B,
:%2C/
:%2F:
:%3A;
:%3B=
:%3D?
:%3F@
:%40[
:%5B]
:%5D
例えば、ウェブページのURLがfoo?bar.html
で、ファイルの中にクエスチョンマークが含まれている場合、foo%3Fbar.html
と記述する必要があります。
URLの合法的な組み合わせは、一般的に英字、数字、ハイフン、ピリオド、アンダースコアで構成されています。特に、英字は大文字と小文字を区別しないため、URLが異なる場合でも、たとえばhttps://www.example.com
とhttps://www.Example.com
は同じリソースを指します。
参考文献
作者: wangdoc
アドレス: https://wangdoc.com/
ライセンス: クリエイティブ・コモンズ 3.0