flask使用的是HTTPS还是HTTP?

问题描述 投票:0回答:1

我设法使用 mkcert 创建自签名证书并将其签名为 CA,以便我的电脑将此证书视为受信任。Mkcert 创建了两个文件 'localhost.pem''localhost-key.pem' 我引用了它们当运行烧瓶应用程序时。当我使用

flask --app=server run --cert=localhost.pem --key=localhost-key.pem --debug
启动 Flask 应用程序时,它显示服务器正在作为 https 运行(如下图)。

我可以使用浏览器访问这个网站,它实际上是 https。 我想使用 requests 模块通过 python 脚本访问服务器并且它有效,但有一件事让我感兴趣。事实上,控制台将日志显示为 正如你所看到的,这里是 HTTP/1.1 而不是 HTTPS。

问题:客户端和服务器之间通过请求发送的内容是否受 https 保护?

如果我尝试在烧瓶中打印

request.is_secure
,它会返回True,当我打印
request.scheme
时,它会返回https,所以看起来它是安全的,但我不确定,因为烧瓶日志为HTTP/1.1

客户端.py

import requests

data={'username':'pamix'}
r = requests.post(url='https://localhost:5000/test',data=data)

服务器.py

from flask import Flask,render_template,request

app = Flask(__name__)

@app.route("/test",methods=['POST'])
def test():
    print(f"is_secure:{request.is_secure}")
    print(f"scheme:{request.scheme}")

    return 'test'

if __name__=='__main__':
    app.run()

python flask ssl http-post
1个回答
0
投票

如您所见,有 HTTP/1.1 而不是 HTTPS

HTTPS是HTTP协议里面的TLS认证+加密。协议版本仍然是HTTP/1.1,即没有HTTPS/1.1。

© www.soinside.com 2019 - 2024. All rights reserved.