我有一个HTTP服务器和一个客户端(我使用curl进行测试)。我的问题是,即使是最简单的“ ping”请求也需要3-5秒才能完成。我在服务器上运行了tcpdump,看来建立TCP连接后,客户端(curl)等待3-4秒发送HTTP请求:
09:06:55.079376 IP客户端>服务器:标志[S],seq 1639466412,win 64240,选项[mss 1358,nop,wscale 8,nop,nop,sackOK],长度0
09:06:55.079457 IP服务器>客户端:标志[S。],seq 2519785093,ack 1639466413,win 29200,选项[mss 1460,nop,nop,sackOK,nop,wscale 7],长度0
09:06:55.087145 IP客户端>服务器:标志[。],确认1,获胜1029,长度0
09:06:59.722060 IP客户端>服务器:标志[P。],seq 1:83,ack 1,win 1029,长度82:HTTP:GET / ping HTTP / 1.1
您可以看到tcpdump输出的3至4行之间的问题。
您知道什么可能导致此问题吗?这是在客户端吗?还是在服务器端也应该检查?
更新 如果我使用telnet连接到服务器的端口并发送GET,则服务器会立即回复。
答案 0 :(得分:0)
Flags [S]
Syn Flags [S.]
-Syn Ack Flags [.]
-占位符,通常用于ACK。 Flags [P.]
-推Ack
您可以在卷曲命令前加上time
吗?如下所示。
作为对同一主机(终端)的测试:
terminal a
$ python -m SimpleHTTPServer 8989
terminal b
$ time curl -vvv localhost:8989
结果看起来像这样:
real 0m0.018s
user 0m0.006s
sys 0m0.005s
这时很难说这是客户端还是服务器端,这取决于您要查询的数据。您可以共享该查询/卷曲命令吗?