レスポンスを取り直す代わりに、変更の有無だけをサーバーに確認する
ETagは、サーバーがレスポンスに付ける値です。値の中身に意味はなく、リソースのその時点のバージョンを識別します。
保存したレスポンスが古くなると、クライアントは、再検証のために、そのETagをIf-None-Matchヘッダーに入れて、サーバーに送り返します。ETagがまだ一致していれば、サーバーは、本文のない304 Not Modifiedを返し、クライアントは、保存済みのコピーを使い続けます。リソースが変わっていれば、サーバーは、新しい本文と新しいETagを付けて、通常の200を返します。
どちらの場合も、クライアントは、保存済みのコピーを使い続けるか、置き換えるかを判断できます。304では、クライアントがすでに持っている本文を、送り直す手間が省けます。
この課の目標
ETagを使った再検証のやり取りをたどれる。304になる場合と、新しい本文を伴う200になる場合を説明できる。
クライアントがIf-None-Match: "abc123"を送り、リソースの現在のETagもまだ"abc123"だった。サーバーは何を返す?