Lesson 12 / Chapter 1
Web は「往復」で成り立っている
[ブラウザ] ── リクエスト ──> [Web サーバー (PHP)]
[ブラウザ] <── レスポンス ── [Web サーバー (PHP)]
- ブラウザは 「これくれ」というリクエスト を送る
- サーバーは 「はいどうぞ」というレスポンス を返す
- これを HTTP というルールで会話する
→ Web アプリを作る = 「レスポンスを返す側」を自分の PHP で書く ということ。
リクエストの中身
ブラウザが送るリクエストには、ざっくり以下が入っている。
GET /hello?name=taro HTTP/1.1
Host: localhost:8000
User-Agent: Chrome/...
| 部分 |
役割 |
GET |
メソッド (どんな種類の要求か。GET / POST など) |
/hello?name=taro |
URI (どのパスを / クエリ付きで) |
HTTP/1.1 |
プロトコルのバージョン |
Host: ... |
どのサーバーに繋ぐか |
PHP からは $_SERVER['REQUEST_METHOD'] / $_SERVER['REQUEST_URI'] で読める。
レスポンスの中身
サーバーが返すレスポンスはこんな形。
HTTP/1.1 200 OK
Content-Type: text/html
<h1>Hello, Web!</h1>
| 部分 |
役割 |
200 OK |
ステータスコード (うまく行ったか) |
Content-Type |
中身が HTML か JSON か画像か |
| 空行の後 |
本文 (ブラウザに見せる中身) |
PHP で echo "Hello" と書くだけで、この「本文」に自動で入る。
ステータスコード = 結果の合言葉
| コード |
意味 |
例 |
| 200 |
OK (成功) |
普通のページ表示 |
| 301 / 302 |
リダイレクト |
別 URL に飛ばす |
| 404 |
Not Found |
存在しないページ |
| 500 |
Server Error |
PHP がエラーで落ちた |
- 4xx = クライアント側 (送り方が) のせい
- 5xx = サーバー側 (こっちのコードが) のせい
PHP は何もしなければ 200 を返す。エラーが出れば自動で 500。
GET と POST の違い
|
GET |
POST |
| 値の置き場所 |
URL の ?key=value |
リクエストの本文 (body) |
| ブラウザの履歴 |
残る |
残らない |
| ブックマーク |
できる |
できない |
| 用途 |
取得 (検索・閲覧) |
送信 (登録・投稿) |
| PHP からの読み方 |
$_GET['key'] |
$_POST['key'] |
→ 「読み出しは GET、書き込み (副作用) は POST」が原則。
このチャプターでできるようになること
✅ Web は「リクエスト / レスポンス」の往復で成り立つと絵で言える
✅ メソッド (GET / POST) / URI / ステータスコードの 3 つを区別できる
✅ 200 / 404 / 500 の意味を言える
✅ GET と POST の使い分けを 1 行で言える
関連: ch02 で PHP の組み込みサーバーで実際にリクエストを受けてみる