【入門編】 HTTPステータスコード 2xx (成功系) の詳細とキャッシュ制御 – ネットワーク基礎とWebセキュリティ実践ガイド

はじめに:Webの世界の「ごちそうさまでした!」

普段、何気なくスマートフォンでWebサイトを見たり、SNSに写真を投稿したりしているとき、裏側では膨大なデータがネットワークを駆け巡っています。

ブラウザでボタンを「ポチッ」と押した瞬間、あなたのデバイスからWebサーバーに向けて「このページを見せて!」「このデータを登録して!」というお願い(リクエスト)が送信され、サーバーから「いいですよ!」「はい、これどうぞ!」というお返事(レスポンス)が返ってきます。

このとき、サーバーが一番最初に伝えてくる合図が、今回主役となる HTTPステータスコード です。

特に、数字が「2」から始まる 2xx(成功系) は、現実世界で言えば「注文がバッチリ通ったよ!」「荷物を確かに受け取ったよ!」というハッピーなお知らせです。

しかし、ひとくちに「成功」と言っても、200 OK、201 Created、204 No Content など、実はいろいろな種類があります。そして、この「どの成功コードを返したか」によって、ブラウザが「このデータを手元に保存(キャッシュ)していいのかな?」と考える挙動や、次の通信のアクションが大きく変わってくるのです。

今回は、パケットの海を日々泳ぎ回るインフラエンジニアの視点から、身近な例えを交えて「2xx系の違い」と「ブラウザキャッシュの仕組み」を一歩ずつ丁寧に紐解いていきましょう!

—

1. 現実世界で例えるHTTP通信のやりとり

まずはイメージを掴むために、HTTPの通信を「郵便配達」や「カフェでの注文」に例えてみましょう。

あなたがカフェのカウンターで「アイスコーヒーを1つください」と注文カード(リクエスト)を店員さんに渡したとします。

  • 店員さんが笑顔で「はいどうぞ!」とコーヒーを渡してくれる

👉 これが 200 OK です。頼んだもの(コンテンツ)がちゃんと手元に届きました。

  • 会員登録用紙を書いて渡したら、店員さんが「新しい会員証を発行しました!」とカードを渡してくれる

👉 これが 201 Created です。新しい何かがお店側に作られました。

  • アンケート用紙を回収箱に入れたら、店員さんが「受け取りました!」とペコリとお辞儀だけしてくれる(手には何も返されない)

👉 これが 204 No Content です。処理は完璧に成功したけれど、持ち帰る品物はありません。

このように、全部「成功(注文や手続きが正常に完了した)」ですが、「手元に何かが届くのか」「新しく作られたのか」というニュアンスが違いますよね。

—

2. 代表的な「2xx 成功系」ステータスコードを深掘り!

それでは、Web開発やネットワークの世界で特によく出会う3つのコードを詳しく見ていきましょう。

① 200 OK(大定番!すべて順調)

Webの世界で一番見かける、言わば「優等生」のコードです。
ブラウザが「Webページを見せて(GETリクエスト)」と頼んだとき、サーバーが「了解!これがそのHTMLや画像だよ」と一緒に 200 OK を返します。

  • 特徴: レスポンスの中に、必ず「本体(ボディデータ)」が含まれます。
  • 後続への影響: ブラウザは受け取ったデータを画面に描画(レンダリング)します。

② 201 Created(新しく生まれました!)

ブログの記事を新しく投稿したときや、ユーザー登録をしたとき(POSTリクエストなど)によく使われます。

  • 特徴: サーバー側で「新しいデータ(リソース)が無事に作成された」ことを意味します。
  • 後続への影響: 多くの場合、レスポンスのヘッダーに Location: /articles/123 のように「新しく作ったデータのURLはここですよ」という道案内が付いてきます。ブラウザやJavaScriptは、そのURLを元に「作成完了画面」へ移動したりします。

③ 204 No Content(仕事は完了、お返しの荷物はゼロ)

「設定を保存した」「お気に入りボタンを押した」というとき、画面全体を新しく読み直す必要はありませんよね。サーバー側で処理さえ完了していれば十分です。

  • 特徴: 処理は大成功ですが、サーバーはあえて中身(ボディ)を一切返しません。
  • 後続への影響: ブラウザは「画面の表示をそのまま維持」します。無駄なデータ通信が発生しないため、ネットワーク帯域にとても優しいスマートなコードです。

—

3. ステータスコードと「キャッシュ(記憶)」の密接な関係

ここからが、インフラ・Webセキュリティの観点でも非常に面白いポイントです。

ブラウザには、一度読み込んだ画像やWebページを自分のパソコンの中に一時保存しておき、次回同じページを開くときに超高速で表示する「キャッシュ(Cache)」という機能が備わっています。

毎回サーバーまで荷物を取りに行かずに、手元の引き出し(キャッシュ)から取り出せば、通信の待ち時間もゼロになりますし、オフィスのネットワーク回線も圧迫しませんよね。

しかし、「どのステータスコードならキャッシュしていいのか?」には厳格なルールがあります。

| ステータスコード | デフォルトでのキャッシュ挙動 | なぜその挙動になるの? |
| :— | :— | :— |
| 200 OK | キャッシュされやすい | 「見たい」と言われたデータその

コメント

タイトルとURLをコピーしました