首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试HTTP状态码

测试HTTP状态码
EN

Server Fault用户
提问于 2012-03-29 08:00:02
回答 1查看 836关注 0票数 1

我正在运行一个Apache服务器。当我尝试访问一个不存在的元素而不是返回404状态代码并将我重定向到默认错误页面时,我注意到比服务器更多的安全测试是返回默认错误页的200 HTTP状态代码。我怀疑这并不是这个问题唯一的失败。

有人可以建议我一个检查最常见的HTTP状态代码的进程吗?

EN

回答 1

Server Fault用户

发布于 2012-03-29 09:54:36

我将使用一个Bash脚本,为每个响应类型调用一次netcat,并使用适当的输入生成每种不同类型的响应代码。我会通过管道grep来检查正确的响应,并在STDERR上回显一条消息,如果消息不正确。

对于2xx、3xx和4xx范围来说,这应该是相对容易的,前提是您的服务器上存在实际生成每个不同响应代码的URL。5xx范围引用服务器端错误,因此为了有意调用它们,您需要在服务器上设置导致每个错误的特定URL。最好使用更完整的HTTP (如curlwget )来测试1xx范围。

解决这个问题的方法很可能不止一种。

有一个某些版本的netcat中的讨厌的bug,这意味着它在完成STDIN的读取之后就会退出。此外,这个buggy版本附带的手册页包含一个不起作用的示例。解决方法是-q <number>选项,它指定在退出前等待答案的时间数。

代码语言:javascript
复制
echo -ne "GET / HTTP/1.1\nHost: example.com\n\n" | nc -q 1 example.com 80 | grep -q "HTTP/1.1 301" || echo "HTTP 302 test failed!" >&2
票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/374718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档