Web技術の基礎

ブラウザが、前に受け取った画像を、そのときの応答に付いていたETagの値をIf-None-Matchヘッダに入れて、もう一度要求した。サーバ上の画像が変わっていないときの、サーバの応答として正しいものはどれか。

  1. A200 OK を返し、前に送ったときと同じ内容でも、画像の本文をもう一度すべて送る
  2. B304 Not Modified を返して本文を送らず、ブラウザは保存した画像を使う
  3. C404 Not Found を返し、ブラウザに保存してある古い画像を消させて取得し直させる
答えと解説を見る

正解:B. 304 Not Modified を返して本文を送らず、ブラウザは保存した画像を使う

ETagは、資源の特定の版を表す識別子です。ブラウザはETagをIf-None-Matchに入れて「この版から変わっていれば送ってほしい」という条件付きのリクエストを送り、変わっていなければサーバは本文のない 304 Not Modified を返します。これで、確認の1往復だけで済み、画像のデータを送り直さずに済みます。変わっていれば、200 OK で新しい本文と新しいETagを返します。Cache-Control の max-age で決めた期間の中は、ブラウザはこの確認もせずに保存したものを使います。

  • A. 画像が変わっていないので、本文を送り直す必要はありません。それを避けるのが条件付きのリクエストです。
  • B. 正しい。304は「変わっていないので、保存してあるものを使ってよい」ことを示します。
  • C. 404は資源が見つからないことを示すコードで、画像は存在しています。
この分野を解く 分野ページへ

Web技術の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Web技術の基礎のほかの問題

  1. HTTP/2とHTTP/3の説明として正しいものはどれか。
  2. RTTが40 msのWebサーバから、HTMLを1つと、そこから参照される画像を4つ、1つずつ順番に取得する。TCPの接続の確立に1往復、各リクエストと応答に1往復かかるとし、データの転送時間、サーバの処理時間、TLS、接続の切断は考えない。オブジェクトごとに新しいTCP接続を張る場合と、1つのTCP接続を使い回す持続的接続の場合とで、かかる時間の差はどれか。
  3. HTTPはステートレスなプロトコルである。このことと、Webサイトでログインした状態を保つ一般的な方法の説明として、正しいものはどれか。
  4. 上のヘッダで設定されたCookieについての説明として、正しいものはどれか。
  5. ブラウザのlocalStorageとCookieの違いとして、正しいものはどれか。