Intent to Prototype: No-Vary-Search support in navigation prefetch cache

197 views
Skip to first unread message

Liviu Tinta

unread,
Oct 12, 2022, 12:19:17 PM10/12/22
to blink-dev

Contact emails

dom...@chromium.orgjbr...@chromium.orgliviu...@chromium.org

Explainer

https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md

Specification

To be started soon.

Summary

Enables prefetch to match even if URL query parameters change. The No-Vary-Search HTTP response header declares that some or all parts of a URL's query can be ignored for cache matching purposes. It can declare that the order of query parameter keys should not cause cache misses, that specific query parameters should not cause cache misses or that only certain known query parameters should cause cache misses. It could apply to multiple caches, but this entry refers to support for prefetch cache.



Blink component

Internals>Preload

Motivation

One of the most important cache keys for web resources is the resource's URL. However, sometimes multiple URLs can represent the same resource. This leads to caches not always being as helpful as they could be: if the browser has the resource cached under one URL, but the resource is then requested under another, the cached version will be ignored. Via a new HTTP header, No-Vary-Search, resources can declare that some or all parts of the query can be ignored for cache matching purposes.



Initial public proposal

https://github.com/WICG/nav-speculation/blob/main/no-vary-search.md

TAG review

Not yet required

TAG review status

Pending

Risks



Interoperability and Compatibility



Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?



Debuggability

Will be possible to debug on the new preloading DevTools tab.

Is this feature fully tested by web-platform-tests?

The plan is to build WPTs during the implementation.


Flag name

PrefetchNoVarySearch

Requires code in //chrome?

False

Estimated milestones

Expect to land the code in M110 and send Intent to Experiment.



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5071247189213184

Reply all
Reply to author
Forward
0 new messages