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

如何将Bottle框架HTTPResponse的HTTP版本从1.0改为1.1?

问题:Bottle框架返回HTTP/1.0响应,如何改为HTTP/1.1?

我正在使用Bottle实现Web服务器,有另一台服务器会发送POST请求,期望收到HTTP/1.1版本的响应,但通过Wireshark发现我的返回响应为HTTP/1.0。以下是我处理POST请求的代码片段:

myr = HTTPResponse()
myr.status = 200
myr.body = dict(health)
myr.content_type = "application/json"
myr.add_header("protocol_version", "HTTP/1.1")
x = myr.headers.allitems()
return myr  # HTTPResponse(status=201, body=dict(health))

我尝试使用add_header方法添加协议版本头,但并未生效,返回的仍是HTTP/1.0。我猜测这可能与BaseResponse类有关,请问是否有办法将HTTP版本从1.0改为1.1?


解决方案
  • 你通过add_header添加protocol_version自定义头的方式无效,因为HTTP协议版本属于响应起始行的内容,并非HTTP头字段,所以这个设置不会改变实际的响应协议版本。
  • 直接修改HTTPResponse对象的protocol属性即可指定响应的HTTP版本,调整后的代码如下:
myr = HTTPResponse()
myr.status = 200
myr.body = dict(health)
myr.content_type = "application/json"
myr.protocol = "HTTP/1.1"  # 直接设置响应的HTTP协议版本
return myr
  • 补充说明:Bottle默认会匹配客户端请求的HTTP版本返回对应响应,如果对方服务器发送的是HTTP/1.1请求,正常情况下框架会自动返回HTTP/1.1响应。若对方发送的是HTTP/1.0请求,强制返回1.1可能存在兼容性风险,但如果需求明确要求固定返回1.1版本,上述设置即可满足要求。

内容的提问来源于stack exchange,提问作者tguclu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:36:03