はじめに
URLについて解説する記事です。
自身の学習も兼ねて学んだことをまとめています。
対象読者
Web系エンジニアの方やエンジニア歴が浅い方が対象となります。
URLとは
URLは「Uniform Resource Locator」の略。
URLとは、インターネット上の固有のリソースへアクセスするためのアドレスのことです。
簡単にいうと、インターネット上にあるリソースがどこにあるかを示す住所のようなものです。
現実の世界でもメールや手紙を送る際に、相手のメールアドレスや住所が必要なように、インターネット上のリソースへアクセスするためにはURLが必要となります。
URLの構成要素
URLはいくつかの部品により構成されています。
以下にURLの例を示します。
https://www.example.com:80/path/to/page.html?query=string#section
https://
https://
はスキームと呼ばれ、通信プロトコルを示しています。
Webサイトでは主にhttp
もしくはhttps
が使用されています。
www.example.com
www.exmaple.com
はホスト名と呼ばれ、webサイトの識別子になります。
また、exmaple.com
の部分はドメイン名と呼ばれます。
:80
:80
はポート番号と呼ばれ、サーバー内のどの扉を使用して通信するかを示します。
Webサイトの場合、HTTPは80ポート、HTTPSは443ポートが標準で使用されます。
そのため、通常はポート番号は省略されてURLが表示されています。
今現在開いているタブの通信プロトコルを確認し、httpの場合はホスト名の後に:80
、httpsの場合は:443
を入力すると、同じ画面に遷移することを確認できますので、自身の理解を深めるためにも、一度試してみるのが良いかと思います。
/path/to/page.html
/path/to/page.html
はパスと呼ばれ、サーバー上のファイルやディレクトリの場所を示します。
Spring Bootアプリケーションの場合、Controllerで設定(マッピング)するパスが、URLのパスの部分に直接該当します。
query=string
query=string
はクエリと呼ばれ、サーバーに追加情報を送るためのものです。
もう少し詳しく解説すると、ユーザーが入力した情報や選択したオプションなどを、Webサーバーに伝えるために使用されます。
クエリの構成は以下の通りです。
-
?
から始まる -
キー = 値
の形式で記述する - 複数の情報がある場合は
&
で区切る
Spring Bootアプリケーションの場合、@RequestParam
で受け取ることができます。
#section
#section
はフラグメント識別子と呼ばれ、Webページ内の特定の位置(アンカー)を示します。
通常、ページ内リンクをクリックした時に、その指定された場所までスクロールするために使用されます。
フラグメント識別子の構成は以下の通りです。
-
#
から始まる - Webページ内の特定の要素の
id
属性の値に対応する