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.
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.
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.