HTTP 1.0服务器什么时候关闭连接?

cha*_*m15 5 http

背景:我正在尝试让ApacheBench在我的自定义服务器上运行.我尝试发布ab -n 1 -c 1 http://localhost:1337/index.html,我嗅探连接(与wireshark)我看到wayyy发送了多个请求.

示例请求:

GET /index.html HTTP/1.0
Host: localhost:1337
User-Agent: ApacheBench/2.3
Accept: */*

(repeats more times than I care to count)

我假设RFC 1945说"除了实验性应用程序,当前的做法要求在每次请求之前由客户端建立连接,并在发送响应后由服务器关闭." 当我请求一个页面时,这适用于ApacheBench.但是,如果我将请求数增加到10,我会得到"由同行重置连接".考虑到我关闭了连接,这是有道理的.

然而,我尝试了与谷歌相同的程序,并且在两种情况下它都可以正常工作.那么,我怎么知道何时关闭HTTP 1.0的连接?

Rem*_*eau 18

在HTTP 0.9中,服务器始终在发送响应后关闭连接.客户端必须在收到响应后关闭其连接的末尾.

在HTTP 1.0中,服务器在发送响应后始终关闭连接,除非客户端发送了Connection: keep-alive请求标头,服务器发送了Connection: keep-alive响应标头.如果不存在此类响应头,则客户端必须在收到响应后关闭其连接的末尾.

在HTTP 1.1中,服务器在发送响应后不关闭连接,除非客户端发送了Connection: close请求头,或者服务器发送了Connection: close响应头.如果存在这样的响应头,则客户端必须在收到响应后关闭其连接的末尾.