requests發送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層

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM