Why architecture matters here

HTTP/2 fails on aggressive reset attacks (rapid reset), poor LB support for long-lived connections, and misunderstanding HoL blocking. Architecture matters because framing + flow control + reset semantics matter for both perf and safety.

Advertisement

The architecture: every piece explained

The top strip is the wire. TCP connection TLS + ALPN. Streams multiplexed. Frames HEADERS + DATA. HPACK header compression.

The middle row is control. Priority + dependencies weights. Flow control per-stream + connection. Server push deprecated. HoL blocking TCP-level.

The lower rows are ops. Interop gRPC + REST + fetch. Observability. Ops — LB + reset limits.

HTTP/2 — streams + HPACK + priorities + server push + HoL blockone TCP connection, many streamsTCP connectionTLS + ALPNStreamsmultiplexedFramesHEADERS + DATAHPACKheader compressionPriority + dependenciesstream weightsFlow controlper-stream + connServer pushmostly deprecatedHoL blockingTCP-level onlyInteropgRPC + REST + fetchObservabilitystream metricsOps — LB + reset limits + upgrade to H3prioritizewindowavoidwatchwiremeasuremeasureoperateoperate
HTTP/2 stream multiplexing on a single TCP connection.
Advertisement

End-to-end flow

End-to-end: client opens H2 connection. Sends 10 parallel requests as streams. Server responses interleave. HPACK compresses repeated headers. Client cancels one stream with RST_STREAM. Rate-limited so RST storm can't DoS.