關於HTTP鏈接和請求資源

  • HTTPhtml

    • TLS,關於安全
    • 三次握手和四次揮手
  • 瀏覽器輸入url到頁面呈現,通過的過程,shell

    • DNS 解析IP地址
    • 請求資源
    • HTTP三次握手
    • 網頁渲染
  • 三次握手瀏覽器

    • SYN
      客戶端選擇一個隨機序列號 x,併發送一個 SYN 分組,其中可能還包括其餘 TCP
      標誌和選項。
    • SYN ACK
      服務器給 x 加 1,並選擇本身的一個隨機序列號 y,追加本身的標誌和選項,然
      後返回響應。
    • ACK
      客戶端給 x 和 y 加 1 併發送握手期間的最後一個 ACK 分組。
  • 四次揮手安全

    • TCP客戶端發送一個FIN,用來關閉客戶到服務器的數據傳送。
    • 服務器收到這個FIN,它發回一個ACK,確認序號爲收到的序號加1。和SYN同樣,一個FIN將佔用一個序號。
    • 服務器關閉客戶端的鏈接,發送一個FIN給客戶端。
    • 客戶端發回ACK報文確認,並將確認序號設置爲收到序號加1。
  • TLS服務器

    • TLS協議提供三個基本的服務網絡

      • 加密 :經過非對稱密鑰加密併發

          1. 張三和李四分別生成本身的公鑰和私鑰;
          2. 張三和李四分別隱藏本身的私鑰;
          3. 張三向李四公開本身的公鑰,李四也向張三公開本身的公鑰;
          4. 張三向李四發送一條新消息,並用本身的私鑰簽名;
          5. 李四使用張三的公鑰驗證收到的消息簽名。
      • 身份驗證
      • 數據完整性
  • 三次握手加密

    • 客戶端向服務端發送一個請求SYN,請求中有隨機序列號X,發送一個SYN分組
    • 服務器收到請求,給隨機序列號X加1,本身在發送一個隨即序列Y和X給客戶端
    • 客戶端收到X和Y,Y加上1,而後發送一個ACK分組給服務器
  • 四次揮手url

    • TCP 給服務器發送一個 FIN
    • 服務器收到FIN後,返回一個ACK
    • 服務器關閉客戶端的鏈接,發送一個FIN給客戶端
    • 客戶端發回ACK報文確認
  • 爲何了鏈接須要三次,關閉卻須要四次code

    • 對於建連接的3次握手,主要是要初始化Sequence Number 的初始值。通訊的雙方要互相通知對方本身的初始化的Sequence Number(縮寫爲ISN:Inital Sequence Number)——因此叫SYN,全稱Synchronize Sequence Numbers。也就上圖中的 x 和 y。這個號要做爲之後的數據通訊的序號,以保證應用層接收到的數據不會由於網絡上的傳輸的問題而亂序(TCP會用這個序號來拼接數據)。
    • 對於4次揮手,其實你仔細看是2次,由於TCP是全雙工的,因此,發送方和接收方都須要Fin和Ack。只不過,有一方是被動的,因此看上去就成了所謂的4次揮手。若是兩邊同時斷鏈接,那就會就進入到CLOSING狀態,而後到達TIME_WAIT狀態。

參考

相關文章
相關標籤/搜索