← Back to release summary

Pages with Cache-control: no-store and Back/Forward Cache

Category
Performance
Type
No developer-visible change
Status
In developer trial (Behind a flag) (Chrome In developer trial (Behind a flag))
Intent stage
Dev trials

Summary

A behavior change to safely store (and restore) pages in the Back/Forward Cache despite the presence of a "Cache-control: no-store" HTTP header. This would allow pages to enter BFCache and be restored as long as there are no changes to cookies or network requests that receive response with "Cache-control: no-store" HTTP header.

Motivation

Cache-control: no-store is an HTTP header to indicate that caches should refrain from storing the response sent by a server. Despite the name, Back/Forward Cache (or BFCache) is not a cache in the HTTP sense, and this behavior does not apply in theory. Indeed, BFCache does not store web resources (HTTP responses) for later use, like an HTTP cache would. Instead, a BFCache is freezing previous web pages in memory, and restoring them when a user navigates back, or forward. In practice, all the current BFCache implementations have been treating Cache-control: no-store as a signal to not keep the associated web pages. This has been going for a while, and the web ecosystem has built an expectation around this particular behavior. We have a proposal to make BFCache work despite the presence of Cache-control: no-store on HTTPS pages, thereby significantly increasing the fraction of instant back/forward navigations. More details to follow.

Standards & signals

Docs: https://docs.google.com/document/d/1qX1w6L6laTzpFTh78dvT7wwC1060Z3he2Azp4BAwsUE/edit?usp=sharing https://github.com/fergald/explainer-bfcache-ccns/blob/main/README.md

View on chromestatus.com