HTTP/1.X

HTTP/1.0

TCP 作為傳輸層

只能保持短暫的連接

規定瀏覽器與服務器只能保持短暫的連接,每次請求都建立一個 TCP連接,服務器完成請求處理後,立即斷開 TCP 連接不跟蹤也不紀錄

不支持斷點續傳

若經常性斷開,連接對效能會有一定的影響。

不支持長連接

若要建立長連接,需使用 Connection:Keep-Alive。

HTTP 1.1

TCP 作為傳輸層

引入長連接

最主要的改進就是引入長連接,默認開啟keep-Alive,並允許客戶端不用等待請求返回。

同域名、且同TCP連接,可以傳送多個請求/回應 (管道機制 pipeling),必須排隊,

減少了握手/斷開的消耗 (RTT延遲時間)。

可建立的連接數,仍須參照瀏覽器與伺服器設定。

每個網頁文件仍須使用各自的連接。

pipeling 返回要求是按順序的,若有部分請求未完成,仍會等待到回應為止。

新增狀態碼與Hosts標頭

且支持只發送Header,不需傳送 Body、斷點續傳與並行下載。

更多的 請求/回應 標頭

circle-info

引發問題:標頭肥大,增加了傳輸成本,TCP Header 阻塞(HOLB)。

提供了協商機制

(1) 身份驗證 、 (2) 狀態管理 、 (3) Cache 機制

傳輸標頭都是明文

無法驗證使用者身份的安全性問題。

circle-info

解決:HTTPS,建立在SSL/TLS上,將傳輸內容加密,屬於完全不同的連接方式。

N - SSL / TLSchevron-right

HTTP 預設埠號: 80 ; HTTPS 預設埠號: 443。

Last updated