http協議各版本區別詳解

HTTP(Hypertext Transfer Protocol )超文本傳輸協議,是一個應用協議用於分佈式協作,多媒體信息統計。HTTP是Word Wide Web的通信基礎,其中html文檔指向用戶可以輕鬆發文其他資源的超鏈接,例如,通過單擊鼠標或者Web瀏覽器中點擊屏幕.

HTTP協議的發展歷程

HTTP/0.9
http協議的第一個版本僅適用於數據信息的簡介交換,即僅文本傳輸,只接受GET這一種請求方式,且不支持請求頭,由於不支持POST方式,大多數敏感信息無法交換,至此客戶端無法向服務器傳遞過多信息。
缺點: 信息種類過於單一,無法滿足需求,串行處理

HTTP/1.0
第一個在通訊中指定版本號的HTTP協議版本,常用於代理服務器,成爲了面向事務的應用層協議,;支持cache, MIME, method該協議需要每請求一次響應建立並拆除一次連接,1.0引入了POST和HEAD命令,相對於一版本在一定程度上保障的數據的傳輸安全,是一個典型的串行連接事務。
缺點: 串行處理,效率低下

HTTP/1.1
引入持久連接機制並被默認採用,且更好的配合代理服務器工作,還支持管道方式同一連接下同時發送多個請求,以降低線路負載,提高傳輸速度,新增方法: PUT、PATCH、OPTIONS、DELETE
缺點: 同一TCP連接裏,所有通信按次序進行,服務器只能順序處理迴應,如果前面處理過慢,會有許多請求排隊,造成隊頭阻塞(Head-of-line blocking)

HTTP/2.0
頭信息和數據體都是二進制,稱爲頭信息幀和數據幀
複用TCP連接,在一個連接裏,客戶端和瀏覽器都可以同時發送多個請求或迴應,且不用按順序一一對應,避免了“隊頭堵塞“,此雙向的實時通信稱爲多工(Multiplexing)
引入頭信息壓縮機制(header compression),頭信息使用gzip或compress壓縮後再發送;客戶端和服務器同時維護一張頭信息表,所有字段都會存入這個表,生成一個索引號,不發送同樣字段,只發送索引號,提高速度
HTTP/2 允許服務器未經請求,主動向客戶端發送資源,即服務器推送(server push)

補充:
HTTP協議是無狀態協議,服務器無法追蹤來源

解決方法
cookie 客戶端存放
session 服務器存放

HTTP事務: 一次訪問的過程

請求: request
響應: response

HTTP2.0和SPDY的關聯

HTTP2.0是SPDY的升級版
HTTP2.0 支持明文 HTTP 傳輸,而 SPDY 強制使用 HTTPS
HTTP2.0 消息頭的壓縮算法採用 HPACK,而非 SPDY 採用的 DEFLATE

HTTP協議連接簡要對比圖
在這裏插入圖片描述

發佈了56 篇原創文章 · 獲贊 11 · 訪問量 3039
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章