Http總結

HTTP

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。使用TCP端口爲:80

一次完整http請求的過程

  1. 首先進行DNS域名解析
  2. 三次握手建立 TCP 連接
  3. 客戶端向服務器發送請求命令Get /www.xx.xx/ http/1.1
  4. 客戶端發送請求頭信息
  5. 服務服務器應答器 Http/1.1 200 OK
  6. 返回響應頭信息
  7. 服務器向客戶端發送數據
  8. 服務器關閉 TCP 連接

請求報文結構

GET /form/entry HTTP/1.1
Host:sample.com
Connection:keep-alive
Content-Type:application/x-www-form-urlencode
Content-Length:32

常見的Header

Expires
Cache-Control
Last-Modified / If-Modified-Since
Etag / If-None-Match
RANGE

HTTP 1.0

請求與響應支持頭域
響應對象以一個響應狀態行開始
響應對象不只限於超文本
開始支持客戶端通過POST方法向Web服務器提交數據,支持GET、HEAD、POST方法
支持長連接(但默認還是使用短連接),緩存機制,以及身份認證

HTTP 1.1

Persistent Connection(keepalive連接)
chunked編碼傳輸
字節範圍請求
Pipelining(請求流水線)
請求消息和響應消息都應支持Host頭域
新增了一批Request method
HTTP1.1增加了OPTIONS,PUT, DELETE, TRACE, CONNECT方法
緩存處理
HTTP/1.1在1.0的基礎上加入了一些cache的新特性,引入了實體標籤,一般被稱爲e-tags,新增更爲強大的Cache-Control頭。

HTTP 2.0

多路複用(二進制分幀)
頭部壓縮
隨時復位
服務器端推流
優先權和依賴

Https

Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本傳輸協議,設計了SSL(Secure Sockets Layer)協議用於對Http協議傳輸的數據進行加密,保證會話過程中的安全性。
使用TCP端口默認爲443

SSL協議加密方式

SSL協議即用到了對稱加密也用到了非對稱加密(公鑰加密),在建立傳輸鏈路時,SSL首先對對稱加密的密鑰使用公鑰進行非對稱加密,鏈路建立好之後,SSL對傳輸內容使用對稱加密。
對稱加密 速度高,可加密內容較大,用來加密會話過程中的消息。DES、3DES、AES、Blowfish、IDEA、RC5、RC6
公鑰加密 加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的密鑰。RSA、ElGamal、揹包算法、Rabin(RSA的特例)、迪菲-赫爾曼密鑰交換協議中的公鑰加密算法、橢圓曲線加密算法)

Https單向認證

  1. 客戶端
    發送:
    支持協議版本(例如TSL1.0)
    一個客戶端生成的隨機數(用於生成對話密鑰)
    支持的加密算法
    支持的壓縮算法
  2. 服務器 選擇加密程度高的加密方式
    迴應:
    確認使用的加密通信協議版本(例如TSL1.0)
    一個服務器生成的隨機數(用於生成對話密鑰)
    確認使用的加密方法(例如RSA)
    服務器證書(裏面包括服務其公鑰)
  3. 客戶端 校驗服務端證書是否合法,合法繼續,否則警告
    發送:
    對稱加密密鑰(一個隨機數(由上面兩個隨機數生成)(用於服務器公鑰加密,防止竊聽))
    編碼改變通知(表示隨後的信息都將用雙方商定的加密方式和密鑰發送)
    客戶端握手結束通知。
  4. 服務器 使用私鑰對加密信息進行解密,獲得對稱加密的密鑰
    迴應:
    編碼改變通知
    服務器握手結束通知。
  5. 對稱加密,確保通訊安全

Https雙向認證

  1. 客戶端
    發送:
    支持協議版本(例如TSL1.0)
    一個客戶端生成的隨機數(用於生成對話密鑰)
    支持的加密算法
    支持的壓縮算法
  2. 服務器 選擇加密程度高的加密方式
    迴應:
    確認使用的加密通信協議版本(例如TSL1.0)
    一個服務器生成的隨機數(用於生成對話密鑰)
    服務器證書(裏面包括服務其公鑰)
  3. 客戶端 校驗服務端證書是否合法,合法繼續,否則警告
    發送:
    自己的證書(公鑰)
  4. 服務器 校驗客戶端證書是否合法,獲得客戶端公鑰
    迴應:
    確認使用的加密方案(例如RSA)(客戶端公鑰進行加密)
  5. 客戶端 收到加密方式後,使用私鑰進行解密,獲取到加密方案
    發送:
    對稱加密密鑰(一個隨機數(由上面兩個隨機數生成)(用於服務器公鑰加密,防止竊聽))
    編碼改變通知(表示隨後的信息都將用雙方商定的加密方式和密鑰發送)
    客戶端握手結束通知。
  6. 服務器 使用私鑰對加密信息進行解密,獲得對稱加密的密鑰
    迴應:
    編碼改變通知
    服務器握手結束通知。
  7. 對稱加密,確保通訊安全
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章