合同会社小村ソフト
第 7 章

総合演習 — HTTP の会話をケースで読み解く

実務の障害調査を模した 8 つのケースに、「何を頼んだか・結果はどうだったか・条件と補足」の 3 点セット読みを当てて、全 6 章の知識を横断して使う。

仕上げの 8 問 — ケースに 3 点セットを当てる

最終章は総合演習です。実務で出会う場面を模した 8 つのケースに、全 6 章の知識を横断して答えます。迷ったら、この講座の合言葉に立ち返ってください — 何を頼んだか? 結果はどうだったか? 条件と補足は何か?

つまずいたら戻る章
メッセージの骨格・ステートレス第 1 章
メソッドの使い分け・安全と冪等・リトライ第 2 章
ステータスコードの分類と切り分け第 3 章
Host・Content-Type・Cookie などのヘッダ第 4 章
max-age・ETag・304・no-store第 5 章
curl と Network タブの観察手順第 6 章
症状からリクエスト行・ステータスコード・ヘッダの順に確認して原因へ絞り込む、HTTP 障害調査の 3 点セット読みの手順図

ケース調査の型です。症状から出発し、リクエスト行(何を頼んだか)→ ステータスコード(結果はどうだったか)→ ヘッダ(条件と補足)の順に読むと、原因の側(クライアント側 / 転送 / サーバ側 / キャッシュ)が絞り込めます。

ケース 7-1 — リダイレクトとフォームのトラブル

第 2〜3 章と第 6 章の範囲です。転送の連鎖と、POST の再送を読み解きます。

Q1. ケース: https://example.com/mypage を開くとブラウザが「リダイレクトが繰り返し行われました」というエラーを表示します。curl -v https://example.com/mypage で観察すると、302 で Location: /login へ、/login も 302 で Location: /mypage へ転送していました。起きていることの説明として正しいものはどれですか。

Q2. ケース: 注文完了ページでブラウザを再読み込みした利用者から「フォーム再送信の確認が出て、進むと注文が二重になった」と報告がありました。サーバ側の定番の対策はどれですか。

Q3. ケース: 画像ファイルのレスポンスヘッダに Cache-Control: max-age=604800 が設定されています。このキャッシュが fresh でいられる期間は何日ですか。

ケース 7-2 — 反映されない・化ける・見えない

第 3〜6 章の範囲です。キャッシュ・権限・文字コードを切り分けます。

Q4. ケース: CSS を修正してサーバに反映したのに、自分のブラウザでは古いデザインのまま表示されます。Network タブを見ると、その CSS の行の Size 列に (disk cache) と表示されていました。原因と対処の組み合わせとして最も適切なものはどれですか。

Q5. ケース: 会員制サイトで、ログイン済みの利用者から「昨日まで見られた資料ページが今日から見られない」と報告がありました。Network タブではそのページへの GET が 403 を返しています。この観察から言えることとして最も適切なものはどれですか。

Q6. ケース: リニューアルした https://example.com のページで日本語が「è±�å­�」のような記号列に化けています。curl -I で確認すると Content-Type: text/html; charset=ISO-8859-1 が返っており、HTML ファイル自体は UTF-8 で保存されていました。適切な対処はどれですか。

ケース 7-3 — 障害の切り分けとリトライの判断

第 2〜3 章の総仕上げです。5xx の切り分けと、冪等性にもとづくリトライ判断で講座を締めくくります。

Q7. ケース: サイト全体が突然エラーになり、どの URL でも 502 Bad Gateway が返ります。構成は「リバースプロキシ + 後ろのアプリケーションサーバ」の 2 段です。最初に調べる場所として最も適切なのはどれですか。

Q8. ケース: 在庫管理システムで 2 つのリクエストがタイムアウトしました。(A) PUT /items/42(商品 42 の情報をこの内容に置き換える)と (B) POST /orders(新規発注を作成する)です。機械的にすぐ再送してよいのはどちらですか。

講座の終わりに — 往復書簡の読み方を持ち歩く

お疲れさまでした。この講座で暗記した項目は、実はごくわずかです。代わりに持ち帰ってほしいのは、どんな出力の前でも通用する読み方の型です。

  • 何を頼んだか — リクエスト行のメソッドとパス。その頼みごとは安全か、冪等か
  • 結果はどうだったか — ステータスコードを百の位から。誰の問題かがまず分かる
  • 条件と補足は何か — Content-Type は中身と一致しているか。Cache-Control は何を約束しているか。Cookie は添えられているか

開発者ツールの Network タブも、curl -v の出力も、明日から出会うどんな HTTP のログも、この 3 点で必ず読み始められます。圧倒されずに、いつもの 3 点から読む — それがこの講座で身につけた力です。