.gz: ten header bytes, a Deflate stream, eight trailer bytes
gzip wraps one Deflate stream in a header (optional name, time, OS) and a trailer (CRC-32 and length). Deflate itself is a run of blocks. Each block is stored, uses the fixed Huffman code or carries its own, and its tokens are either a literal byte or “copy N bytes from D back”. This page decodes every block with its own inflater, bit by bit, so you can see which words were copied and from where.
access.log.gz: 220 log lines compressed by your browser’s Deflate, wrapped with name + time here203.0.113.7 - - [03/Oct/2026:09:00:02 +0000] "GET /favicon.ico HTTP/1.1" 500 6956 "-" "curl/8.7.1"203.0.113.7 - - [03/Oct/2026:09:00:07 +0000] "GET /index.html HTTP/1.1" 200 26220 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:00:08 +0000] "GET /assets/app.css HTTP/1.1" 500 32172 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko/20100101 Firefox/131.0"203.0.113.7 - - [03/Oct/2026:09:00:17 +0000] "GET /assets/app.js HTTP/1.1" 200 13356 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:00:21 +0000] "GET / HTTP/1.1" 200 7204 "-" "curl/8.7.1"203.0.113.7 - - [03/Oct/2026:09:00:27 +0000] "GET / HTTP/1.1" 200 22700 "-" "curl/8.7.1"203.0.113.7 - - [03/Oct/2026:09:00:35 +0000] "GET /assets/app.css HTTP/1.1" 200 15660 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko/20100101 Firefox/131.0"203.0.113.7 - - [03/Oct/2026:09:00:41 +0000] "GET /api/orders?page=2 HTTP/1.1" 200 428 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:00:50 +0000] "GET /assets/app.js HTTP/1.1" 200 3372 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:00:51 +0000] "GET /favicon.ico HTTP/1.1" 200 30252 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko/20100101 Firefox/131.0"203.0.113.7 - - [03/Oct/2026:09:01:00 +0000] "GET /assets/app.js HTTP/1.1" 200 16492 "-" "curl/8.7.1"203.0.113.7 - - [03/Oct/2026:09:01:06 +0000] "GET /index.html HTTP/1.1" 200 20012 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:01:13 +0000] "GET /api/orders?page=2 HTTP/1.1" 500 2412 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:01:16 +0000] "GET /images/logo.svg HTTP/1.1" 200 26796 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:01:22 +0000] "GET /assets/app.css HTTP/1.1" 200 33708 "-" "curl/8.7.1"203.0.113.7 - - [03/Oct/2026:09:01:29 +0000] "GET / HTTP/1.1" 200 1580 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:01:35 +0000] "GET / HTTP/1.1" 200 38700 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15"203.0.113.7 - - [03/Oct/2026:09:01:37 +0000] "G…
The text is compressed once with CompressionStream, then wrapped as raw Deflate (as in ZIP and PNG), as zlib (as in PDF and HTTP “deflate”) and as gzip. gzip is written four ways: with a file name and the time, the same an hour later, and with no name and no time, which is what gzip -n writes. The compressed data never changes, but the hash does, which is why build tools that want byte-identical output pass -n.
input 180 B → Deflate body 113 B (62.8%) in dynamic block(s) · body sha256 69df488043a14822… in every row · your browser’s own gzip header: 1F 8B 08 00 00 00 00 00 00 0A (OS byte 10 = TOPS-20)