已解决:在这里粘贴字节让我意识到我在块之间漏掉了空行...
HTTP / 1.1请求是否需要指定Connection:keep-alive
头部,还是默认情况下始终保持活动连接?
这份指南让我认为应该是这样的;当我的HTTP服务器收到一个1.1请求时,除非显式接收到Connection:close
头部,否则它会保持活动状态。
我问这个问题是因为我的不同客户端的行为,ab
和httperf
的差异已经足以让我疯狂到怀疑自己的理智...
这是httperf --hog --port 42042 --print-reply body
发送的内容:
GET / HTTP/1.1
User-Agent: httperf/0.9.0
Host: localhost
这是我的服务器响应:
HTTP/1.1 200 OK
Connection: keep-alive
Transfer-Encoding: chunked
Content-Length: 18
12
Hello World 1
0
httpref
迅速打印出响应,但接着就一直停留在那里,双方都没有关闭连接,httpref
也没有退出。
我的bug在哪里?