【发布时间】:2013-05-08 12:04:40
【问题描述】:
我正在设置一个 REST Web 服务,它只需要尽快回答“是”或“否”。
设计 HEAD 服务似乎是最好的方法,但我想知道与执行 GET 请求相比,我是否真的能获得一些时间。
我想我获得了不会在我的服务器上打开/关闭的正文流(大约 1 毫秒?)。 由于返回的字节数非常少,我是否在传输中获得任何时间,在 IP 数据包数中?
提前感谢您的回复!
编辑:
进一步解释上下文:
- 我有一组 REST 服务在执行某些进程(如果它们处于活动状态)。
- 我有另一个 REST 服务指示所有这些第一个服务的状态。
由于最后一个服务会经常被大量客户端调用(预计每 5 毫秒调用一次),我想知道使用 HEAD 方法是否可以进行有价值的优化?响应正文中返回大约 250 个字符。 HEAD 方法至少获得了这 250 个字符的传输,但那有什么影响呢?
我尝试对这两种方法(HEAD 与 GET)之间的差异进行基准测试,运行 1000 次调用,但根本看不到任何增益(
【问题讨论】:
-
这也取决于您使用服务器端的方法。通常可能需要相同的服务器时间来处理 GET 请求或 HEAD 请求,因为服务器可能需要知道最终的主体来计算
Content-Length标头值,这是 HEAD 请求响应中的重要信息。除非有其他更优化的服务器端方法,否则唯一的好处是节省了带宽并且客户端不必解析响应正文。所以基本上优化收益取决于服务器和客户端的实现。