採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

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=taroURI (どのパスを / クエリ付きで)
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" と書くだけで、この「本文」に自動で入る

ステータスコード = 結果の合言葉

コード意味
200OK (成功)普通のページ表示
301 / 302リダイレクト別 URL に飛ばす
404Not Found存在しないページ
500Server ErrorPHP がエラーで落ちた
  • 4xx = クライアント側 (送り方が) のせい
  • 5xx = サーバー側 (こっちのコードが) のせい

PHP は何もしなければ 200 を返す。エラーが出れば自動で 500。

GET と POST の違い

GETPOST
値の置き場所URL の ?key=valueリクエストの本文 (body)
ブラウザの履歴残る残らない
ブックマークできるできない
用途取得 (検索・閲覧)送信 (登録・投稿)
PHP からの読み方$_GET['key']$_POST['key']

→ 「読み出しは GET、書き込み (副作用) は POST」が原則。

このチャプターでできるようになること

✅ Web は「リクエスト / レスポンス」の往復で成り立つと絵で言える

✅ メソッド (GET / POST) / URI / ステータスコードの 3 つを区別できる

✅ 200 / 404 / 500 の意味を言える

✅ GET と POST の使い分けを 1 行で言える

関連: ch02 で PHP の組み込みサーバーで実際にリクエストを受けてみる