我使用 BaseHTTPRequestHandler http 服务器并从互联网复制/粘贴代码。这是设置响应/标头的部分
class S(BaseHTTPRequestHandler):
def _set_response(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
Run Code Online (Sandbox Code Playgroud)
但是当使用curl调用服务器时,响应是:
curl: (1) 不允许时收到HTTP/0.9
通过浏览器调用时:
ERR_INVALID_HTTP_RESPONSE
协议版本是 http/1.0
通过nginx反向代理调用Web服务器,这只是
location / {
proxy_http_version 1.1;
proxy_pass http://${NODE_NAME}:9000/;
}
Run Code Online (Sandbox Code Playgroud)
为此还需要更多标头吗?我们如何在 BaseHTTPRequestHandler 或 nginx 中设置正确的 http 标头?
我不熟悉 BaseHTTPRequestHandler 但我会尝试帮助处理curl 响应,因为几天前我遇到了非常类似的问题。
您是否尝试在http标志设置为0.9的情况下运行curl?
curl 'http://your-domain.com' --http0.9
Run Code Online (Sandbox Code Playgroud)
也许您的服务器确实使用 HTTP/0.9 进行响应。从curl 7.66.0开始,默认情况下禁用HTTP/0.9,因此这可能是“不允许时接收到HTTP/0.9”响应的原因。
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |