1. 程式人生 > >HTTPS、HTTP

HTTPS、HTTP

http協議是一種基於請求與響應模式的、無狀態的應用層協議。

https協議是http協議的安全版,本質上也是http協議,只是在http協議的基礎上添加了一個SSL或TLS協議層。
解決了以下三個方面的安全性:

  • 提供驗證服務,驗證本次會話實體身份的合法性
  • 提供加密服務,保證通訊過程中訊息不會被破譯
  • 提供防篡改服務,利用hash演算法對訊息進行簽名,通過驗證簽名保證通訊資訊不會被篡改。

HTTPS協議先通過TCP/IP協議完成3次握手建立連線,然後是SSL握手協議完成客戶與伺服器之間的身份驗證及金鑰協商。

  1. 客戶端向伺服器傳送SSL/TLS協議的版本號、加密演算法種類、產生的隨機數以及其它需要的各種資訊
  2. 伺服器從客戶端支援的加密演算法中選擇一組加密演算法與hash演算法,並把自己的加密證書傳送給客戶端
  3. 瀏覽器獲取伺服器證書後驗證其合法性,驗證頒發機構合法性,驗證證書中的網址與正在訪問的網址是否一致。
  4. 客戶端瀏覽器生成一串隨機數並用伺服器傳送來的公鑰加密,在使用約定好的hash演算法計算握手訊息,傳送到服務端。
  5. 伺服器接到握手訊息後使用自己的私鑰解密,並使用雜湊演算法驗證,這樣雙方都有了此次通訊的金鑰
  6. 伺服器愛使用金鑰加密一段握手資訊,返回給和瀏覽器
  7. 瀏覽器使用金鑰解密,並用雜湊演算法驗證,確定演算法和金鑰

Http請求報文由請求行(空格分隔,\r\n結尾),請求頭,請求體組成。
在這裡插入圖片描述

請求頭

User-agent
Accept
Host
Cookie
Refer
Cache-Control

在這裡插入圖片描述
Cache-Control 對響應內容進行快取
Location 用於重定向
Set-Cookie 設定cookie