Google Chrome’s new cache change could boost performance
2023/12/02 BleepingComputer — Google Chrome の Back/Forward Cache (BFCache) 動作に、大きな変更が加えられた。それにより、ブラウザのキャッシュにページを保存を、Web マスターが行わないように指定した場合であっても、Web ページはキャッシュに保存されるようになる。
Google の web.dev サイトには、「BFCache はインメモリ・キャッシュであり、ユーザーがナビゲートしている間に、それらのページの完全なスナップショット (JavaScriptヒープを含む) を保存する。ページ全体がメモリ上にあるため、ユーザーが戻ろうと思えば、ブラウザは迅速かつ簡単にページを復元できる」と記されている。
サイトの管理者たちは、”Cache-control:” ヘッダーを用いて、Web ページをブラウザ・キャッシュに保存する方法を指定できる。1つ目のオプションは、”Cache-control: no-store” ヘッダーを使用することだ。それにより、Web サイトからの応答はブラウザーに保存されなくなる。
しかし、このヘッダーを使用した場合には、ブラウザは Web ページを bfcache に保存していないため、ブラウザの Back/Forward ボタンによる操作において、パフォーマンスの問題が生じる。
Google、bfcache の “no-store” ヘッダーを無視へ
Google からの提案は、HTTPS ページに “Cache-control: no-store” ヘッダーが存在する場合であっても、Web ページを BFCache に保存することである。このアプローチは、Back/Forward 操作のパフォーマンスを高め、より良いエクスペリエンスをもたらすだろう。
Google のエンジニアである Fergal Daly によると、機密データを含むページの復元を防ぐことが第一の目的ではないという。むしろ、もはやアクセスすべきではない機密データを取り込んだページの復元から、ユーザーを保護することに重点が置かれている。
クッキーに変更がなければ、ブラウザの HTTP リクエストとアクセスの判断は、一貫した状態を維持すると仮定される。したがって、そこでの課題は、アクセスの喪失をもたらすサーバ側の変更にある。
開いているページへの変更を反映するために、EventSource などの技術を使用しているサイトでは、これらの更新により、BFCache からの削除がトリガーされ、また、復元時に速やかにイベントが配信される。即時更新の仕組みがないサイトでは、ユーザーが古いデータにアクセスするリスクがあり、提案されている BFCache の動作による悪化の可能性が生じる。
Google の取り組みは、この機能をテスト・チャネルに展開し、影響を理解するために十分なデータを取得することで、一連の懸念に対応していくというものだ。
“Cache-control: no-store” ヘッダーにより、Web ページがブラウザ上にキャッシュされないと思い込んでいる Web 開発者との約束が、この変更により破られるという懸念の声も上がっている。
Opera の開発者である Daniel Bratell は、「私にとって、この変更は微妙な領域に触れているように思われる。したがって、現実の世界で、どのように作用するかのは定かではない。”Cache-control: no-store” が乱用されていて、あなたが挙げた数値が正論だとしても、ページが表示されなくなれば、その種のリソースは永遠に存在しなくなるという約束が、Web 開発者との間で交わされていたはずだ。その約束を、合理的に反故にできるのだろうか?」と指摘している。
しかし、Daly によると、このヘッダーが約束しているのは、Web ページを bfcache に保存しないだけではなく、通常のブラウザ・キャッシュにも保存しないことであるという。
Daly は「CCNS が、BFCaching を防ぐという明確な約束はない。CCNS ヘッダー、あるいは、一般的な全ての Cache-control 指示は、HTTP キャッシュの制御のためのものであり、明示的な約束は HTTP キャッシュに関するものだ。BFCache は、HTTP キャッシュの一部ではないため、開発者は CCNS ヘッダーについて、ページが BFCacheされないという約束だと解釈すべきではない」と説明している。
Google Chrome の開発者が考えていることは、BFCache が “Cache-control: no-store” 指示と、どのように相互作用するのかを再定義することなのだろう。それにより、ユーザーのセキュリティとプライバシーを損なうことなく、より応答性の高いブラウジング・エクスペリエンスを実現したいと考えているはずだ。
Web の振る舞いと、Web マスターとの約束、そしてパフォーマンスと利便性などなど、考えなければならないことが、たくさん残されているのですね。特に、いまの Google は、クッキーについて頭を悩ませている最中なので、この辺りを整理することが必要なのかもしれません。よろしければ、Cookie で検索も、ご利用ください。


You must be logged in to post a comment.