You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask启用HTTPS后请求传输是否加密?日志显示HTTP/1.1存疑

关于Flask HTTPS请求日志显示HTTP/1.1的疑问

我用mkcert生成了自签名CA证书并让系统信任,得到localhost.pem和localhost-key.pem两个文件。启动Flask应用时执行命令:

flask --app=server run --cert=localhost.pem --key=localhost-key.pem --debug

服务器提示已以HTTPS运行,浏览器也能通过HTTPS正常访问。但用Python的requests模块发起请求时,Flask控制台日志显示HTTP/1.1,这让我不确定客户端和服务器之间的请求数据是否是HTTPS加密传输的。

在Flask接口中打印request.is_secure返回True,request.scheme返回https,但日志里的HTTP/1.1让我困惑。

客户端代码(client.py)

import requests

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

服务端代码(server.py)

from flask import Flask,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()

解答

请求数据确实是通过HTTPS加密传输的,原因如下:

  • 日志里的HTTP/1.1指的是HTTP协议版本,和是否加密无关——HTTPS本质是HTTP+TLS/SSL加密,协议版本依然是HTTP/1.1(或更高),所以日志显示这个是正常的。
  • Flask返回的request.is_secure = True和request.scheme = https是可靠判断依据:这两个属性由Flask根据请求传输层是否经过TLS加密设置,只有HTTPS加密连接的请求才会返回这样的结果。
  • 你已通过mkcert配置了可信CA证书,requests发起https://请求时,会和服务器完成TLS握手,建立加密通道后再传输数据。

内容的提问来源于stack exchange,提问作者Paweł Michoń

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:13:10