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.comhttps://www.Example.comは同じリソースを指します。

参考文献


作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0