回答編集履歴

2

キャッシュ制御例の改訂

2019/12/09 08:52

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

test CHANGED
@@ -16,17 +16,23 @@
16
16
 
17
17
  2. サーバーは、応答ヘッダ ``ETag: "token"`` を含めて``200 OK``を応答。
18
18
 
19
+ (ブラウザは応答内容をトークンを含めて覚える:キャッシュする)
20
+
19
21
  3. ブラウザからサーバーへの(2回目以降の)要求するとき、
20
22
 
21
23
  以前、知った``"token"``を 要求ヘッダ ``If-None-Match: "token"`` に含めて要求
22
24
 
23
25
  (「__もし、違っていたら更新情報を応答して!以前のは覚えてる__」という意味) 。
24
26
 
25
- 3. サーバーは、``"token"`` から、2回以上アクセスしてきたブラウザだと判断して新旧を比較。
27
+ 4. サーバーは、``"token"`` から、2回以上アクセスしてきたブラウザだと判断して新旧を比較。
26
28
 
27
29
  内容が変わってないなら、エラー ``304 Not Modified``(覚えているのを使ってね)を応答。
28
30
 
29
- 変わっていると、応答ヘッダに ``ETag: "token2"`` (新しいトークン)を含め、更新内容 を``200 OK``で応答。
31
+ 変わっていると、2.と同様に応答ヘッダに ``ETag: "token2"`` (新しいトークン)を含め、更新内容 を``200 OK``で応答。(ブラウザは応答内容を新しいトークンを含めて覚えなおす:キャッシュ更新する)
32
+
33
+
34
+
35
+ これの繰り返しになります。
30
36
 
31
37
 
32
38
 
@@ -49,3 +55,9 @@
49
55
  追記)
50
56
 
51
57
  サーバー側プログラムを弄るときに「キャッシュ制御という方法がある」と覚えておけばいいと思います。
58
+
59
+
60
+
61
+ ブラウザ側だけで実装する仕様は無くはないのです(アプリケーションキャッシュ)。
62
+
63
+ が、仕様もWD(作業草案)のまま放置され、実装されている内容は、キャッシュの削除が厄介で、とても「安全」とは言えない状態です。このため、ブラウザ側だけで**安全に更新状態を判断する手段は無い**と考えてください。

1

誤字の修正と追記

2019/12/09 08:52

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  (「__もし、違っていたら更新情報を応答して!以前のは覚えてる__」という意味) 。
24
24
 
25
- 3. サーバーは、``"token"`` から、2回以上アクセスしてきたブラウザだと判断して新旧を比較。
25
+ 3. サーバーは、``"token"`` から、2回以上アクセスしてきたブラウザだと判断して新旧を比較。
26
26
 
27
27
  内容が変わってないなら、エラー ``304 Not Modified``(覚えているのを使ってね)を応答。
28
28
 
@@ -43,3 +43,9 @@
43
43
  示されたコードは、5秒毎に強制的に再リクエストする実装ですから。
44
44
 
45
45
  閲覧者にとっても、5秒後にスクロールがリセットされてしまうページになっています。
46
+
47
+
48
+
49
+ 追記)
50
+
51
+ サーバー側プログラムを弄るときに「キャッシュ制御という方法がある」と覚えておけばいいと思います。