http1.0 http1.1 http2 https

Http1.0

基于請求request和響應response, 每次請求都要經過基于TCP三次握手建立連接和四次揮手斷開連接,在請求頭里增加Connection: keep-alive,可以做到連接復用。


Http1.1

在1.0的基礎上默認就是連接復用的,支持斷點續傳,支持pipelining管道技術,即客戶端可以同時發送多個請求。但是同一個TCP連接里面,所有的數據通信是按次序進行的。服務器只有處理完一個請求,才會接著處理下一個請求。如果前面的處理特別慢,后面就會有許多請求排隊等著。這將導致“隊頭堵塞”。

服務端主動推送可以通過http輪詢的方式,即客戶端發起連接時,服務端如果沒有消息返回也hold住些連接,如有消息推送給客戶端即可通過該連接返回, 當超過協定的時間后仍然沒有消息返回時,則返回空消息給客戶端,客戶端收到空消息則斷開連接,再次重新建立新的連接。


Http2

1. 二進制分幀:HTTP/1.1的頭信息是文本(ASCII編碼),數據體可以是文本,也可以是二進制;HTTP/2 頭信息和數據體都是二進制,統稱為“幀”:頭信息幀和數據幀;

2. 多路復用(雙工通信):通過單一的 HTTP/2 連接發起多重的請求-響應消息,即在一個連接里,客戶端和瀏覽器都可以同時發送多個請求和響應,而不用按照順序一一對應,這樣避免了“隊頭堵塞”。HTTP/2 把 HTTP 協議通信的基本單位縮小為一個一個的幀,這些幀對應著邏輯流中的消息。并行地在同一個 TCP 連接上雙向交換消息。

3. 數據流:因為 HTTP/2 的數據包是不按順序發送的,同一個連接里面連續的數據包,可能屬于不同的回應。因此,必須要對數據包做標記,指出它屬于哪個回應。HTTP/2 將每個請求或回應的所有數據包,稱為一個數據流(stream)。每個數據流都有一個獨一無二的編號。數據包發送的時候,都必須標記數據流ID,用來區分它屬于哪個數據流。另外還規定,客戶端發出的數據流,ID一律為奇數,服務器發出的,ID為偶數。數據流發送到一半的時候,客戶端和服務器都可以發送信號(RST_STREAM幀),取消這個數據流。HTTP/1.1取消數據流的唯一方法,就是關閉TCP連接。這就是說,HTTP/2 可以取消某一次請求,同時保證TCP連接還打開著,可以被其他請求使用。客戶端還可以指定數據流的優先級。優先級越高,服務器就會越早回應。

4. 首部壓縮:HTTP 協議不帶有狀態,每次請求都必須附上所有信息。所以,請求的很多字段都是重復的,一模一樣的內容,每次請求都必須附帶,這會浪費很多帶寬,也影響速度。HTTP/2 對這一點做了優化,引入了頭信息壓縮機制(header compression)。一方面,頭信息壓縮后再發送(SPDY 使用的是通用的DEFLATE 算法,而 HTTP/2 則使用了專門為首部壓縮而設計的 HPACK 算法)。另一方面,客戶端和服務器同時維護一張頭信息表,所有字段都會存入這個表,生成一個索引號,以后就不發送同樣字段了,只發送索引號,這樣就提高速度了。

5. 服務端推送:HTTP/2 允許服務器未經請求,主動向客戶端發送資源,這叫做服務器推送(server push)。常見場景是客戶端請求一個網頁,這個網頁里面包含很多靜態資源。正常情況下,客戶端必須收到網頁后,解析HTML源碼,發現有靜態資源,再發出靜態資源請求。其實,服務器可以預期到客戶端請求網頁后,很可能會再請求靜態資源,所以就主動把這些靜態資源隨著網頁一起發給客戶端了。



Https

HTTPS可以說是安全版的HTTP,HTTPS基于安全SSL/TLS(安全套接層Secure Sockets Layer/安全傳輸層Transport Layer Security)層,即在傳統的HTTP和TCP之間加了一層用于加密解密的SSL/TLS層。HTTP默認使用80端口,HTTPS默認使用443端口。


單向加密:

單向加密又稱為不可逆加密算法,在加密過程中不使用密鑰,明文由系統加密處理成密文,密文無法解密。一般適合于驗證,在驗證過程中,重新輸入明文,并經過同樣的加密算法處理,得到相同的密文并被系統重新認證。廣泛使用于口令加密。


對稱加密:客戶端和服務端使用相同的密鑰加行加密后傳輸,然后使用相同的密鑰解密。但是問題是密鑰怎么傳輸?

非對稱加密:由一對公鑰和私鑰組成。可以用公鑰加密,再用私鑰解密,這種情形一般用于公鑰加密;也可以用私鑰加密,用公鑰解密,常用于數字簽名,因此非對稱加密的主要功能就是加密和數字簽名


引入第三方機構解決第一次密鑰傳輸問題

服務器向第三方機構申請證書

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容