读取 HTTP GET 响应是否足以知道服务器是否启动?

读取 HTTP GET 响应是否足以知道服务器是否启动?

我想确保网站正常运行。读取 HTTP GET 响应就足够了吗?

PingDom 等服务测试什么?

答案1

通常,HTTP 监控有以下三种形式:

  1. 检查服务器是否在端口上响应 - 例如 TCP 连接是否已确认(nagios 中的 check_tcp)
  2. 仅检查 HTTP 响应代码,即执行 OPTIONS 或 HEAD 并确保返回的 HTTP 响应是 2xx 或 3xx(而不是 4xx 或 5xx)。
  3. 检查类似 (2) 的响应 - 以及检查输出中是否存在预期的文本字符串。

选项 3 是最可靠的,但每次监控服务器访问您的服务器时都需要对您的页面内容进行完整的 GET。选项 2 只需使用 HTTP OPTIONS 或 HEAD 即可实现,选项 1 只需使用 connect() 即可实现。

我认为 PingDom 可能会选择选项 (3)。

答案2

好吧,假设你真的得到响应,您可以假设实际的 HTTP 服务器处于活动状态。如果您想测试该网站是否除了在线之外还能正常运行,则必须阅读该响应以确保它不是错误页面或其他内容...

答案3

如果你还想确保网站确实作品(而不仅仅是“启动”),除了标准的 http get 和 ping 测试之外,您还应该运行一些事务监控,或者更好的是,运行真实的浏览器监控。

当然,这对于集成了许多第三方服务、Ajax、Javascript 等的复杂网站来说最为重要——而对于简单的静态网站来说,这不是必需的。

也可以看看http://en.wikipedia.org/wiki/Synthetic_monitoring

相关内容