Web技術基礎

關於HTTP/2與HTTP/3的說明,下列何者正確?

  1. AHTTP/2能在一條TCP連線上平行處理多個請求,但封包遺失可能讓其他串流也跟著等待;HTTP/3以UDP上的QUIC減少了這個問題
  2. BHTTP/2使用與HTTP/1.1相同文字格式的訊息,並為每個請求平行建立新的TCP連線,以便同時接收多個資源
  3. 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。
練習這個領域 前往領域頁面

Web技術基礎的其他題目

  1. 從RTT為40 ms的Web伺服器,依序一個一個取得1個HTML以及它所參照的4張影像。假設建立TCP連線需要1個往返,每次請求與回應需要1個往返,並且不考慮資料的傳輸時間、伺服器的處理時間、TLS以及連線的中斷。每個物件都建立新TCP連線的情況,與重複使用一條TCP連線(持續連線)的情況,所需時間的差為下列何者?
  2. HTTP是無狀態的協定。關於這一點以及網站維持登入狀態的一般方法,下列說明何者正確?
  3. 關於以上方標頭設定的Cookie,下列說明何者正確?
  4. 瀏覽器的localStorage與Cookie的差異,下列何者正確?
  5. 在負載平衡器後方放置3台應用程式伺服器,依序把請求分配給各伺服器(循環配置)。已登入使用者的工作階段資訊,只保存在處理登入之伺服器的記憶體中。容易發生的問題與對策的組合,下列何者適當?