背景:我正在尝试让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响应头.如果存在这样的响应头,则客户端必须在收到响应后关闭其连接的末尾.
| 归档时间: |
|
| 查看次数: |
7720 次 |
| 最近记录: |