Compression Dictionary Transport Compression Dictionary Transport is a way of using a shared compression dictionary to dramatically reduce the transport size of HTTP responses. Overview Compression algorithms are used in HTTP to reduce the size of resources downloaded over the network, reducing bandwidth cost and the time taken to load pages. Lossless HTTP compression algorithms work by finding redundancy in the source: for example, places where text like the string "function" is repeated. They then include just one copy of the redundant string, and replace occurrences of it in the resource with references to that copy. Since the references are shorter than the string, the compressed version is shorter. NOTE: A previous attempt at this technology was called SDCH (Shared Dictionary Compression for HTTP) but was never widely supported and was removed in 2017. Compression Dictionary Transport is a better-specified and more robust implementation with broader industry consensus. For example, take this JavaScript: function a() { console.log("Hello World!"); } function b() { console.log("I am here"); } This could be compressed by replacing repeated strings with references to a previous location and number of characters, like this: function a() { console.log("Hello World!"); } [0:9]b[10:20]I am here[42:46] In this example, [0:9] refers to copying the 9 characters starting at character 0. Note that this is a simplified example to demonstrate the concept; the actual algorithms are more complex. Clients can then reverse the compression after download to recreate the original, uncompressed resource. Compression dictionaries Algorithms like Brotli compression and Zstandard compression achieve even greater efficiency by allowing the use of dictionaries of commonly encountered strings, so you don't need any copies of them in the compressed resource. These algorithms ship with a predefined default dictionary that is used when compressing HTTP responses. Compression Dictionary Transport builds on this by enabling you to provide your own dictionary, which is especially applicable to a particular set of resources. The compression algorithm can then reference it as a source of bytes when compressing and decompressing the resource. Assuming the references from the previous example are included in that common dictionary, this could be further reduced to this: [d0:9]a[d10:20]Hello World![d42:46] [d0:9]b[d10:20]I am here[d42:46] The dictionary can be a separate resource that is only required for Compression Dictionary Transport, or a resource that the website needs anyway. For example, suppose your website uses a JavaScript library. You would typically load a specific version of the library, and might include the version name in the name of the library, like