zoukankan      html  css  js  c++  java
  • 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层

          网络结构中每层使用的协议,以及数据传输的过程

  • 相关阅读:
    [CSP-S模拟测试]:答题(meet in the middle)
    __AFO
    BZOJ4332 JSOI2012 分零食 【倍增 + NTT】
    CF528D Fuzzy Search 【NTT】
    uoj【UNR #3】To Do Tree 【贪心】
    uoj233/BZOJ4654/洛谷P1721 [Noi2016]国王饮水记 【dp + 斜率优化】
    BZOJ2150 部落战争 【带上下界最小流】
    洛谷P4240 毒瘤之神的考验 【莫比乌斯反演 + 分块打表】
    BZOJ3235 [Ahoi2013]好方的蛇 【单调栈 + dp】
    51nod1236 序列求和 V3 【数学】
  • 原文地址:https://www.cnblogs.com/ljfight/p/9577783.html
Copyright © 2011-2022 走看看