ਤਿੰਨੇ ਇੱਕੋ HTTP semantics (methods, headers, status codes) ਪਹੁੰਚਾਉਂਦੇ ਹਨ ਪਰ ਇਸ ਵਿੱਚ ਵੱਖਰੇ ਹਨ ਕਿ ਇਹ byte ਨੂੰ wire 'ਤੇ ਕਿਵੇਂ ਹਿਲਾਉਂਦੇ ਹਨ — ਹਰ version ਪਿਛਲੇ ਦੀ ਇੱਕ bottleneck ਠੀਕ ਕਰਦਾ ਹੈ। ਵਿਸ਼ਾ head-of-line (HOL) blocking ਹਟਾਉਣਾ ਹੈ, ਜਿੱਥੇ ਇੱਕ ਫਸੀ request ਦੂਜਿਆਂ ਨੂੰ ਰੋਕ ਲੈਂਦੀ ਹੈ।
HTTP/1.1 over TCP one request at a time per connection
conn ──[req A]──[req B]──[req C]──▶ B waits for A (HOL blocking at HTTP layer)
HTTP/2 over TCP many streams multiplexed on ONE connection
conn ══[A|B|C interleaved]══▶ but a lost TCP packet stalls ALL streams
(HOL blocking moves down to TCP)
HTTP/3 over QUIC (UDP) independent streams, per-stream delivery
conn ══[A][B][C]══▶ a lost packet stalls only its own stream
