Use-As-Dictionary header

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The HTTP Use-As-Dictionary response header lists the matching criteria that the Compression Dictionary Transport dictionary can be used for, for future requests.

See the Compression Dictionary Transport guide for more information.

Syntax

http
Use-As-Dictionary: match="<url-pattern>"
Use-As-Dictionary: match-dest=("<destination1>" "<destination2>", …)
Use-As-Dictionary: id="<string-identifier>"
Use-As-Dictionary: type="raw"

// Multiple, in any order
Content-Encoding: match="<url-pattern>", match-dest=("<destination1>")

Directives

match

A string value containing a URL Pattern: only resources whose URLs match this pattern may use this resource as a dictionary. Regular expression capturing groups are not allowed, so URLPattern.hasRegExpGroups must be false.

match-dest

A space-separated list of strings, with each string in quotes and the whole value enclosed in parentheses, that provides a list of Fetch request destinations that requests must match if they are to use this dictionary.

id

A string value that specifies a server identifier for the dictionary. This ID value will then be added in the Dictionary-ID request header when the browser requests a resource which can use this dictionary.

type

A string value that describes the file format of the supplied dictionary. Currently only raw is supported (which is the default) so this is more for future compatibility.

Examples

Path prefix

http
Use-As-Dictionary: match="/product/*"

This says the dictionary is only to be used for URLs starting with /product/.

Versioned directories

http
Use-As-Dictionary: match="/app/*/main.js"

This uses a wildcard to match multiple versions of a file.

Destinations

http
Use-As-Dictionary: match="/product/*", match-dest=("document")

This uses match-dest to ensure the dictionary is only used for document requests so <script src="/product/js/app.js"> resource requests for example would not match.

http
Use-As-Dictionary: match="/product/*", match-dest=("document" "frame")

This would allow the dictionary to match both top-level documents and iframes.

Id

http
Use-As-Dictionary: match="/product/*", id="dictionary-12345"

When Use-As-Dictionary includes an id directive, as in this example, the id value will be included in the Dictionary-ID request header for resources that can use this dictionary. The resource request will also include the SHA-256 hash of the dictionary surrounded by colons in the Available-Dictionary header:

http
Accept-Encoding: gzip, br, zstd, dcb, dcz
Available-Dictionary: :pZGm1Av0IEBKARczz7exkNYsZb8LzaMrV7J32a2fFG4=:
Dictionary-ID: "dictionary-12345"

The server must still check the hash from the Available-Dictionary header — the Dictionary-ID is additional information for the server to identify the dictionary but does not replace the need for the Available-Dictionary header.

Type

http
Use-As-Dictionary: match="/product/*", type="raw"

Currently, only raw is supported (which is the default) so this is more for future compatibility.

Specifications

Specification
Compression Dictionary Transport
# name-use-as-dictionary

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Use-As-Dictionary
Experimental
Chrome – Full support
Chrome 130 (Release date: 2024-10-15)
footnote Full support
Edge – Full support
Edge 130 (Release date: 2024-10-17)
footnote Full support
Firefox – No support
Firefox
footnote
footnote See bug 1917982
Opera – Full support
Opera 115 (Release date: 2024-11-27)
footnote Full support
Safari – No support
Safari
footnote No support
Chrome Android – Full support
Chrome Android 130 (Release date: 2024-10-15)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote
footnote See bug 1917982
Opera Android – Full support
Opera Android 86 (Release date: 2024-12-02)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
Samsung Internet – Full support
Samsung Internet 28 (Release date: 2025-04-02)
footnote Full support
WebView Android – Full support
WebView Android 130 (Release date: 2024-10-15)
footnote Full support
WebView on iOS – No support
WebView on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

See also