Web技術基礎
關於HTTP/2與HTTP/3的說明,下列何者正確?
- AHTTP/2能在一條TCP連線上平行處理多個請求,但封包遺失可能讓其他串流也跟著等待;HTTP/3以UDP上的QUIC減少了這個問題
- BHTTP/2使用與HTTP/1.1相同文字格式的訊息,並為每個請求平行建立新的TCP連線,以便同時接收多個資源
- CHTTP/3與HTTP/2一樣在TCP上運作,只改良了壓縮標頭的方式,封包遺失的影響與HTTP/2相同,也不使用UDP
查看答案與解析
正確答案:A. HTTP/2能在一條TCP連線上平行處理多個請求,但封包遺失可能讓其他串流也跟著等待;HTTP/3以UDP上的QUIC減少了這個問題
HTTP/1.1也能以持續連線(keep-alive)重複使用一條TCP連線,但在一條連線上只能依序一個一個接收回應,因此瀏覽器會平行建立多條連線。HTTP/2把訊息分成二進位的訊框,在一條TCP連線上多工傳送多個串流,平行地傳送。不過TCP會依序交付位元組串流,因此只要遺失1個封包,在重送到達之前,無關串流的資料也必須等待(隊頭阻塞)。HTTP/3使用在UDP上運作的QUIC,以串流為單位管理順序,因此遺失的影響只限於該串流。
- A. 正確。HTTP/2能以多工平行傳送,但TCP中的遺失會影響所有串流。HTTP/3以QUIC減少了這個問題。
- B. HTTP/2使用二進位訊框,在一條連線上多工傳送多個請求。重新建立連線反而會變慢。
- C. HTTP/3不使用TCP,而是使用在UDP上運作的QUIC。