歷史回顧:html
【網絡】HTTP + 通訊加密 + 認證機制 + 保護報文完整型 = HTTPS算法
簡述下TCP的三次握手?瀏覽器
我:咱們能夠談戀愛嗎? 她:能夠的。 我: 那咱們談戀愛吧。緩存
具體是雙方協商,最終由服務器決定安全
在 network
中 表格中的 Protocol
,現代網站可能使用多個http版本。服務器
隊尾阻塞問題只要傳輸層是TCP協議,就不會獲得根本上的解決,http/2 利用流的機制很大程度上緩解了這個問題,http/3 傳輸層換了 UDP 才完全解決了這個問題。網絡
創建一個TCP鏈接多個文件傳輸,而且不限制文件個數。實現了資源的並行傳輸。數據結構
HTTP/2 在協議層添加了一個二進制分幀層用來實現多路複用。二進制分幀層把文件分紅幀,對幀進行編號傳輸,到服務器端再組裝,由服務器來決定要先返回什麼。tcp
一個tcp鏈接能夠用來處理多個http請求,當前的請求阻塞了,後面的請求也要等待,這是http請求阻塞。post
一個請求了index.html,這個文件比較大,分了幾回傳回來 1,2,3,4,5,若是是 2,3,4,5數據包傳回來了,而 1 沒傳回來,那麼TCP也不會把這個數據交到上層,還得等 1 回來,而後才能進行拼接,上傳到上層,這是TCP數據包阻塞。
是的,由於二進制分幀層是添加到http/2協議裏了。
http/2 的慢啓動對傳輸效率的影響微乎其微,影響傳輸效率的主要是文件的大小。多張圖片大小加在一塊兒,都沒有合併一張雪碧圖大,那雪碧圖反而讓傳輸更慢了。資源文件合併也是一樣的道理。
http/2一個域名,理想狀況下使用一個TCP長鏈接,慢啓動只須要啓動一次;http1.1一個域名創建多個TCP鏈接,創建幾個TCP就會有幾回慢啓動。
TLS協議,用來建立加密通道須要的協商和認證。應用層(HTTP、FTP)協議傳送的數據經過TSL協議時會被加密,從而保證通訊的私密性。
TCP是傳輸層協議,TLS是傳輸層安全協議。HTTPS才須要TLS協議,HTTP協議不須要,也就是說TLS協議不是必須的。
round trip time, 僅包括請求訪問來回的時間,被稱做網絡延遲。
RTT = 傳播時延(往返)+ 排隊時延(路由器和交換機的) + 數據處理時延(應用程序的)
http 請求中的緩存 cache 機制,資源緩存。Cookie 一般用來保持登陸狀態,信息緩存。
字符流、字節流、二進制在 HTTP 協議傳輸的時候,請求頭、響應頭都是以ASCII文本方式傳輸的,可是傳輸內容(響應體)多是多種形式的,接受方處理數據的時候根據 Content-Type
制定的類型進行處理,響應頭若 Transfer-Encoding
這個字段,用來指定傳輸的數據的編碼轉換的壓縮方式。沒有這個字段,就沒編碼壓縮。
有默認優先級,經過PRIORITY幀能夠改變流的優先級。 具體默認優先級的規則,以及如何經過幀來改變流的優先級?會的大佬,在評論區留言討論啊。
TCP經歷了三次握手、四次分手,網絡通訊更安全。
HTTP 2.0使用了首部壓縮技術,壓縮算法使用HPACK。可以讓報頭更緊湊,更快速傳輸。HPACK 協議,其中原理是哈夫曼編碼及索引表(數據結構內容)。
HTTPS並非一個新的協議,一般 HTTP 直接和 TCP通訊,HTTPS先和安全層通訊,而後安全層再和 TCP 層通訊。也就是說 HTTPS 全部的安全核心都在安全層。它不會影響上下兩層。
對發起 HTTP 請求的數據進行加密操做和對接收到HTTP的內容進行解密操做。
以上思考沉澱主要來自於極客時間《瀏覽器工做原理和實戰》之瀏覽器的網絡。
你們如何把站點升級到 http/2
,都遇到了哪些坑?看到有不少的網站是多協議並存的,哪些資源請求走 http/1.1
,哪些走 http/2
?你們有把網站升級到 http/3
的嗎,都遇到了哪些坑,歡迎在留言區告訴我。