-
Notifications
You must be signed in to change notification settings - Fork 4
/
651.txt
45 lines (34 loc) · 3.13 KB
/
651.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[2] [DFN[[RUBYB[共有キャッシュ]@en[shared cache]]]]は、
蓄積した[[応答]]が複数の[[利用者]]により再利用される[[キャッシュ]]です。
[[共有キャッシュ]]は普通 (必ずではありませんが) [[中間器]]の一部として動作しています。 [SRC[>>1]]
* 仕様書
[REFS[
- [1] [CITE@en[RFC 7234 - Hypertext Transfer Protocol (HTTP/1.1): Caching]] ([TIME[2014-09-11 10:19:59 +09:00]] 版) <https://tools.ietf.org/html/rfc7234#section-1>
]REFS]
* 処理モデル
[6] [[共有キャッシュ]]は、[[私的キャッシュ]]と[[蓄積]]できる[[応答]]の決定方法が異なります。
;; 詳しくは[[キャッシュ可能性]]を参照。
* 関連
[3] [[共有キャッシュ]]ではない[[キャッシュ]]を[[私的キャッシュ]]といいます。
* メモ
[4] [[共有キャッシュ]]は90年代にはしばしば利用されていましたし、
現在でも組織等のネットワークで利用されることがあり、
[[HTTP]] の仕様上も[[共有キャッシュ]]の存在が前提とされていますが、
実際には近年の [[Webサイト]]は必ずしも[[共有キャッシュ]]のもとで適切に動作する状態にはなっておらず、
[[Webアプリケーション]]で他の[[利用者]]の[[ログイン]]状態の画面が表示されてしまうおそれがあるなど、
[[セキュリティー]]的にも問題があると考えられています。
[5] 特定の[[Webサイト]]の提供者が自身の[[鯖]]側の設備の一部として ([[逆串]]として、
あるいはそれより[[アプリケーション鯖]]側の[[中間器]]として) [[共有キャッシュ]]機能を持つ[[キャッシュ鯖]]を使う構成は、
負荷分散その他の理由で現在でもよく用いられています。このような[[共有キャッシュ]]は[[Webサイト]]専用のものを用意する場合もあれば、
[[キャッシュ鯖]]を提供するサービスを利用する場合もあります。
いずれの場合でも当該[[アプリケーション]]の開発・運営者の管理下にありますから、
>>4 のような問題は起こりません。
;; [7] [[キャッシュ鯖]]と[[アプリケーション鯖]]の間は [[HTTP]]
で通信しますから、[[アプリケーション鯖]]は (その提供するサービスの成長や設計上の理由などにより)
[[キャッシュ鯖]]を挟んだり、除去したりするのが比較的簡単です。
[[アプリケーション鯖]]から[[キャッシュ鯖]]への[[キャッシュ]]に関する指示は、
[CODE(HTTP)@en[[[Cache-Control:]]]] など [[HTTP]]
の仕組みに基づき行うこともあれば、 [[URL]] の[[拡張子]]など独自の方法を使うこともあります。
[[アプリケーション鯖]]側から[[キャッシュ鯖]]に[[キャッシュ]]を更新させるためのダミーの[[要求]]を送信したり、
[[URL]] の [[query]] に[[キャッシュ]]を回避するための文字列を付与したりといった[[キャッシュ]]制御のための
[[hack]] が用いられることもよくあります。