1. 程式人生 > >HTTP和HTTPS請求的響應流程

HTTP和HTTPS請求的響應流程

       HTTP的中文意思超文字傳輸協議(HTTP,HyperText Transfer Protocol)是網際網路上應用最為廣泛的一種網路協議。所有的WWW檔案都必須遵守這個標準。而HTTPS是HTTP基於SSL加密後的傳輸協議。

 一、首先介紹介紹基於HTTP協議的請求響應流程。

       訪問的流程如下圖。

  1. 客戶端傳送請求。
  2. 請求首先會經過路由器/交換機/電信運營商處理後,傳送給DNS解析器, 解析得到公網IP地址。
  3. 根據公網IP地址找到伺服器,伺服器返回響應。
  4. 再經過路由器/交換機/電信運營商返回到瀏覽器。

       經過第四步,我們的客戶端(瀏覽器)就會拿到伺服器返回的HTML文字,和對應的CSS、JS檔案來渲染我們最終看到的網頁。然而,HTTP協議是明文的,只要獲悉了HTTP響應的格式,中間人就能輕易地對我們獲取到的響應進行篡改。所以就有了基於SSL協議加密的HTTPS協議。

二、現在介紹基於HTTPS協議的訪問流程。

        對於SSL協議,百度百科的解釋是:“Secure Socket Layer,為Netscape所研發,用以保障在Internet上資料傳輸之安全,利用資料加密(Encryption)技術,可確保資料在網路上之傳輸過程中不會被擷取及竊聽。一般通用之規格為40 bit之安全標準,美國則已推出128 bit之更高安全標準,但限制出境。只要3.0版本以上之I.E.或Netscape瀏覽器即可支援SSL。”

        總之,SSL就是可以將你的HTTP請求和伺服器返回的響應加密。流程圖如下圖,圖看著有些複雜,實際就是多了使用證書加密和解密的過程。


     什麼是CA證書?

  1. 對於HTTPS,首先我們要訪問的企業建造的伺服器必須要有CA證書。CA證書,是由第三方權威機構頒發的認證證書,當然,申請的企業要向第三方驗證機構支付一定費用。具體概念,見百度百科:https://baike.baidu.com/item/ca%E8%AF%81%E4%B9%A6。
  2. CA證書包含企業的資訊、和公鑰。公鑰對應私鑰,公鑰加密的資料必須用私鑰解密,私鑰加密的檔案必須由公鑰加密。

     加密流程

  1. 客戶端向伺服器請求到CA證書,得到證書後,會由公鑰產生一段隨機密碼,由該隨機密碼加密我們客戶端的請求,並且加密後的請求和加密隨機密碼(如果不加密,中間人獲取到該隨機密碼後仍然可以破解我們的加密請求)。
  2. 伺服器拿到我們加密請求與加密的隨機密碼,找到與公鑰對應的私鑰,對加密內容解密,生成響應內容。響應的內容,會根據私鑰再進行加密返回到我們的客戶端。我們的客戶端最後在根據之前的公鑰進行解密,即可獲取響應的HTML內容。

        以上是本人對HTTP和HTTPS響應過程的理解,錯誤之處望指正。