简介
https概念
HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
CA(Certificate Authority)证书授权中心:CA证书授权中心,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任,CA中心会给每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥,CA机构的数字签名使得攻击者不能伪造和篡改证书。
加密过程说明
1、【浏览器】向服务器发送https请求
2、【服务器】向CA机构获取证书
3、【服务器】向浏览器发送数字证书(包含public key)
4、【浏览器】用预置的CA列表验证证书,生成随机对称秘钥【key】,并使用公钥加密,如有问题会提示风险,
5、【浏览器】加密后的【key】,发送给【服务器】,作为接下来请求的秘钥
6、【服务器】用自己的private key解密得到对称秘钥key
7、【浏览器】使用随机码key进行解密数据
8、【浏览器】【服务器】使用该秘钥进行通信
HTTP与HTTPS区别
1、http明文传输,https密文传输协议
2、默认端口http:80端口,https:443端口
3、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用
4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
————————————————
原文链接:https://blog.csdn.net/weixin_54542209/article/details/123282258
代码:
import requests
from configs_test.configs_req import HOST
from requests.packages import urllib3
from requests.packages.urllib3 import disable_warnings
requests.packages.urllib3.disable_warnings()#忽略警告
# https协议
class Login_Test:
def login_test(self, indata):
# 1、请求地址
url = f'{HOST}/api/mgr/loginReq'
# 2、请求头
# 3、请求体
data = indata
# content_type:data
# 4、执行请求
res = requests.post(url, data=data, verify=False)
if __name__ == '__main__':
Login_Test().login_test({'username': 'xxxx', 'psw': 'xxxxx'})
--------------------------------------------**注**
--------------------------------------------------
请求https
协议的接口,需要增加以上两句:
requests.packages.urllib3.disable_warnings
()#忽略警告
res = requests.post(url, data=data, verify=False
)