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

一、SSL是什麼,爲何發送HTTPS請求時須要證書驗證?web

    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協議spa

    和TSL協議的組合。3d

    1.4 HTTPS在傳輸數據時,一樣會先創建TCP鏈接,創建起TCP鏈接後,會創建TSL鏈接,這個過程能夠code

    經過抓包查看:blog

    

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

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

    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.1 將驗證設置忽略後,能夠跳過SSL驗證,但存在一個警告信息InsecureRequestWarning。

    如下爲忽略警告信息的方式:

    

總結:

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

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

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

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

相關文章
相關標籤/搜索