1. 程式人生 > >request發送HTTPS請求(處理SSL證書驗證)

request發送HTTPS請求(處理SSL證書驗證)

瀏覽器 code erro 發送 傳輸層 查看 抓包 .com tcp連接

1、SSL是什麽,為什麽發送HTTPS請求時需要證書驗證?

1.1 SSL:安全套接字層。是為了解決HTTP協議是明文,避免傳輸的數據被竊取,篡改,劫持等。

1.2 TSL:Transport Layer Security,傳輸層安全協議。TSL其實是SSL標準化後的產物,即SSL/TSL

實際上是一個東西。

1.3 HTTPS:HTTPS是兼容HTTP的,可以把HTTPS理解為‘HTTP over TSL‘,即HTTPS是HTTP協議

和TSL協議的組合。

1.4 HTTPS在傳輸數據時,同樣會先建立TCP連接,建立起TCP連接後,會建立TSL連接,這個過程可以

通過抓包查看:

技術分享圖片

1.5 SSL協議處於網絡7層結構的哪一層?有的資料直接說明SSL協議處於傳輸層,

有的資料則說SSL協議處於傳輸層與應用層之間。

1.6 請求可以為HTTPS請求驗證SSL證書,就像web瀏覽器一樣,SSL驗證默認是開啟的,

如果證書驗證失敗,請求會拋出SSLError:

>>>import requests

>>>requests.get(‘https:xxxx.com‘) #發起一個https請求

>>>requests.exceptions.SSLError: xxx

1.7 遇到請求的SSL驗證,可以直接跳過不驗證,將verify=False設置一下即可。

官方文檔解釋如下:

技術分享圖片

2、忽略警告

2.1 將驗證設置忽略後,可以跳過SSL驗證,但存在一個警告信息InsecureRequestWarning。

以下為忽略警告信息的方式:

技術分享圖片

總結:

1.HTTPS請求進行SSL驗證或忽略SSL驗證才能請求成功,忽略方式為verify=False。

2.SSL證書是由CA機構頒發的,所以安全也是要錢的

3.要完全理解HTTP協議,不能只到分辨HTTP的GET,POST等動作的程度,還要去理解7層

網絡結構中每層使用的協議,以及數據傳輸的過程

request發送HTTPS請求(處理SSL證書驗證)