我有一个要测试的域名。 Ping大约是20毫秒。 'HTTP HEAD'约为500毫秒。
为什么他们之间有这么大的差异?这是服务器端问题吗?是不是有太大的区别? 25次。
答案 0 :(得分:4)
Ping通常作为ICMP回应请求实现。一个更简单的数据报协议:您发送一个数据包,服务器回复相应的数据包及其相关信息。
HTTP HEAD仍然是HTTP:必须在两端之间建立TCP连接,并且HTTP服务器必须使用您的请求的标头进行回复。它显然很快但不像发送单个数据包响应那么简单。
如果您正在测试域,ping是一个更适合的工具,而HTTP HEAD是一个更适合测试 HTTP服务器的工具。
答案 1 :(得分:4)
嗯,对于一个,ping通过不同的协议,ICMP。服务器本身直接响应ping。 HTTP是由必须在服务器上运行的其他应用程序(Web服务器)处理的不同协议(ping是内置于操作系统)。根据Web服务器的重量程度,相对于像ping这样的东西,它可能需要更多的时间。此外,HEAD与特定URL一起发送。如果该URL由ASP.NET之类的东西而不仅仅是Web服务器直接处理,那么必须进行额外的处理才能返回响应。
答案 2 :(得分:1)
如果我没有弄错,ping请求将在网络驱动程序级别处理,并且结果非常快(有时它由硬件本身处理,完全跳过软件处理)。它将很好地描绘网络延迟。
HTTP HEAD
请求必须访问Web服务器,这是一个用户级程序,需要多次复制数据位,以及解析请求等的Web服务器代码。然后Web服务器具有为请求生成HTTP响应头。根据服务器和请求的页面,这可能需要一段时间,因为它必须生成所请求的页面(它只发送标题,而不是页面内容。)
答案 3 :(得分:0)
当你运行ping时,响应速度要快得多,因为它是为了立即响应而设计的。它显示了大致的延迟,因此如果使用ping获得一致的结果,则无法获得比此更低的延迟。
当您运行HTTP HEAD
时,您实际上正在向特定页面发出请求,它将被处理,执行呈现并且仅返回head。与ping相比,它有更多的开销,这就是它花费更长时间的原因。