/
120.txt
263 lines (185 loc) · 13 KB
/
120.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
[31] [DFN[[[AppCache]]]] は、[[クライアント側Webアプリケーション]]の関連ファイル一式を
[[Webブラウザー]]に[[キャッシュ]]するための仕組みです。この機能は2007年に
[[HTML5]] に追加され、その後各 [[Webブラウザー]]で実装されました。
* 代替
[41] 現在では [[AppCache]] は[[非推奨]]とされ、 [[Service Workers]]
を使うのが望ましいと考えられています。
[63]
かなり削除が進んできているようですね。
[TIME[2020-11-25T07:36:13.500Z]]
* 呼称
[25] 元々本機能全体を表す明確な用語はありませんでしたが、2011年頃から AppCache
と呼ばれるようになっています。
* 構成要素
[FIG(short list)[
- [[キャッシュマニフェスト]]
- [CODE(HTMLa)@en[[[manifest]]]] [[属性]]
- [CODE(DOMi)@en[[[ApplicationCache]]]]
- [[アプリケーションキャッシュ選択アルゴリズム]]
]FIG]
[37] [[AppCache]] の処理は [[navigate]]、[[fetch]]、[[構文解析器]]に組み込まれています。
* 歴史
[17] [CITE['''['''whatwg''']''' Offline Web Apps]] ([CODE[2007-09-08 07:21:56 +09:00]] 版) <http://www.mail-archive.com/whatwg@lists.whatwg.org/msg07556.html>
[18] [CITE[Latest proposal for offline web app API]] ([[Ian Hickson <ian@...>]] 著, [CODE[2007-09-21 10:36:07 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/11832>
[19] [CITE[Re: Google Gears and HTML5]] ([[Ian Hickson <ian@...>]] 著, [CODE[2007-10-09 07:03:00 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/11960>
[20] [CITE[HTML5: Offline Web Applications - Anne’s Weblog]] ([CODE[2007-10-07 02:38:50 +09:00]] 版) <http://annevankesteren.nl/2007/10/offline>
[50] [CITE@en-US[Offline Web Applications]] ([TIME[2008-06-07 01:42:50 +09:00]]) <https://www.w3.org/TR/2008/NOTE-offline-webapps-20080530/>
[21] [CITE[Caching offline Web applications]] ([[Ian Hickson <ian@...>]] 著, [TIME[2008-10-18 01:36:31 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/16043>
[16] [CITE[Re: Caching offline Web applications]] ([[Ian Hickson]] 著, [TIME[2008-11-18 04:05:08 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/16623>
[22] [CITE[Bug 23165 - Add support for application cache dynamic entries]] ([TIME[2009-01-19 12:18:06 +09:00]] 版) <https://bugs.webkit.org/show_bug.cgi?id=23165>
[23] [CITE@en[Dynamic entries in the Application Cache removed]] ([[Ian Hickson]] 著, [TIME[2009-01-22 10:22:47 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2009Jan/0287.html>
[24] [CITE@en-us[Firefox 3.1 for developers - MDC]] ([TIME[2009-02-08 18:25:06 +09:00]] 版) <https://developer.mozilla.org/ja/Firefox_3.1_for_developers#.E6.96.B0.E3.81.97.E3.81.8F.E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88.E3.81.95.E3.82.8C.E3.81.9F.E6.A9.9F.E8.83.BD_2>
>HTML5 Offline Specification のサポートが完了しました。
[1] [CITE['''['''whatwg''']''' Appcache feedback (various threads)]]
([TIME[2011-02-01 09:31:33 +09:00]] 版)
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-January/030136.html>
[2] [CITE@en[Web Applications 1.0 r5812 Change the suggested extension for appcache manifests from .manifest to .appcache to avoid clashing with Microsoft's unregistered application/manifest type]]
( ([TIME[2011-02-01 09:42:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5811&to=5812>
[3] [CITE['''['''whatwg''']''' AppCache-related e-mails]]
([TIME[2011-06-17 09:50:54 +09:00]] 版)
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-June/031964.html>
[4] [CITE[''''''[''''''whatwg'''''']'''''' AppCache-related e-mails]]
( ([TIME[2011-08-04 23:37:37 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-August/032771.html>
[51] [CITE@en[Offline web applications workshop - W3C Wiki]] ([TIME[2017-04-19 12:51:24 +09:00]]) <https://www.w3.org/wiki/Offline_web_applications_workshop>
[52] [CITE@en-US[Fixing Application Cache Community Group]] ([TIME[2017-04-19 20:16:56 +09:00]]) <https://www.w3.org/community/fixing-appcache/>
[5] [CITE@en[Web Applications 1.0 r6920 Remove vestiges of MIME type checking in appcache.Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=14701]]
( ([TIME[2012-01-26 08:27:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6919&to=6920>
[6] [CITE[''''''[''''''whatwg'''''']'''''' Can we change the base URL of fallback entries in appcache manifests? and other feedback]]
( ([TIME[2012-05-08 08:27:59 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-May/035712.html>
[7] [CITE@en[Web Applications 1.0 r7136 Add a feature to appcache to make it possible to mark a cache as preferring online resources than cached resources.]]
( ([TIME[2012-06-15 07:48:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7135&to=7136>
[8] [CITE[Bug 60493 – ApplicationCache - feature request for a way to override the fallback behavior]]
( ([TIME[2012-12-12 08:53:05 +09:00]] 版))
<https://bugs.webkit.org/show_bug.cgi?id=60493>
[10] [CITE[''''''[''''''whatwg'''''']'''''' The src-N proposal]]
( ([TIME[2013-11-08 20:17:35 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-November/041374.html>
[11] [CITE@en[Application Cache API ("AppCache") (Windows)]]
( ([TIME[2013-11-13 13:51:54 +09:00]] 版))
<http://msdn.microsoft.com/en-us/library/ie/hh673545(v=vs.85).aspx>
[12] [CITE@en[Bug 22702 – appcache: More detailed error information]]
( ([TIME[2014-02-14 13:09:51 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=22702>
[13] [CITE[IRC logs: freenode / #whatwg / 20140213]]
( ([TIME[2014-02-14 20:43:39 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20140213#l-467>
[14] [CITE@en[Re: ''''''[''''''whatwg'''''']'''''' AppCache Content-Type Security Considerations]]
( ([[Ian Hickson]] 著, [TIME[2014-05-13 08:17:31 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-whatwg-archive/2014May/0076.html>
[15] [CITE[IRC logs: freenode / #whatwg / 20140515]]
( ([TIME[2014-05-17 18:12:00 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20140515#l-987>
[28] [CITE[''''''[''''''whatwg'''''']'''''' Fwd: fallback section taking over for 4xx and 5xx responses while online]]
( ([TIME[2012-12-11 01:01:52 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-December/038292.html>
** ServiceWorker
[26] [[AppCache]] は広く実装されるに至りましたが、実用上の様々な問題から、
代替策が議論されるようになりました。
[REFS[
- [9] [CITE@en[Fixing appcache: a proposal to get us started]]
( ([[Jonas Sicking]] 著, [TIME[2013-03-26 16:02:58 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html>
]REFS]
[27] 2013年以後 [[ServiceWorker]] の開発が進められ、 [[AppCache]]
にかわるものとして期待されています。 [[AppCache]] への新機能の追加は保留状態となっています。
[29] [CITE@en[Web Applications 1.0 r8739 Attempt to mitigate the injection elevation attack on appcache, and describe the attack in detail]]
( ([TIME[2014-09-04 06:39:00 +09:00]] 版))
<http://html5.org/r/8739>
[30] [CITE@en[Web Applications 1.0 r8791 Make appcache requests have no referrer, since it's not clear what referrer to use.]]
( ([TIME[2014-09-20 02:52:00 +09:00]] 版))
<https://html5.org/r/8791>
[32] [CITE@en[Web Applications 1.0 r8823 Mention cookie-bombing in the appcache section]]
( ([TIME[2014-09-27 08:44:00 +09:00]] 版))
<https://html5.org/r/8823>
* 濫用
[REFS[
- [33] [CITE[HTML5における no-cache - Qiita]] ([TIME[2014-10-06 08:48:29 +09:00]] 版) <http://qiita.com/hidekuro/items/dea83ebdf73e2f2277ae>
]REFS]
[34] >>33 は [CODE(HTTP)@en[[[Cache-Control:]] [[no-cache]]]] の意味に
[[AppCache]] を濫用する方法を提案しています。
* 関連
[35] [[AppCache]] は [[HTTPキャッシュ]]や [[bfcache]] のような
[[Webブラウザー]]の他の[[キャッシュ]]とは異なる仕組みで、
[[著者]]が[[キャッシュ]]の対象範囲を明示的に指定できるものとなっています。
[36] [CITE@en[Necko/Cache/Offline - MozillaWiki]]
([TIME[2015-03-21 17:30:25 +09:00]] 版)
<https://wiki.mozilla.org/Necko/Cache/Offline>
[FIG(quote)[
[FIGCAPTION[
[38] [CITE[IRC logs: freenode / #whatwg / 20150816]]
([TIME[2015-08-17 21:04:32 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20150816>
]FIGCAPTION]
>
> # '''['''17:37''']''' <annevk> jojo-: the plan is to remove the appcache section and remove support from browsers
]FIG]
[39] [CITE@en[Deprecate <keygen> and appcache · whatwg/html@1b43806]]
([TIME[2015-08-29 01:06:44 +09:00]] 版)
<https://github.com/whatwg/html/commit/1b438067d84da2ee95988842cdd8fe2655444936>
[40] [CITE@en[Integrate Fetch into HTML · whatwg/html@7c5555a]]
([TIME[2015-09-18 19:42:55 +09:00]] 版)
<https://github.com/whatwg/html/commit/7c5555a16f2920c02244c10756bb2f1a11e87a22>
[42] [CITE@en[Fixes #265: Change whitelist/blacklist to safelist/blocklist · whatwg/html@cb3316d]]
([TIME[2015-10-27 12:37:03 +09:00]] 版)
<https://github.com/whatwg/html/commit/cb3316db45e369ba31d97c5ee2dcd9c353a3cb5d>
[FIG(quote)[
[FIGCAPTION[
[43] [CITE@en[Safari 4.0]]
([TIME[2015-11-04 22:54:07 +09:00]] 版)
<https://developer.apple.com/library/safari/releasenotes/General/WhatsNewInSafari/Articles/Safari_4_0.html#//apple_ref/doc/uid/TP40014305-CH4-SW16>
]FIGCAPTION]
> WebKit now supports the HTML5 offline web applications standard, allowing a web application to dictate which resources it needs, causing WebKit to download them and serve them locally from disk, as well as serve updates to the web application atomically. The Safari 4 Developer Preview does not yet support dynamic or opportunistically cached entries.
]FIG]
[44] [CITE@ja[Application Cache API が廃止予定となりました | Firefox サイト互換性情報]]
([TIME[2015-11-05 06:12:09 +09:00]] 版)
<https://www.fxsitecompat.com/ja/docs/2015/application-cache-api-has-been-deprecated/>
[45] [CITE@en[Rewrite global object initialization to delegate to ES · whatwg/html@cf0355d]]
([TIME[2015-12-16 19:23:12 +09:00]] 版)
<https://github.com/whatwg/html/commit/cf0355d7e0e229b98f7fbd51b8c7608010c787f5>
[46] [CITE@en[URLs are parsed and produce records · whatwg/html@30bc255]]
([TIME[2016-02-14 23:06:33 +09:00]] 版)
<https://github.com/whatwg/html/commit/30bc2557105ad62881ec9670f253febbc9761b44>
[47] [CITE[API Deprecations and Removals in Chrome 50 | Web Updates - Google Developers]]
( ([TIME[2016-05-19 01:39:55 +09:00]]))
<https://developers.google.com/web/updates/2016/03/chrome-50-deprecations?utm_source=feed&utm_medium=feed&utm_campaign=updates_feed>
[48] [CITE@en[Remove appcache from shared workers]]
([[domenic]]著, [TIME[2017-02-23 09:46:48 +09:00]])
<https://github.com/whatwg/html/commit/3f1c84d682da30be5c323a43dfcc8995aae2f731>
[49] [CITE@en[Appcache.]]
([[mikewest]]著, [TIME[2017-03-24 20:33:58 +09:00]])
<https://github.com/w3c/webappsec-clear-site-data/commit/889a514a2e241451168b789e927cfdb8384fa5cd>
[53] [CITE@en[460327 - remove opportunistic caching]]
([TIME[2017-05-11 16:08:46 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=460327>
[54] [CITE@en[82066 - AppCache - feature request for a way to override the fallback behavior - chromium - Monorail]]
([TIME[2018-01-02 16:11:37 +09:00]])
<https://bugs.chromium.org/p/chromium/issues/detail?id=82066>
[55] [CITE@en[181778 – AppCache: Log a Deprecation warning to the Console when AppCache is used]]
([TIME[2018-01-18 14:56:23 +09:00]])
<https://bugs.webkit.org/show_bug.cgi?id=181778>
[56] [CITE@en[Deprecations and removals in Chrome 67 | Web | Google Developers]]
([TIME[2018-05-02 23:51:04 +09:00]])
<https://developers.google.com/web/updates/2018/04/chrome-67-deps-rems>
[57] [CITE@en[Deprecations and removals in Chrome 69 | Web | Google Developers]]
([TIME[2018-09-15 02:56:15 +09:00]])
<https://developers.google.com/web/updates/2018/09/chrome-70-deps-rems>
[58] [CITE@en[Restrict application caches to secure contexts]]
([[annevk]]著, [TIME[2018-11-10 06:46:16 +09:00]])
<https://github.com/whatwg/html/commit/81344cc9f567bfafaed57805fd9cdf9f4a4237bf>
[59] [CITE@en[Restrict AppCache to secure contexts · Issue #3440 · whatwg/html]]
([TIME[2019-03-13 11:02:21 +09:00]])
<https://github.com/whatwg/html/issues/3440>
[60] [CITE@en[Integrate Fetch and "AppCache" or remove "AppCache" · Issue #151 · whatwg/html]]
([TIME[2019-03-13 11:03:44 +09:00]])
<https://github.com/whatwg/html/issues/151>
[61] [CITE@en[Restrict application caches to secure contexts by annevk · Pull Request #4149 · whatwg/html]]
([TIME[2019-03-13 11:04:49 +09:00]])
<https://github.com/whatwg/html/pull/4149>
[62] [CITE[AppCache Removal Plan - Google グループ]]
([TIME[2020-08-08 11:33:05 +09:00]])
<https://groups.google.com/a/chromium.org/forum/#!msg/blink-api-owners-discuss/ivh_NDBpjEs/7uA8iDWgAAAJ>