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层
网络结构中每层使用的协议,以及数据传输的过程
requests发送HTTPS请求(处理SSL证书验证)的更多相关文章
- Python常见问题 - python3 使用requests发送HTTPS请求报certificate verify failed 错误
当你使用 requests 发送HTTPS请求时 requests.get(url, parmas=parmas, headers=header, cookies=cookie) 出现了以下错误 HT ...
- iOS开发 支持https请求以及ssl证书配置(转)
原文地址:http://blog.5ibc.net/p/100221.html 众所周知,苹果有言,从2017年开始,将屏蔽http的资源,强推https 楼主正好近日将http转为https,给还没 ...
- python2/3 发送https请求时,告警关闭方法
问题: 使用Python3 requests发送HTTPS请求,已经关闭认证(verify=False)情况下,控制台会输出以下错误: InsecureRequestWarning: Unverifi ...
- Requests对HTTPS请求验证SSL证书
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发.该安全协议主 ...
- HTTPS请求 SSL证书验证
import urllib2 url = "https://www.12306.cn/mormhweb/" headers = {"User-Agent": & ...
- Web Server 使用WebClient 发送https请求 The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel
使用WebClient 发送https请求 使用WebClient发送请求时,并且是以https协议: WebClient webClient = new WebClient(); string re ...
- 使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL
这里使用的是HttpComponents-Client-4.1.2 package com.jadyer.util; import java.io.File; import java.io.FileI ...
- linux 测试 get 请求 跳过SSL证书验证
Linux 下测试 get 请求: curl : curl "http://www.qq.com" # 标准输出页面内容 curl -i "http://www.qq.c ...
- 各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总
各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总 一份常见的 HTTPS 站点使用的证书和数据加密技术列表,便于需要时比较参考,将持续加入新的 HTTP 站点,这里给出的信 ...
随机推荐
- BestCoder Round #92 1002 Count the Sheep —— 枚举+技巧
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=748&pid=1002 题解: 做题的时候只是想到 ...
- Python作业之用户管理
作业 流程图没有画,懒,不想画 readme没有写,懒,不想写.看注释吧233333 #! /usr/bin/env python # -*- coding: utf-8 -*- # __author ...
- js日期和时间戳互换
<script> function js_strto_time(str_time){ var new_str = str_time.replace(/:/g,'-'); new_str = ...
- 随应潮流-基于ABP+Angularjs现代化应用软件开发框架(1)-总体介绍
系列文章目录 随应潮流-基于ABP+Angulsrjs现代化应用软件开发框架(1)-总体说明 随应潮流-基于ABP+Angulsrjs现代化应用软件开发框架(2)-abp说明 随应潮流-基于ABP+A ...
- 记录用到的一些linux命令和疑难解决
1. 用gedit打开.bashrc larry@larry-Rev:~$ sudo gedit ~/.bashrc 2. ubuntu里安装软件有点像iOS里的Cydia,要添加软件源来在Ubunt ...
- Dom4J 解析xml ,类查询
/** * 从XML文件比对,传入provinceId 返回 provinceShortName * @param provinceid * @return */ public static Stri ...
- zlog 纯C日志函数库的简单使用方法
zlog简述: log是一个高性能.线程安全.灵活.概念清晰的纯C日志函数库. 事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx).C程序员都喜 ...
- c++中IO输入输出流总结<一>
1 io类图关系 1.1 简化形式 1.1.2补充 iostream: istream:从流中读取 ostream:写入到流 iosteram:读写流 fstream: ifstream:从文件读 o ...
- TypeScript完全解读(26课时)_16.声明合并
ts编辑器会将名字相同的多个声明合并为一个声明,合并后的声明,同时拥有多个声明的特性 example文件夹下新建merging.ts文件 定义相同名字的接口, 定义变量类型是上面的接口.,光写一个na ...
- cocos2dx-lua绑定之代码编辑器
转自:http://blog.csdn.net/wtyqm/article/details/9346863 享受脚本语言灵活.更新方便.免于编译的好处,但也不能忍受离开那些方便的IDE特性(跳转.自动 ...