小编Rob*_*ska的帖子

如何从命令行让 cURL 使用 keepalive?

我正在尝试验证在与我正在运行的 Tomcat 网络服务器通信期间是否正在使用 HTTP 持久连接。目前,我可以从浏览器(例如 Chrome)检索服务器上的资源,并使用 netstat 验证连接已建立:

# visit http://server:8080/path/to/resource in Chrome
[server:/tmp]$ netstat -a
...
tcp        0      0 server.mydomain:webcache client.mydomain:55502 ESTABLISHED
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用 curl,则在 netstat 中看不到服务器上的连接。

[client:/tmp]$ curl --keepalive-time 60 --keepalive http://server:8080/path/to/resource
...

[server:/tmp]$ netstat -a
# no connection exists for client.mydomain
Run Code Online (Sandbox Code Playgroud)

我也尝试使用以下 curl 命令:

curl -H "Keep-Alive: 60" -H "Connection: keep-alive" http://server:8080/path/to/resource
Run Code Online (Sandbox Code Playgroud)

这是我的客户端机器的 curl 版本:

[server:/tmp]$ curl -V
curl 7.19.5 (x86_64-unknown-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 libssh2/1.1
Protocols: tftp ftp telnet dict http file https ftps scp sftp
Features: …
Run Code Online (Sandbox Code Playgroud)

http netstat tcp keepalive curl

47
推荐指数
3
解决办法
17万
查看次数

标签 统计

curl ×1

http ×1

keepalive ×1

netstat ×1

tcp ×1