Web とは / HTTP / リクエストとレスポンス
テクノロジ系 / web (HTTP / $_GET / $_POST / form / php -S)
Web とは / HTTP / リクエストとレスポンス
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 の組み込みサーバーで実際にリクエストを受けてみる