URL
インターネット上の資源(Webページなど)の場所を表す文字列。通信の方法、ホスト名、ポート番号、パス、クエリなどで構成され、ポート番号を省略すると、通信の方法を表すスキームごとに決まった番号が使われる。
イマシルちゃんの解説
URLは、インターネットの「住所」みたいなものなんだ。
先頭の「https」は、どんな方法で行くか、
その次の名前は、どの建物(サーバ)に行くか、
そのあとは、建物の中のどの部屋(ファイル)か、を表しているんだよ。
建物の入口の番号(ポート番号)は、書いていなければ、行き方ごとに決まった番号が使われるんだ。
より深い解説
構成
https://www.example.jp:8443/shop/list.cgi?item=123#top
この例を分けると、スキームが「https」、ホスト名が「www.example.jp」、ポート番号が「8443」、パスが「/shop/list.cgi」、クエリが「item=123」、ページ内の位置が「top」になる。
| 部分 | 内容 |
|---|---|
| スキーム | 通信の方法(http、https、ftp、mailto、ws、wss など) |
| ホスト名 | 接続するサーバのFQDN、またはIPアドレス |
| ポート番号 | 「:」に続けて書く。省略すると、スキームの標準のポートを使う |
| パス | サーバの中の資源の場所 |
| クエリ | 「?」に続く、プログラムに渡す値(名前=値 を「&」でつなぐ) |
| ページ内の位置(fragment) | 「#」に続く、ページの中の位置。サーバには送られない |
スキームと標準のポート番号
| スキーム | ポート番号 |
|---|---|
| http、ws | 80 |
| https、wss | 443 |
| ftp | 21 |
読み間違えやすい例
https://ftp.example.jp/index.cgi?port=123 のようなURLでは、
- ホスト名が「ftp」で始まっていても、通信の方法を決めるのはスキーム(https)である
- 「port=123」はクエリの中の値で、プログラムに渡す引数にすぎない
- ポート番号の指定(「:」に続く番号)はないので、https の標準である 443 番に接続する
URIとURL
URI(Uniform Resource Identifier)は、資源を識別する文字列の総称で、URLは、そのうち資源の場所(アクセスの方法)を表すものである。日常的には、ほぼ同じ意味で使われる。
URLに日本語や記号を含めるときは、「%」と16進数で表す(パーセントエンコーディング)。