request發送HTTPS請求(處理SSL證書驗證)
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證書驗證)