なにこれ?
URLは解読不可能な呪文ではありません。
URLはすべて、決まった構成で書かれているのです。
URLの構成を理解して、URLとはいったいどのようなものなのかを理解できるようにしましょう!
この記事のゴール
以下の内容が理解できることを目的としています。
- URLとはどのようなものなのか
- URLの構成
- 各構成の意味
URLとは?
URLとは、Uniform Resource Locatorの略で、どのような手順(プロトコル) で、どこのWebサーバーにある、どのようなコンテンツにアクセスするかを示します。
URLの構成
今回は、次のURLを例に構成を見ていきます。
https://www.example.jp:80/path/index.php?page=1&count=2#sec1
このURLは次のように切り分けることができます。
URLのセクション | 名前 | 意味 |
---|---|---|
https: | スキーム(Scheme) | 通信方式を指定する。 |
//www.example.jp:80 | オーソリティ(Authority) | ホスト名(またはIPアドレス)とサービスポート番号を指定する。ポート番号を省略するとデフォルト番号を使用する。 |
/path/index.php | パス(Path) | ディレクトリ名やファイル名といったリソースのパスを指定する。 |
?page=1&count=2 | クエリ(Query) | リソースのアクセス方法をさらに細かく指定する。Webアプリのパラメータやコマンドに使用する(省略可)。 |
#sec1 | フラグメント(Fragment) | ページの特定の場所を示すアンカーを指定する(省略可)。 |
それでは、一つ一つ見ていきましょう。
スキーム
https:
のように一番左に位置するものをスキームと呼び、通信方式であるプロトコルを表します。
Webシステムではスキームにhttp:
やhttps:
を使用しますが、他にもファイル転送サービスのftp:
や、電話サービスのtel:
などのスキームが存在します。
https:
の部分は、「通信方式を表すんだな〜」と考えましょう!
オーソリティ
//www.example.jp:80
のように一般的に「ホームページのアドレス」と考えられる部分をオーソリティと呼びます。
オーソリティは//
から/
の部分を指し、ホスト名、サービスポート番号などを含みます。
//www.example.jp:80
の部分は、「アドレスを表すんだな〜」と考えましょう!
パス
/path/index.php
の部分はパスを示し、/から?までの前、または末尾までを表します。
パスは、サーバー内のファイルの格納場所など、特定のリソースを識別するために使用します。
例えば、www.example.jp:80/path/index.html
の場合、サーバー内のpathディレクトリの中にあるindex.html
ファイルを指定しています。
/path/index.php
の部分は、「ホームからのパスを表すんだな〜」と考えましょう!
クエリ・フラグメント
?page=1&count=2
はクエリ、#sec1
はフラグメントを表します。
クエリは?から#の前、または末尾までを表し、フラグメントは#から末尾までのことを指します。
クエリではアプリケーションのパラメータやコマンドを指定します。
フラグメントでは同じページ内の特定の場所を指定するアンカーに使用します。
?page=1&count=2
や#sec1
の部分は、「何かの値をセットしてて、あってもなくても良いん部分なんだな〜」と考えましょう!
URLは解読不可能な呪文じゃない
プログラムを書いたりするような方でなければ、普段からURLの構成を気にする方は少ないと思います。
一方で、URLのように一見意味のわからない文字の羅列を見て「Webのことを理解するのは難しい」と思う方は多いのではないでしょうか。
そんな苦手意識を持っている方にも、この記事を読んで「URLってこんな意味があるんだ」とか「Webにある数字の羅列には何か意味があるんだ」と思ってもらえたら嬉しいです。
参考文献
こちらの本を参考にしました。
Web技術がこれ1冊でしっかりわかる教科書