HTTPヘッダー|情報処理安全確保支援士試験 令和6年春期午前Ⅱ 問20
出典:令和6年春期 午前Ⅱ 問20
分野:ネットワーク / 通信プロトコル
Webサーバから送信されるHTTPヘッダーのうち,Webサーバからの応答の内容を,Webブラウザやプロキシサーバなどのキャッシュに保持させないようにするものはどれか。
- ア:Cache-Control: no-cache
- イ:Cache-Control: no-store
- ウ:Cache-Control: private
- エ:Cache-Control: public
TSUNAGARU-ADVICE
まず押さえたいこと
HTTPレスポンスをブラウザやプロキシサーバなどのキャッシュに保存させたくない場合は、Cache-Control: no-storeを使います。
迷ったときの判断軸
no-cacheは「保存しない」ではなく、保存しても再利用前にサーバへ確認させる指定です。一方で、no-storeは応答内容をキャッシュに保持させない指定なので、機密情報を含むページなどで重要になります。
科目Bにつなげるために
科目Bでは、HTTPヘッダーを見て、保存を禁止しているのか、再検証を求めているのかを読み取る力が問われます。no-storeは保存禁止、no-cacheは再検証、privateは共有キャッシュ不可、publicは共有キャッシュ可能として整理しておきましょう。
Cache-Controlは、Webページや画像などをキャッシュするかどうかを指定するHTTPヘッダーです。キャッシュとは、一度取得したデータをWebブラウザやCDNなどに一時保存しておく仕組みです。キャッシュを使うと、同じデータを何度もサーバから取得しなくて済むため、表示速度の向上やサーバ負荷の軽減につながります。
一方で、更新が多いページや、ログイン後のマイページのように利用者ごとに内容が変わるページを誤ってキャッシュすると、古い情報や他人向けの情報が表示されるおそれがあります。そのため、Cache-Controlでキャッシュの扱いを適切に指定します。
たとえば、次の指定では「利用者のブラウザには保存してよいが、共有キャッシュには保存させない。保存期間は3,600秒」となります。
Cache-Control: private, max-age=3600
主な指定値は、次のとおりです。
Webサーバの応答をキャッシュさせたくない場合は、no-storeを指定します。
したがって、イが適切です。
❌他選択肢が誤りの理由ア:Cache-Control: no-cache
⇒キャッシュに保存させない、という点で違います。
no-cacheは保存自体を禁止するのではなく、再利用前にサーバへ再検証させる指定です。ウ:Cache-Control: private
⇒共有キャッシュには保存させず、利用者個人のブラウザなどには保存を許可する指定です。キャッシュへの保持を全面的に禁止するものではありません。
エ:Cache-Control: public
⇒共有キャッシュを含め、キャッシュに保存してよいことを示す指定です。保持させない指定ではありません。