概要
Web の正体は、ブラウザとサーバーの間で 「リクエスト」と「レスポンス」 を 1 往復するだけのとてもシンプルな通信だ。アドレスバーに URL を入れて Enter を押した瞬間、ブラウザは「このページください」というリクエストをサーバーに送り、サーバーは HTML を「はい、これがレスポンスです」と返す。それを画面に並べているのがブラウザ。この 1 往復の繰り返し が Web のすべての土台になっている。
リクエストとレスポンスには HTTP ステータスコード という「結果の合言葉」が必ず付いてくる。200 は成功、404 は「そんなページないよ」、500 は「サーバーで何か壊れた」。開発者ツールの Network タブを開けばこのコードが全リクエストに表示されているので、エラーが出たときはまずここを見るクセを付けたい。
そして HTTP のリクエストには GET と POST という代表的な 2 種類のメソッドがある。GET は URL の ?key=value に値が乗る「取得系」、POST は本文 (Body) に値が乗る「送信系」。検索フォームは GET、ログインフォームは POST、というように使い分ける。この章では絵で全体像を掴み、次の ch02 から実際に PHP でサーバー側を書く。
学習目標
- ブラウザと Web サーバーが 「リクエスト」「レスポンス」 をやり取りしていることを絵で説明できる
- HTTP の ステータスコード (200 / 404 / 500 など) が「結果の合言葉」だと言える
- GET と POST の違い (URL に値が乗るか / 本文に乗るか) を 1 行で言える
ドリル
このチャプターにドリルはありません。 スライドを読み終わったら次の ch02-builtin-server/ に進んでください。
理由: ここでは Web 通信の 概念の絵 を頭に作るのが目的。手を動かすのは ch02 から (php -S localhost:8000 で実際に Web サーバーを立てるところ) で行います。
ブラウザで体感してみる (任意)
PC のブラウザで何でも良いので URL を開いてみてください。例: https://example.com
- アドレスバーに URL を入れて Enter = リクエスト を送信
- 画面に表示された HTML = レスポンス の中身
- 開発者ツール (Chrome なら F12) の Network タブ を開くと、リクエスト / レスポンスの中身 (ヘッダ・ステータスコード) が全部見える
「Web で何かが起きる」というのは、つまり このリクエスト / レスポンスの往復が起きている ということ。次のチャプター以降では、その「レスポンスを返す側」を自分の PHP で書く。