我正在尝试测试站点/服务器/其他任何内容是否具有传输 HTTP 请求的能力。
到目前为止,我认为可以通过一个curl
会话发送多个请求,例如:
curl http://www.example.com/1.html http://www.example.com/main.css http://www.example.com/2.html
是否可以使用下面提到的方法来模拟流水线以及如何实际验证是否使用了流水线?
我正在考虑使用netcat
,发送一些请求并验证它是否会以正确的顺序返回(按照 RFC 的要求)
您能否给我一些关于如何验证内容是否经过流水线处理的提示?(在 Linux 上最好,但不是必需的。)
答案1
我刚刚用 tcpdump 检查了一下,看来你建议的简单调用 curl 实际上并没有对请求进行流水线处理。手册页指出它们是按顺序获取的,这也表明没有流水线处理。
当我过去测试这个时,我只是将完整的 HTTP 1.1 请求粘贴到 telnet 会话中。
要进行检查,请在另一个窗口中运行 tcpdump,例如“tcpdump -nli any -s0 -xX host 1.2.3.4 and port 80”。如果您尝试 curl 命令行,您将看到第一个请求已发送,响应已传递,然后第二个请求已发送。如果您正确地进行流水线操作,您应该能够看到在任何响应数据返回之前发送了多条 GET 行。
这感觉有点像家庭作业问题,所以我就不说了。