{
  "$schema": "https://datapackage.org/profiles/2.0/datapackage.json",
  "name": "http3-compression-polish-web-2026-09-24",
  "title": "HTTP/3 and compression on Polish homepages",
  "description": "Every .pl site in a pinned Tranco list whose homepage answered with HTML: whether its response advertises HTTP/3 in Alt-Svc, the Content-Encoding it was served with, the CDN and web server in its headers; each homepage recompressed with gzip, Brotli and Zstandard at several levels; and the phone TTFB p75 from the Chrome UX Report.",
  "version": "2026-09-24",
  "created": "2026-10-14T04:55:12.573Z",
  "homepage": "https://www.outofplace.space/blog/http3-compression-polish-web",
  "keywords": [
    "HTTP/3",
    "QUIC",
    "Alt-Svc",
    "Brotli",
    "Zstandard",
    "gzip",
    "compression",
    "Poland"
  ],
  "licenses": [
    {
      "name": "CC-BY-4.0",
      "path": "https://creativecommons.org/licenses/by/4.0/",
      "title": "Creative Commons Attribution 4.0"
    }
  ],
  "contributors": [
    {
      "title": "Outofplace Poland sp. z o.o.",
      "roles": [
        "creator"
      ],
      "path": "https://www.outofplace.space"
    }
  ],
  "sources": [
    {
      "title": "Tranco list Y8YYG (https://doi.org/10.14722/ndss.2019.23386)",
      "path": "https://tranco-list.eu/list/Y8YYG/1000000"
    },
    {
      "title": "Chrome UX Report (Google, CC BY 4.0)",
      "path": "https://developer.chrome.com/docs/crux"
    }
  ],
  "resources": [
    {
      "name": "sites",
      "path": "sites.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 1170894,
      "hash": "sha256:c54423aa40ecdaede7441533f1da57e84504261a7b8e0ef22c5e1e0c2917c1de",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "rank_tranco",
            "type": "integer",
            "description": "Rank in the pinned Tranco list (the highest-ranked domain per origin)."
          },
          {
            "name": "rank_sample",
            "type": "integer",
            "description": "Rank among the sample's origins."
          },
          {
            "name": "domain",
            "type": "string",
            "description": "The .pl domain from the Tranco list."
          },
          {
            "name": "origin",
            "type": "string",
            "description": "The homepage's final origin after redirects."
          },
          {
            "name": "https",
            "type": "boolean",
            "trueValues": [
              "1"
            ],
            "falseValues": [
              "0"
            ],
            "description": "The final origin is https."
          },
          {
            "name": "http_version",
            "type": "string",
            "description": "HTTP version of the census's own request (the crawler speaks HTTP/1.1)."
          },
          {
            "name": "tls_version",
            "type": "string",
            "description": "TLS version negotiated with the final origin; empty for http."
          },
          {
            "name": "alt_svc",
            "type": "boolean",
            "trueValues": [
              "1"
            ],
            "falseValues": [
              "0"
            ],
            "description": "The final response carried an Alt-Svc header."
          },
          {
            "name": "alt_svc_clear",
            "type": "boolean",
            "trueValues": [
              "1"
            ],
            "falseValues": [
              "0"
            ],
            "description": "Alt-Svc: clear."
          },
          {
            "name": "h3",
            "type": "string",
            "description": "h3 (Alt-Svc names the final HTTP/3 token), draft (only pre-RFC h3-NN or quic), other (an alternative that isn't HTTP/3), none."
          },
          {
            "name": "h3_ma",
            "type": "integer",
            "description": "The h3 entry's max-age in seconds; empty when absent."
          },
          {
            "name": "alt_protocols",
            "type": "list",
            "delimiter": "|",
            "itemType": "string",
            "description": "Every protocol id Alt-Svc names, lowercased."
          },
          {
            "name": "encoding",
            "type": "string",
            "description": "Content-Encoding of the homepage: zstd, br, gzip, deflate, identity (none) or other."
          },
          {
            "name": "vary_accept_encoding",
            "type": "boolean",
            "trueValues": [
              "1"
            ],
            "falseValues": [
              "0"
            ],
            "description": "Vary names Accept-Encoding (or *)."
          },
          {
            "name": "wire_bytes",
            "type": "integer",
            "description": "Body bytes as sent, before decoding."
          },
          {
            "name": "html_bytes",
            "type": "integer",
            "description": "Body bytes after decoding (capped at 1 MiB)."
          },
          {
            "name": "truncated",
            "type": "boolean",
            "trueValues": [
              "1"
            ],
            "falseValues": [
              "0"
            ],
            "description": "The body hit the census's 1 MiB cap."
          },
          {
            "name": "cdn",
            "type": "string",
            "description": "The strongest CDN in the response headers (scripts/research/_lib/signatures.mjs), or none."
          },
          {
            "name": "server",
            "type": "string",
            "description": "Web server family from the Server header (headers.mjs serverFamily), or none."
          },
          {
            "name": "is_shop",
            "type": "boolean",
            "trueValues": [
              "1"
            ],
            "falseValues": [
              "0"
            ],
            "description": "A shop by the e-commerce study's classifier (scripts/research/cwv-ecommerce/fingerprints.mjs)."
          },
          {
            "name": "platform",
            "type": "string",
            "description": "Shop platform by the same classifier; none for a shop on no recognised platform, empty for no shop."
          },
          {
            "name": "ttfb_ms",
            "type": "integer",
            "description": "The census's own time to first byte, from this crawler (not used in the analysis)."
          },
          {
            "name": "probed_at",
            "type": "datetime",
            "description": "UTC time of the census fetch."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "stacks",
      "path": "stacks.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 1675,
      "hash": "sha256:2a5c892127cff389e88554b0e44b14fc8983f9b281b0d3a23269a1f444a1529e",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "stack",
            "type": "string",
            "description": "cloudflare, other_cdn, or (no CDN in the headers) the web server family; other_server = groups under 30."
          },
          {
            "name": "sites",
            "type": "integer",
            "description": "Sites in the group."
          },
          {
            "name": "h3",
            "type": "integer",
            "description": "Sites advertising HTTP/3 (h3) in Alt-Svc."
          },
          {
            "name": "h3_share",
            "type": "number",
            "description": "Share of sites in the group advertising h3."
          },
          {
            "name": "h3_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "h3_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          },
          {
            "name": "modern",
            "type": "integer",
            "description": "Sites whose homepage came with br or zstd."
          },
          {
            "name": "modern_share",
            "type": "number",
            "description": "Share of sites in the group served br or zstd."
          },
          {
            "name": "modern_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "modern_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          },
          {
            "name": "compressed",
            "type": "integer",
            "description": "Sites whose homepage came compressed at all."
          },
          {
            "name": "compressed_share",
            "type": "number",
            "description": "Share of sites in the group served compressed."
          },
          {
            "name": "compressed_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "compressed_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          },
          {
            "name": "folded",
            "type": "list",
            "delimiter": "|",
            "itemType": "string",
            "description": "Groups folded into other_server."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "encodings",
      "path": "encodings.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 1840,
      "hash": "sha256:0b2770205b26c96d12df7c52c264cea887b1bcd393da47dee9576d8d9da16f37",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "stack",
            "type": "string",
            "description": "all, or a stack as in stacks.csv."
          },
          {
            "name": "encoding",
            "type": "string",
            "description": "zstd, br, gzip or none (identity, or the one unknown coding)."
          },
          {
            "name": "sites",
            "type": "integer",
            "description": "Sites served with this encoding."
          },
          {
            "name": "of",
            "type": "integer",
            "description": "Sites in the stack."
          },
          {
            "name": "share",
            "type": "number",
            "description": "Share of sites in the stack."
          },
          {
            "name": "share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "platforms",
      "path": "platforms.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 1085,
      "hash": "sha256:4cb08d728b62b3094d81285feac08247e3174e52e726b196a6da6908abeac6e6",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "platform",
            "type": "string",
            "description": "Shop platform by the e-commerce study's classifier; other_platform = platforms under 30 shops."
          },
          {
            "name": "sites",
            "type": "integer",
            "description": "Shops on the platform."
          },
          {
            "name": "h3_share",
            "type": "number",
            "description": "Share of shops advertising h3."
          },
          {
            "name": "h3_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "h3_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          },
          {
            "name": "modern_share",
            "type": "number",
            "description": "Share of shops served br or zstd."
          },
          {
            "name": "modern_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "modern_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          },
          {
            "name": "cloudflare_share",
            "type": "number",
            "description": "Share of shops behind Cloudflare."
          },
          {
            "name": "cloudflare_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "cloudflare_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          },
          {
            "name": "folded",
            "type": "list",
            "delimiter": "|",
            "itemType": "string",
            "description": "Platforms folded into other_platform."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "recompress",
      "path": "recompress.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 697126,
      "hash": "sha256:76d6e5ce05c8a46e74f6b4b95ee15c11e9d1781ce83544f971dfcea4d602b475",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "origin",
            "type": "string",
            "description": "The homepage's final origin."
          },
          {
            "name": "html_bytes",
            "type": "integer",
            "description": "Decoded HTML bytes, as the census received them."
          },
          {
            "name": "gzip-1",
            "type": "integer",
            "description": "Bytes after gzip at level 1 (Node zlib)."
          },
          {
            "name": "gzip-6",
            "type": "integer",
            "description": "Bytes after gzip at level 6 (Node zlib)."
          },
          {
            "name": "gzip-9",
            "type": "integer",
            "description": "Bytes after gzip at level 9 (Node zlib)."
          },
          {
            "name": "br-1",
            "type": "integer",
            "description": "Bytes after br at level 1 (Node zlib)."
          },
          {
            "name": "br-5",
            "type": "integer",
            "description": "Bytes after br at level 5 (Node zlib)."
          },
          {
            "name": "br-9",
            "type": "integer",
            "description": "Bytes after br at level 9 (Node zlib)."
          },
          {
            "name": "br-11",
            "type": "integer",
            "description": "Bytes after br at level 11 (Node zlib)."
          },
          {
            "name": "zstd-1",
            "type": "integer",
            "description": "Bytes after zstd at level 1 (Node zlib)."
          },
          {
            "name": "zstd-3",
            "type": "integer",
            "description": "Bytes after zstd at level 3 (Node zlib)."
          },
          {
            "name": "zstd-9",
            "type": "integer",
            "description": "Bytes after zstd at level 9 (Node zlib)."
          },
          {
            "name": "zstd-19",
            "type": "integer",
            "description": "Bytes after zstd at level 19 (Node zlib)."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "timings",
      "path": "timings.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 1173,
      "hash": "sha256:9e4efa0fc15caeb6b5a5d6700e70ef9b1361a75a1746a3863cea5548825e055d",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "codec",
            "type": "string",
            "description": "Codec and level."
          },
          {
            "name": "encoding",
            "type": "string",
            "description": "gzip, br or zstd."
          },
          {
            "name": "level",
            "type": "integer",
            "description": "Compression level."
          },
          {
            "name": "homepages",
            "type": "integer",
            "description": "Homepages in the seeded speed sample."
          },
          {
            "name": "bytes_in",
            "type": "integer",
            "description": "HTML bytes compressed."
          },
          {
            "name": "bytes_out",
            "type": "integer",
            "description": "Bytes out."
          },
          {
            "name": "ms",
            "type": "integer",
            "description": "Milliseconds, one homepage at a time on one thread."
          },
          {
            "name": "mb_per_s",
            "type": "number",
            "description": "bytes_in in MB (10^6) per second."
          },
          {
            "name": "seed",
            "type": "integer",
            "description": "Seed of the sample."
          },
          {
            "name": "machine",
            "type": "string",
            "description": "CPU, OS and Node version."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "codecs",
      "path": "codecs.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 753,
      "hash": "sha256:92d9847fe7fbf722b3af442b1a2d00b3bc4803bf00394ffafa590f12c08ba995",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "codec",
            "type": "string",
            "description": "Codec and level."
          },
          {
            "name": "encoding",
            "type": "string",
            "description": "gzip, br or zstd."
          },
          {
            "name": "level",
            "type": "integer",
            "description": "Compression level."
          },
          {
            "name": "homepages",
            "type": "integer",
            "description": "Homepages recompressed."
          },
          {
            "name": "median_bytes",
            "type": "integer",
            "description": "Median compressed size."
          },
          {
            "name": "median_saving",
            "type": "number",
            "description": "Median over homepages of 1 - bytes / gzip-6 bytes."
          },
          {
            "name": "median_saving_ci_low",
            "type": "number",
            "description": "Bootstrap 95% lower bound (2,000 resamples, seed 7)."
          },
          {
            "name": "median_saving_ci_high",
            "type": "number",
            "description": "Bootstrap 95% upper bound."
          },
          {
            "name": "total_saving",
            "type": "number",
            "description": "1 - total bytes / total gzip-6 bytes."
          },
          {
            "name": "mb_per_s",
            "type": "number",
            "description": "Speed on the sample in timings.csv."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "served",
      "path": "served.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 459,
      "hash": "sha256:3e1e49e4322c16836b952e093cf036f6e864e766ff2d5e47af20cb7d49857da3",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "encoding",
            "type": "string",
            "description": "The encoding the homepage was served with (none = identity)."
          },
          {
            "name": "homepages",
            "type": "integer",
            "description": "Homepages, not cut at 1 MiB."
          },
          {
            "name": "median_html_kb",
            "type": "number",
            "description": "Median decoded HTML, kB (1,000 bytes)."
          },
          {
            "name": "median_wire_kb",
            "type": "number",
            "description": "Median bytes as sent, kB."
          },
          {
            "name": "median_wire_over_gzip6",
            "type": "number",
            "description": "Median of bytes as sent / the same HTML at gzip 6."
          },
          {
            "name": "median_br5_saving",
            "type": "number",
            "description": "Median of 1 - Brotli 5 bytes / bytes as sent."
          },
          {
            "name": "median_br5_saving_kb",
            "type": "number",
            "description": "Median of bytes as sent - Brotli 5 bytes, kB."
          },
          {
            "name": "at_or_above_gzip1",
            "type": "integer",
            "description": "Homepages sent at least as large as gzip 1 makes them (within 0.5%)."
          },
          {
            "name": "at_or_above_gzip1_share",
            "type": "number",
            "description": "Share of homepages with this encoding."
          },
          {
            "name": "at_or_above_gzip1_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "at_or_above_gzip1_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "ttfb",
      "path": "ttfb.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 469,
      "hash": "sha256:4356cb302002d9ef1660ee71fcb4dd21a547255d8c88a9c8a0daf4d05e34664c",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "group",
            "type": "string",
            "description": "CDN and HTTP/3 group; litespeed and nginx_apache are without a CDN."
          },
          {
            "name": "origins",
            "type": "integer",
            "description": "Origins with a CrUX phone TTFB p75."
          },
          {
            "name": "median_ttfb_p75_ms",
            "type": "number",
            "description": "Median of the origins' TTFB p75, ms."
          },
          {
            "name": "median_ci_low",
            "type": "number",
            "description": "Bootstrap 95% lower bound."
          },
          {
            "name": "median_ci_high",
            "type": "number",
            "description": "Bootstrap 95% upper bound."
          },
          {
            "name": "good",
            "type": "integer",
            "description": "Origins with TTFB p75 at or under 800 ms."
          },
          {
            "name": "good_share",
            "type": "number",
            "description": "Share of origins in the group."
          },
          {
            "name": "good_share_ci_low",
            "type": "number",
            "description": "Wilson 95% lower bound."
          },
          {
            "name": "good_share_ci_high",
            "type": "number",
            "description": "Wilson 95% upper bound."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "summary",
      "path": "summary.json",
      "description": "Headline numbers and chart-ready rows derived from the CSVs.",
      "format": "json",
      "mediatype": "application/json",
      "encoding": "utf-8",
      "bytes": 50597,
      "hash": "sha256:d588226d1ed22d07481cebaaf89ef374f8fe07e38a7a2a4ee365d709e98e987a"
    }
  ]
}
