如何测试keep-alive是否在客户端工作

Ron*_*ity 21 http httpd web keepalive

有哪些不同的方法/工具可以从客户端验证 keep-alive 是否在服务器上工作?

qri*_*ris 50

正如 Ron Garrity 所说,你可以像这样使用Curl

curl -Iv http://www.aptivate.org 2>&1 | grep -i 'connection #0'
Run Code Online (Sandbox Code Playgroud)

如果 keep-alive 工作正常,它会输出这两行:

* Connection #0 to host www.aptivate.org left intact
* Closing connection #0
Run Code Online (Sandbox Code Playgroud)

如果 keep-alive 不起作用,那么它只会输出以下行:

* Closing connection #0
Run Code Online (Sandbox Code Playgroud)

输出Connection ... left intact证明服务端没有关闭连接,可供客户端重用。由客户端决定是否真的要重用连接。您可以通过在命令行上两次列出相同的 URL 来使用 Curl 进行演示

curl -Iv http://www.aptivate.org --next http://www.aptivate.org 2>&1 | grep -i '#0'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它会给出类似的输出:

Re-using existing connection! (#0) with host ...
Run Code Online (Sandbox Code Playgroud)


Iza*_*zac 7

你可以试试

ab -n 500 -c 5 -k http://www.domain.com/
Run Code Online (Sandbox Code Playgroud)

并通过顶部查看,如果 5 个工作人员不断为请求服务,保持活动应该工作(-k)开关。在没有 -k 的情况下执行相同操作并查看差异。

干杯伊扎克