我正在从头开始构建一个网页服务器,这是为了娱乐,但我注意到Chrome浏览器有一些奇怪的行为。当我向/
发送GET请求时,来自Chrome的请求看起来像这样:
GET / HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
DNT: 1
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
这并没有什么特别的,但它也会向我的服务器发出另一个请求,而且它不发送任何东西,导致我的服务器一直在等待传入的消息。
这种行为在Safari中找不到。我已经设置了服务器对每个请求都响应403,但持久连接仍然存在。这个连接的目的是什么,我应该如何处理它?我是否从HTTP协议中漏掉了什么?