4.3.25 · HinglishComputer Networks

HTTP - 2 — multiplexing, header compression (HPACK), server push

2,307 words10 min readRead in English

4.3.25 · Coding › Computer Networks


1. HTTP/2 kyun exist karta hai — HTTP/1.1 ka dard

HTTP/2 mein KYA badla:

  • Text → binary framing.
  • 6 connections → 1 connection, many streams.
  • Repeated headers → HPACK compression.
  • Pull-only → optional server push.

2. Framing layer (sab kuch ki neenv)

Figure — HTTP - 2 — multiplexing, header compression (HPACK), server push

3. Multiplexing — ek connection kaafi streams kyun aur kaise carry karta hai

Yeh kaise kaam karta hai step by step:

  1. Client stream 1 kholta hai: ek HEADERS frame bhejta hai (Stream ID = 1).
  2. Client stream 3 kholta hai: HEADERS bhejta hai (Stream ID = 3) — response 1 ka intezaar kiye bina.
  3. Server interleave karta hai: DATA(1), DATA(3), DATA(1), HEADERS(3 response)... kisi bhi order mein.
  4. Har side Stream ID se demultiplex karta hai.

4. HPACK — header compression (clever part)

Ek header field encode kaise hoti hai — teen cases:


5. Server Push — server maangne se pehle kaise bhejta hai

HOW:

  1. Server stream 1 pe GET /index.html receive karta hai.
  2. Server stream 1 pe PUSH_PROMISE bhejta hai /style.css ka promise stream 2 pe.
  3. Server stream 2 pe /style.css ke liye HEADERS+DATA bhejta hai.
  4. Jab parsing browser ko style.css ki zaroorat hoti hai, woh already cache mein hoti hai → koi round trip nahi.

6. Sab kuch milaake (forecast-then-verify)


Flashcards

HTTP/2 mein wire pe unit kya hai — HTTP/1.1 text lines ki jagah kya aaya?
Binary frames (9-byte header + payload); types jaise HEADERS, DATA, SETTINGS, PUSH_PROMISE.
HTTP/2 mein stream define karo.
Frames ka ek independent bidirectional sequence jo ek Stream ID share karta hai, ek single connection pe multiplexed.
Client streams ___ IDs use karte hain, server-pushed ___ IDs.
Odd; even (taaki woh kabhi collide na karein).
HTTP/2 kaun sa HOL blocking fix karta hai, aur kaun sa rehta hai?
Application/HTTP-layer HOL fix karta hai; TCP-layer HOL (ek lost packet saari streams rok deta hai) rehta hai — HTTP/3/QUIC se solve hota hai.
HPACK ke teen compression mechanisms ke naam batao.
Static table (61 entries), per-connection dynamic table, literals ka Huffman coding.
Headers ko sirf gzip kyun nahi kiya?
Attacker+secret data ka adaptive compression length ke zariye secrets leak karta hai (CRIME); HPACK indexing/static-Huffman isse resist karta hai.
Kaun sa frame server push announce karta hai aur woh kaun sa ID reserve karta hai?
PUSH_PROMISE; pushed response ke liye even Stream ID reserve karta hai.
HPACK encode index 1337 in a 5-bit prefix.
Prefix=31, phir 1337−31=1306 → bytes 31,154,10.
Server push browsers mein kyun deprecate hua?
Aksar already-cached resources push karta tha aur congestion window ke liye compete karta tha; 103 Early Hints + preload se replace hua.
Default max frame payload size aur kyun limited hai?
16384 bytes (); ek frame ko shared connection monopolize karne se rokta hai.

Recall Ek 12-saal ke bachche ko samjhao (Feynman)

Puraana internet: tum ek letter bhejte ho, reply ka wait karte ho, phir agla bhejte ho — slow, aur tum har baar envelope ka poora address block waste karte ho. HTTP/2 aisa hai jaise har letter ke chhote numbered cards kaat ke unhe ek hi tube mein ek saath dalte ho; doosri taraf number se sort karta hai. Yeh ek shortcut list bhi rakhta hai taaki repeated info ("from: you") sirf "#5" ban jaaye. Aur ek smart helper tumhe woh homework pages bhej sakta hai jo use pata hai tumhe aage chahiye honge, maangne se pehle. Ek hi dikkat: agar tube mein ek card kho jaaye, sab uske resent hone ka wait karte hain — HTTP/3 usse fix karne ke liye alag tubes banata hai.

Connections

  • HTTP-1.1 — predecessor; text protocol aur HOL blocking jise yeh fix karta hai.
  • HTTP-3-and-QUIC — TCP-layer HOL blocking hatane ke liye UDP pe move karta hai.
  • TCP — single shared connection & congestion window; remaining HOL ka source.
  • TLS — HTTP/2 practice mein hamesha TLS ke upar chalta hai (ALPN "h2" negotiate karta hai).
  • Huffman-Coding — HPACK ke andar literal string compression.
  • CRIME-and-BREACH-attacks — naive header gzip kyun unsafe hai.
  • Varint-encoding — wahi prefix-integer / 7-bit continuation idea.

Concept Map

causes

worked around by

wasteful, replaced by

built on

grouped into

carries

interleaved by

solves

compresses headers via

removes

adds

uses even Stream IDs

HTTP/1.1 pain

Head-of-line blocking

~6 parallel TCP connections

HTTP/2 binary framed protocol

Frame - 9-byte header

Stream - unique Stream ID

Message - HEADERS plus DATA

Multiplexing

HPACK header compression

Server push

Repeated headers