1. 程式人生 > >Http、Https姿勢

Http、Https姿勢

http--超文字傳輸協議,是tcp/ip網路傳輸控制協議七層模型的應用層,應用層還有類似的協議比如,FTP,SMTP,POP等等。

老的http版本就不說了,從http1.0開始,被廣泛應用,其中http1.0不支援長連結,每次http請求都必須經過如下過程:

建立連線--請求處理--斷開連線

http1.1在http1.0基礎上做了很多優化,包括一下改進:

1.支援長連線(預設開啟,多個請求共享連線)
2.支援斷點續傳
3.更多的快取控制策略
4.錯誤通知(在HTTP1.1中新增了24個錯誤狀態響應碼)
5.Host頭處理

     

http2.0相對於http1.1的改進:

1.二進位制格式解析
2.多路複用(連線共享)
3.header壓縮(進一步減少流量消耗,加快傳輸速度)
4.服務端推送(server push)

 

HTTP2.0的多路複用和HTTP1.X中的長連線複用有什麼區別?

  • HTTP/1.* 一次請求-響應,建立一個連線,用完關閉;每一個請求都要建立一個連線;

  • HTTP/1.1 Pipeling解決方式為,若干個請求排隊序列化單執行緒處理,後面的請求等待前面請求的返回才能獲得執行機會,一旦有某請求超時等,後續請求只能被阻塞,毫無辦法,也就是人們常說的線頭阻塞;

  • HTTP/2多個請求可同時在一個連線上並行執行。某個請求任務耗時嚴重,不會影響到其它連線的正常執行;具體如圖:

以上是http的版本變化和改進。

https則是在http的基礎上增加了 SSL/TLS的安全套接層,因為http是明文傳輸,容易被嗅探(窺視)和篡改(早期的運營商劫持web網頁,強行插入廣告),SSL/TLS保證了http的加密傳輸和資料的完整性,保證了安全,但隨著每次加密傳輸和解密,同樣也消耗更多的cpu和記憶體資源。

參考連線:

HTTP2.0 的總結 

HTTP1.0、HTTP1.1 和 HTTP2.0 的區別