# QUIC流與HTTP/3
HTTP/3針對QUIC設計,所以它可以利用QUIC流的所有好處。而HTTP/2不得不在TCP之上構建它的數據流和復用概念。
通過HTTP/3傳輸的HTTP請求使用一系列的數據流完成。
## HTTP/3幀(frame)
HTTP/3意味著建立QUIC數據流,并將一系列幀發送給對方。HTTP/3中的數據幀種類不多且固定(截至2018年12月18日有九種)。最關鍵的幀可能是:
- HEADERS:發送壓縮的HTTP頭部
- DATA:發送二進制數據內容
- GOAWAY:請關閉此連接
## HTTP請求
客戶端通過其發起的 雙向 QUIC流來發送HTTP請求。
一個請求包括一個HEADERS幀,之后可能有一兩種其他的幀:一系列的DATA幀,以及可能有一個作為末尾的HEADERS幀。
發送一個請求后,客戶端會關閉該數據流以進行發出。
## HTTP響應
服務器在雙向流上發回其HTTP響應。其中含有一個HEADERS幀,一系列DATA幀,末尾可能有一個HEADERS幀。
## QPACK頭部
HEADERS含有用QPACK算法壓縮的HTTP頭部。QPACK與HTTP/2中的HPACK([RFC 7541](https://httpwg.org/specs/rfc7541.html))類似,并針對亂序流做了相應修改。
QPACK本身在兩個端點間使用兩個額外的單向QUIC流,用于在兩個方向上傳遞動態表信息。