---
title: What Is HTTP/2? Multiplexing and Header Compression
description: Learn what is HTTP/2, including multiplexing, header compression, and HTTP/2 vs HTTP/1.1 for faster web performance.
image: https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Nov-02-2026-08-25-38-2122-PM.jpeg
---

[![BlazingCDN](https://blog.blazingcdn.com/hubfs/Logo/blog-logo-w.png)](https://blog.blazingcdn.com?hsLang=en-us)

[📘 Learn ▾](https://blog.blazingcdn.com/cdn-learn?hsLang=en-us)

[CDN Fundamentals](https://blog.blazingcdn.com/cdn-fundamentals?hsLang=en-us) [By Content Type](https://blog.blazingcdn.com/by-content-type?hsLang=en-us) [Advanced Concepts](https://blog.blazingcdn.com/advanced-concepts?hsLang=en-us) [📖 Glossary](https://blog.blazingcdn.com/glossary?hsLang=en-us)

[🎬 Video & Streaming ▾](https://blog.blazingcdn.com/video-streaming-cdn?hsLang=en-us)

[🔴 Live Streaming](https://blog.blazingcdn.com/live-streaming?hsLang=en-us) [📺 VOD & OTT](https://blog.blazingcdn.com/vod-ott?hsLang=en-us) [🎞️ Encoding & Players](https://blog.blazingcdn.com/encoding-players?hsLang=en-us) [🎧 Audio & Podcasts](https://blog.blazingcdn.com/audio-podcasts?hsLang=en-us) [💰 Bandwidth & Costs](https://blog.blazingcdn.com/bandwidth-costs?hsLang=en-us)

[🏗️ Infrastructure ▾](https://blog.blazingcdn.com/cdn-infrastructure?hsLang=en-us)

[🗄️ Storage & Origin](https://blog.blazingcdn.com/storage-origin?hsLang=en-us) [📦 Large File Delivery](https://blog.blazingcdn.com/large-file-delivery?hsLang=en-us) [💸 Cloud Costs & Egress](https://blog.blazingcdn.com/cloud-costs-egress?hsLang=en-us) [🌐 Networking & ISP](https://blog.blazingcdn.com/networking-isp?hsLang=en-us) [⚙️ DevOps & Cloud Infra](https://blog.blazingcdn.com/devops-cloud-infra?hsLang=en-us) [⚡ Web Performance](https://blog.blazingcdn.com/web-performance?hsLang=en-us)

[🏭 Industries ▾](https://blog.blazingcdn.com/cdn-industry-insights?hsLang=en-us)

[📺 Media & Broadcasting](https://blog.blazingcdn.com/media-broadcasting?hsLang=en-us) [💾 Software & SaaS](https://blog.blazingcdn.com/software-saas?hsLang=en-us) [📣 AdTech & Advertising](https://blog.blazingcdn.com/adtech-advertising?hsLang=en-us) [🎮 Gaming & Esports](https://blog.blazingcdn.com/gaming-esports?hsLang=en-us) [📱 Mobile Apps & Developers](https://blog.blazingcdn.com/mobile-apps-developers?hsLang=en-us) [🤖 AI & Machine Learning](https://blog.blazingcdn.com/ai-machine-learning?hsLang=en-us) [🏛️ Enterprise & Corporate](https://blog.blazingcdn.com/enterprise-corporate?hsLang=en-us) [📚 E-Learning & EdTech](https://blog.blazingcdn.com/e-learning-edtech?hsLang=en-us) [🏟️ Sports & Live Events](https://blog.blazingcdn.com/sports-live-events?hsLang=en-us)

[💰 Pricing & Compare ▾](https://blog.blazingcdn.com/cdn-pricing-and-cdn-costs?hsLang=en-us)

[Provider Pricing](https://blog.blazingcdn.com/provider-pricing?hsLang=en-us) [Cost Optimization](https://blog.blazingcdn.com/cost-optimization?hsLang=en-us) [Decision Support](https://blog.blazingcdn.com/decision-support?hsLang=en-us) [⚡ Compare](https://blog.blazingcdn.com/cdn-comparison?hsLang=en-us) [Provider Comparisons](https://blog.blazingcdn.com/provider-comparisons?hsLang=en-us) [Strategy Comparisons](https://blog.blazingcdn.com/strategy-comparisons?hsLang=en-us) [📊 Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?hsLang=en-us)

[🔒 Security ▾](https://blog.blazingcdn.com/cdn-security?hsLang=en-us)

[Attack Protection](https://blog.blazingcdn.com/attack-protection?hsLang=en-us) [Encryption & Access](https://blog.blazingcdn.com/encryption-access?hsLang=en-us) [Video & DRM Security](https://blog.blazingcdn.com/video-drm-security?hsLang=en-us)

[🛠️ Tools](https://blog.blazingcdn.com/cdn-tools?hsLang=en-us)

[Get Started](https://blazingcdn.com/sign-up-contact-form/)

[Infrastructure](https://blog.blazingcdn.com/en-us/tag/infrastructure) [Infrastructure - Networking & ISP](https://blog.blazingcdn.com/en-us/tag/infrastructure-networking-isp)

# What Is HTTP/2? Multiplexing and Header Compression

 Vadym Borovskyi  Nov 2, 2026, 9:27:23 PM

![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Nov-02-2026-08-25-38-2122-PM.jpeg)

HTTP/2 is the second major version of HTTP. It keeps HTTP/1.1 semantics (methods, status codes, headers) but replaces the text wire format with binary frames. It multiplexes many concurrent request streams over one TCP connection and compresses headers with HPACK, so a browser that opened up to 6 connections per origin under HTTP/1.1 needs only one.

HTTP/2 was standardized in RFC 7540 in 2015 and revised as RFC 9113 in 2022, with HPACK header compression defined separately in RFC 7541. Servers commonly advertise 100 concurrent streams per connection, so a page with 80 assets can request all of them in parallel on a single TLS connection instead of queuing behind six HTTP/1.1 sockets.

## **How HTTP/2 multiplexing works on one connection**

HTTP/2 multiplexing splits every request and response into frames tagged with a stream ID, then interleaves frames from many streams on one TCP connection. The receiver reassembles each stream by ID, so a slow response no longer blocks the ones queued behind it at the HTTP layer.

Every frame starts with a 9-byte header: length, type, flags and a 31-bit stream identifier. Client-initiated streams use odd IDs and server-initiated streams use even IDs. Stream 0 carries connection-level control such as SETTINGS, PING, GOAWAY and connection-wide WINDOW\_UPDATE. The default maximum frame payload is 16,384 bytes, raisable through SETTINGS\_MAX\_FRAME\_SIZE.

A request is a HEADERS frame (plus optional CONTINUATION frames) followed by DATA frames. A stream moves through idle, open, half-closed and closed states, and either side can cancel it instantly with RST\_STREAM without tearing down the connection. That cheap cancellation is also why the 2023 Rapid Reset attack (CVE-2023-44487) worked: clients opened and reset streams faster than servers could account for them, and every major server added reset-rate limits afterward.

Flow control is per stream and per connection, with an initial window of 65,535 bytes. That number matters more than most glossaries admit. On a 100 ms round trip, a stream stuck at the default window can carry at most 65,535 × 8 / 0.1 ≈ 5.2 Mb/s, regardless of link capacity. Production servers raise SETTINGS\_INITIAL\_WINDOW\_SIZE and send early WINDOW\_UPDATE frames precisely to avoid this ceiling.

## **HPACK header compression: why HTTP/2 does not use gzip for headers**

HPACK compresses headers using a 61-entry static table of common fields, a per-connection dynamic table (4,096 bytes by default), and Huffman coding for literals. Repeated headers shrink to an index of one or two bytes. It avoids general-purpose compression because SPDY's deflate-based scheme was exploitable by the 2012 CRIME attack.

The savings come from redundancy across requests, which is extreme on asset-heavy pages. A worked estimate: 80 requests carrying about 750 bytes of headers each (cookies, user agent, accept fields) total 60,000 bytes under HTTP/1.1. With HPACK, the first request pays roughly full price and later requests shrink to an estimated 20 to 40 bytes each for the changing path plus indexed repeats, around 750 + 79 × 40 ≈ 3,900 bytes. That is a reduction of about 94%, and it matters most on the upload side, where 60 KB of request headers would otherwise span several congestion windows.

The trade-off is state. Both endpoints must keep their dynamic tables in sync, and the encoder decides what to index. Sensitive values such as authorization tokens can be marked never-indexed so that they never enter the table.

## **Stream prioritization: from dependency trees to RFC 9218**

RFC 7540 let clients build a weighted dependency tree of streams, but implementations diverged so badly that RFC 9113 deprecated the scheme in 2022. The replacement, Extensible Priorities in RFC 9218, uses a simple priority header: urgency from 0 to 7 plus an incremental flag. Servers that ignore priorities still work correctly but may send a hero image before render-blocking CSS.

## **HTTP 2 vs HTTP 1.1: what actually changed**

HTTP 2 vs HTTP 1.1 comes down to wire format and connection use, not semantics. Applications see the same requests and responses, while the transport underneath changes in five ways:

- Binary framing replaces line-delimited text, which removes parsing ambiguity and request smuggling vectors tied to chunked encoding.
- One multiplexed connection replaces 6 parallel connections per origin, which means one TLS handshake and one congestion controller.
- HPACK compresses headers. HTTP/1.1 sends them uncompressed on every request.
- Pseudo-headers (:method, :path, :scheme, :authority, :status) replace the request line and Host header.
- Server push existed but is effectively dead: Chromium removed support in 2022, and 103 Early Hints took over its job.

## **Where HTTP/2 sits in the stack**

HTTP/2 runs over TCP, almost always inside TLS, and is negotiated through the TLS ALPN extension using the token "h2". Browsers only speak HTTP/2 over TLS. Cleartext "h2c" exists for backends and service meshes. RFC 9113 requires TLS 1.2 or newer and blocks weak cipher suites, so in practice HTTP/2 deployments run on TLS 1.3 or modern TLS 1.2.

**HTTP/2 vs. HTTP/3:** HTTP/3 (RFC 9114) keeps the same stream model but moves it onto QUIC over UDP and replaces HPACK with QPACK. The win is removing TCP head-of-line blocking: one lost packet stalls every HTTP/2 stream, while QUIC stalls only the affected stream.

**HTTP/2 vs. SPDY:** SPDY was Google's experimental predecessor that served as the starting draft for HTTP/2. Browsers dropped it by 2016, and HTTP/2 replaced its deflate header compression with HPACK.

**HTTP/2 vs. HTTP keep-alive:** Keep-alive reuses a connection serially, one response at a time. HTTP/1.1 pipelining tried to overlap requests but still required in-order responses, which is why browsers never enabled it by default.

## **What HTTP/2 changes for CDN delivery**

For a CDN, HTTP/2 changes the client-to-edge leg first. The edge terminates h2 from browsers and often fetches from the origin over HTTP/1.1 or h2 through a shield tier. Old HTTP/1.1 tricks become liabilities. Domain sharding splits traffic across connections and defeats both HPACK and congestion control, unless the shards share a certificate and IP so browsers can coalesce them. Heavy file concatenation also hurts cache granularity now that small requests are cheap.

For large objects, multiplexing buys little. A single 4 GB installer is one stream, and its throughput depends on TCP congestion control, the flow-control windows above, and edge disk I/O. BlazingCDN, for example, delivers over HTTP/2 with TLS 1.3 from NVMe SSD servers and does not support HTTP/3 by design, a combination aimed at large-file and segment delivery covered in its [**CDN protocol and feature set**](https://blazingcdn.com/features/).

## **How to check an HTTP/2 configuration**

In nginx 1.25.1 and newer, HTTP/2 is enabled with the standalone directive http2 set to on inside the server block. Older versions add the http2 parameter to the TLS listen line for port 443. Raise the per-stream window and concurrent stream limit for high-latency audiences, and keep a reset-rate limit enabled.

To verify, open browser developer tools and enable the Protocol column on the network tab. Each request should show "h2". From a terminal, use any HTTP client that reports the negotiated ALPN protocol and the server SETTINGS frame, then confirm the advertised max concurrent streams (usually 100 or more) and the initial window size.

## **Common HTTP/2 misconceptions**

- **"HTTP/2 removed head-of-line blocking."** It removed HTTP-layer blocking only. At 1 to 2% packet loss, one HTTP/2 connection can underperform six HTTP/1.1 connections, because a single loss stalls every stream.
- **"HTTP/2 makes big downloads faster."** One large file is one stream. Gains show up on many-request pages, not on bulk transfer.
- **"Enabling h2 at the edge means the origin speaks h2."** The two legs are negotiated independently.
- **"Server push is a reason to adopt HTTP/2."** Browsers no longer use it.

## **FAQ: HTTP/2 multiplexing, HPACK and HTTP/2 vs HTTP/1.1**

### Is HTTP/2 faster than HTTP/1.1?

HTTP/2 is usually faster for pages with dozens of small assets, because multiplexing and HPACK remove connection setup and repeated header bytes. For a single large download, HTTP/2 and HTTP/1.1 perform about the same. On lossy mobile links with 1 to 2% packet loss, one HTTP/2 connection can lag behind six HTTP/1.1 connections because of TCP head-of-line blocking.

### Does HTTP/2 require HTTPS?

Browsers only use HTTP/2 over TLS, negotiated through ALPN with the "h2" token, so public websites effectively need HTTPS. The specification also defines cleartext HTTP/2, called h2c, which is used between proxies, backends and service meshes. RFC 9113 requires TLS 1.2 or newer and prohibits weak cipher suites for HTTP/2 connections.

### Is HTTP/2 server push still supported?

HTTP/2 server push is still in the specification, but browsers no longer use it. Chromium removed support in 2022 because pushed resources often duplicated items already in cache and wasted bandwidth. The 103 Early Hints status code and preload headers now cover the same goal, letting the browser fetch critical assets early on its own terms.

### Should a CDN use HTTP/2 to connect to the origin?

HTTP/2 to the origin helps when the edge sends many concurrent small requests, because it cuts connections and header overhead. With an origin shield and request coalescing in front, origin request volume is already low, so HTTP/1.1 keep-alive pools often perform comparably. Test both, and watch the origin connection count and time to first byte.

## **Check your HTTP/2 flow-control windows this week**

Pick your three highest-latency user regions and look up the round-trip time for each. Divide your server's initial HTTP/2 window size by that RTT to find the per-stream throughput ceiling, as in the 65,535-byte, 100 ms example above (about 5.2 Mb/s). If the ceiling falls below your typical object bitrate or download target, raise the window, then compare p95 download time before and after on the same assets. Record the advertised max concurrent streams and the reset-rate limit as well, since both are easy to miss in edge configs. If you deliver large files or video segments over HTTP/2, BlazingCDN publishes its measured June 2026 results (Europe 27 ms and 1.12 Gb/s on a 100 MB HTTPS download) and a public test file on its [**HTTP/2 CDN performance metrics page**](https://blazingcdn.com/performance-metrics/), so you can run the same check against it.

Share: [f](https://www.facebook.com/sharer/sharer.php?u=https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression) [in](https://www.linkedin.com/sharing/share-offsite/?url=https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression) [𝕏](https://twitter.com/intent/tweet?url=https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression&text=) [✉](mailto:?subject=%3Cspan%20id="hs_cos_wrapper_name"%20class="hs_cos_wrapper%20hs_cos_wrapper_meta_field%20hs_cos_wrapper_type_text"%20style=""%20data-hs-cos-general-type="meta_field"%20data-hs-cos-type="text"%20%3EWhat%20Is%20HTTP/2?%20Multiplexing%20and%20Header%20Compression%3C/span%3E&body=https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression)

![BlazingCDN](https://blog.blazingcdn.com/hs-fs/hubfs/Logo/blog-logo-w.png?height=24&name=blog-logo-w.png)

*Heavy traffic.*  
Light bill.

The CDN for video and large traffic

Their monthly bill vs ours

- 20 TBFastly $2,087**$92.50**
- 50 TBCDN77 $990**$215**
- 200 TBCloudFront $11,965**$765**

Published list prices, Aug 2026

[Calculate your cost](https://blazingcdn.com/cdn-cost-calculator/?utm_source=blog&utm_medium=sidebar&utm_campaign=blog_sidebar&utm_content=compare_calc)

## Related posts

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Nov-04-2026-07-50-38-8948-AM.jpeg)](https://blog.blazingcdn.com/en-us/what-is-ipv6-ipv6-vs-ipv4-and-why-it-matters?hsLang=en-us)

Infrastructure

### [What Is IPv6? IPv6 vs IPv4 and Why It Matters](https://blog.blazingcdn.com/en-us/what-is-ipv6-ipv6-vs-ipv4-and-why-it-matters?hsLang=en-us)

The short answer to what is IPv6: Internet Protocol version 6 is the network-layer protocol that replaces IPv4's 32-bit ...

Nov 4, 2026, 8:52:25 AM [Read more](https://blog.blazingcdn.com/en-us/what-is-ipv6-ipv6-vs-ipv4-and-why-it-matters?hsLang=en-us)

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Nov-04-2026-05-45-38-9119-AM.jpeg)](https://blog.blazingcdn.com/en-us/what-is-a-network-port-ports-80-and-443-explained?hsLang=en-us)

Infrastructure

### [What Is a Network Port? Ports 80 and 443 Explained](https://blog.blazingcdn.com/en-us/what-is-a-network-port-ports-80-and-443-explained?hsLang=en-us)

The short answer to what is a port: a network port is a 16-bit number, from 0 to 65535, carried in every TCP and UDP ...

Nov 4, 2026, 6:47:39 AM [Read more](https://blog.blazingcdn.com/en-us/what-is-a-network-port-ports-80-and-443-explained?hsLang=en-us)

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Nov-04-2026-03-40-38-3827-AM.jpeg)](https://blog.blazingcdn.com/en-us/dns-propagation-why-dns-changes-take-time?hsLang=en-us)

Infrastructure

### [DNS Propagation: Why DNS Changes Take Time](https://blog.blazingcdn.com/en-us/dns-propagation-why-dns-changes-take-time?hsLang=en-us)

DNS propagation is the window after a record change during which recursive resolvers, operating system caches and ...

Nov 4, 2026, 4:42:52 AM [Read more](https://blog.blazingcdn.com/en-us/dns-propagation-why-dns-changes-take-time?hsLang=en-us)

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Nov-04-2026-01-35-38-5774-AM.jpeg)](https://blog.blazingcdn.com/en-us/dns-records-explained-a-aaaa-cname-txt-and-more?hsLang=en-us)

Infrastructure

### [DNS Records Explained: A, AAAA, CNAME, TXT and More](https://blog.blazingcdn.com/en-us/dns-records-explained-a-aaaa-cname-txt-and-more?hsLang=en-us)

DNS records are typed entries in an authoritative zone that map a name to data. An A record returns a 32-bit IPv4 ...

Nov 4, 2026, 2:37:32 AM [Read more](https://blog.blazingcdn.com/en-us/dns-records-explained-a-aaaa-cname-txt-and-more?hsLang=en-us)

[![BlazingCDN](https://blog.blazingcdn.com/hubfs/Logo/blog-logo-w.png)](https://blog.blazingcdn.com?hsLang=en-us)

[📘 Learn](https://blog.blazingcdn.com/cdn-learn?hsLang=en-us) [📊 Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?hsLang=en-us) [🎬 Video & Streaming](https://blog.blazingcdn.com/video-streaming-cdn?hsLang=en-us) [🏭 Industries](https://blog.blazingcdn.com/cdn-industry-insights?hsLang=en-us) [💰 Pricing & Costs](https://blog.blazingcdn.com/cdn-pricing-and-cdn-costs?hsLang=en-us) [⚡ Compare](https://blog.blazingcdn.com/cdn-comparison?hsLang=en-us) [🔒 Security](https://blog.blazingcdn.com/cdn-security?hsLang=en-us) [🛠️ Tools](https://blog.blazingcdn.com/cdn-tools?hsLang=en-us) [✍️ Publish with us](https://blog.blazingcdn.com/publish-with-us?hsLang=en-us)

in f 𝕏 ✉

 Copyright © BlazingCDN |. All rights reserved.

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blazingcdn.com/#organization",
  "@type" : "Organization",
  "description" : "High-volume CDN for video, live streaming, OTT/IPTV, software, games, SaaS and large-file delivery.",
  "logo" : {
    "@id" : "https://blazingcdn.com/#logo",
    "@type" : "ImageObject",
    "height" : 560,
    "url" : "https://blazingcdn.com/wp-content/uploads/2024/08/logo-560-560.png",
    "width" : 560
  },
  "name" : "BlazingCDN",
  "sameAs" : [ "https://www.linkedin.com/company/blazingcdn", "https://x.com/BlazingCdn", "https://www.reddit.com/r/BlazingCDN/", "https://www.wikidata.org/wiki/Q141711074" ],
  "url" : "https://blazingcdn.com/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/#website",
  "@type" : "WebSite",
  "inLanguage" : "en-US",
  "name" : "BlazingCDN Blog",
  "publisher" : {
    "@id" : "https://blazingcdn.com/#organization"
  },
  "url" : "https://blog.blazingcdn.com/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression#article",
  "@type" : "BlogPosting",
  "author" : {
    "@id" : "https://blog.blazingcdn.com/en-us/author/blazingcdn#person",
    "@type" : "Person",
    "description" : "Vadym Borovskyi is Chief Product and Marketing Officer at BlazingCDN, where he has led product strategy and growth since 2021. He has more than 11 years of experience in IT product management and B2B marketing. On this blog he writes about CDN pricing and egress costs, video and software delivery, cache configuration, and how teams evaluate and switch CDN providers. He is based in Warsaw, Poland.",
    "image" : "https://143144902.fs1.hubspotusercontent-eu1.net/hubfs/143144902/vadym-borovskyi.jpg",
    "jobTitle" : "Chief Product and Marketing Officer",
    "knowsAbout" : [ "Content Delivery Networks (CDN)", "CDN pricing", "Video streaming delivery", "Software and game distribution", "Cache optimization", "Product Management", "B2B Marketing", "Digital Marketing", "Pay Per Click Marketing (PPC)", "Google Ads", "Search Engine Marketing (SEM)", "Marketing Strategy", "Artificial Intelligence (AI)", "Cloud Management", "SaaS Development", "IT Consulting", "Computer Networking", "Project Management", "Startups" ],
    "name" : "Vadym Borovskyi",
    "sameAs" : [ "https://www.linkedin.com/in/axelt/" ],
    "url" : "https://blog.blazingcdn.com/en-us/author/blazingcdn",
    "worksFor" : {
      "@id" : "https://blazingcdn.com/#organization"
    }
  },
  "dateModified" : "2026-11-09T14:45:22Z",
  "datePublished" : "2026-11-02T20:27:23Z",
  "description" : "Learn what is HTTP/2, including multiplexing, header compression, and HTTP/2 vs HTTP/1.1 for faster web performance.",
  "headline" : "What Is HTTP/2? Multiplexing and Header Compression",
  "image" : "https://143144902.fs1.hubspotusercontent-eu1.net/hubfs/143144902/Gemini-Blog/image-Nov-02-2026-08-25-38-2122-PM.jpeg",
  "inLanguage" : "en-us",
  "isPartOf" : {
    "@id" : "https://blog.blazingcdn.com/#website"
  },
  "mainEntityOfPage" : {
    "@id" : "https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@id" : "https://blazingcdn.com/#organization"
  },
  "wordCount" : 1787
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression#breadcrumb",
  "@type" : "BreadcrumbList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : "https://blog.blazingcdn.com/en-us",
    "name" : "Blog",
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : "https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression",
    "name" : "What Is HTTP/2? Multiplexing and Header Compression",
    "position" : 2
  } ]
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/what-is-http-2-multiplexing-and-header-compression#faq",
  "@type" : "FAQPage",
  "mainEntity" : [ {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "HTTP/2 is usually faster for pages with dozens of small assets, because multiplexing and HPACK remove connection setup and repeated header bytes. For a single large download, HTTP/2 and HTTP/1.1 perform about the same. On lossy mobile links with 1 to 2% packet loss, one HTTP/2 connection can lag behind six HTTP/1.1 connections because of TCP head-of-line blocking."
    },
    "name" : "Is HTTP/2 faster than HTTP/1.1?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Browsers only use HTTP/2 over TLS, negotiated through ALPN with the \"h2\" token, so public websites effectively need HTTPS. The specification also defines cleartext HTTP/2, called h2c, which is used between proxies, backends and service meshes. RFC 9113 requires TLS 1.2 or newer and prohibits weak cipher suites for HTTP/2 connections."
    },
    "name" : "Does HTTP/2 require HTTPS?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "HTTP/2 server push is still in the specification, but browsers no longer use it. Chromium removed support in 2022 because pushed resources often duplicated items already in cache and wasted bandwidth. The 103 Early Hints status code and preload headers now cover the same goal, letting the browser fetch critical assets early on its own terms."
    },
    "name" : "Is HTTP/2 server push still supported?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "HTTP/2 to the origin helps when the edge sends many concurrent small requests, because it cuts connections and header overhead. With an origin shield and request coalescing in front, origin request volume is already low, so HTTP/1.1 keep-alive pools often perform comparably. Test both, and watch the origin connection count and time to first byte."
    },
    "name" : "Should a CDN use HTTP/2 to connect to the origin?"
  } ]
}
```