Http、Https姿勢
阿新 • • 發佈:2018-11-14
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和記憶體資源。
參考連線: