音声スライド (クリックで展開/閉じる)
はじめに
- URL にデータを載せる 2 つの方法を知る
- HTTP が状態を持たない性質を理解する
- 静的リソースと動的コンテンツを見分ける
この単元では、URL を使ったデータの渡し方、HTTP のステートレス性、静的リソースと動的コンテンツの違いを学びます。URL を見て、何を指定しているのかを説明できるようになることが目標です。
URL にデータを載せる方法
- パスに載せる:
/todos/1- どの 1 件かを指定する
- クエリ文字列に載せる:
/todos?id=1?の後ろにキーと値を書く
URL
にデータを載せる方法には、パスパラメータとクエリ文字列があります。/todos/1
では、パスの一部で 1 件を指定します。/todos?id=1
では、? の後ろに id=1
というキーと値を書いて指定します。
3 つの URL を比べる
| URL | 種類 | TODO アプリでの用途 |
|---|---|---|
/todos/1 |
パスパラメータ | 1 件の詳細 |
/todos?status=done |
クエリ文字列 | 完了項目の絞り込み |
/css/style.css |
静的リソース | 見た目の指定 |
TODO アプリでは、1 件を特定する情報をパスに置き、一覧の絞り込み条件をクエリ文字列に置いています。パスは対象の特定に、クエリ文字列は表示条件の指定に向いています。サーバ側で値を受け取る方法は、第 16 単元と第 17 単元で扱います。
リクエストは 1 回ずつ独立

HTTP はステートレスです。これは、サーバが前回のリクエストを前提にせず、リクエストを 1 回ずつ独立して扱うという意味です。一覧を表示した後に詳細を表示する場合でも、それぞれが別の要求と応答になります。
必要な情報は毎回送る
- 各リクエストに必要な情報を含める
- 前回の URL や操作を前提にしない
- 応答が終わると、その通信も終わる
- 状態を保つ方法は第 18 単元で学ぶ
ステートレスな HTTP
では、その処理に必要な情報を毎回のリクエストに含めます。たとえば、詳細を表示するたびに
/todos/1 のような URL
で対象を指定します。複数の通信をまたいで状態を保つ方法は、第 18
単元で扱います。
静的と動的の違い
| 種類 | 例 | 返し方 |
|---|---|---|
| 静的リソース | /css/style.css |
ファイルをそのまま返す |
| 動的コンテンツ | /todos |
その時点の内容を組み立てる |
静的リソースは、用意されたファイルを基本的にそのまま返すものです。/css/style.css
が該当します。動的コンテンツは、リクエストを受けるたびに、その時点の
TODO の内容から HTML を組み立てて返します。/todos
の一覧画面が例です。
まとめ
- パスは対象の特定に向いている
- クエリ文字列は条件の指定に向いている
- HTTP はリクエストを独立して扱う
- 静的と動的では内容の作り方が異なる
パスパラメータとクエリ文字列は、URL にデータを載せる方法です。HTTP は状態を持たず、各リクエストを独立して扱います。また、静的リソースはファイルをそのまま返し、動的コンテンツはリクエストに応じて内容を組み立てます。