写GET请求返回HTTP 1.1而不是1.0



我正在用python编写tcp web客户端和web服务器(我是python和套接字/网络的新手)。一切都在工作,但我想实现HTTP/1.1协议而不是HTTP/1.0,无论我做什么,我都无法得到1.1的响应。我读到它需要一个主机字段,但也许我做错了什么。

这是我的GET请求

request = "GET " + path + " HTTP/1.1" + "rnHost: " + HOST + "rnrn"

这是我的回答

"b'HTTP/1.0 200 OK

我使用BaseHTTPRequestHandler为我的web服务器。这可能是问题所在吗?

您应该在BaseHTTPRequestHandler实现中将protocol_version设置为'HTTP/1.1':

protocol_version这指定响应中使用的HTTP协议版本。如果设置为'HTTP/1.1',服务器将允许HTTP持久连接;但是,您的服务器必须在其对客户端的所有响应中包含准确的Content-Length标头(使用send_header())。为了向后兼容,默认设置为'HTTP/1.0'

最新更新