经常使用HTTP状态码和CURL 000问题

 

 

  最近在测试CDN服务质量问题,测试过程当中返回了一些不一样的状态码,固然有一些经常使用的,也有一些不经常使用的。最奇葩的是在使用curl命令的时候出现000状态码,问了不少同事,对这个000的反应跟新事物是的。后端

1、生产环境常见的HTTP CODE服务器

生产环境常见的HTTP状态码列表(List of HTTP status codes)为:curl

2XX成功: 200 - OK,服务器成功返回网页       - Standard response for successful HTTP requests.post

3XX重定向: 301 - Moved Permanently(永久跳转),请求的网页已永久跳转到新位置。       - This and all future requests should be directed to the given. 302 - Moved Temporarily(永久跳转),请求的网页已临时跳转到新位置。测试

4XX客户端错误: 403 - Forbidden(禁止访问),服务器拒绝请求       - forbidden request (matches a deny filter) => HTTP 403   - The request was a legal request, but the server is refusing to respond to it. 404 - Not Found,服务器找不到请求的页面。       - The requested resource could not be found but may be available again in the future.ui

5XX服务器错误: 500 - Internal Server Error(内部服务器错误)       - internal error in haproxy => HTTP 500   - A generic error message, given when no more specific message is suitable. 502 - Bad Gateway(坏的网关),通常是网关服务器请求后端服务时,后端服务没有按照http协议正确返回结果。       - the server returned an invalid or incomplete response => HTTP 502   - The server was acting as a gateway or proxy and received an invalid response from the upstream server. 503 - Service Unavailable(服务当前不可用),可能由于超载或停机维护。       - no server was available to handle the request => HTTP 503   - The server is currently unavailable (because it is overloaded or down for maintenance). 504 - Gateway Timeout(网关超时),通常是网关服务器请求后端服务时,后端服务没有在特定的时间内完成服务。       - the server failed to reply in time => HTTP 504   - The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.url

 

2、curl奇怪的返回值000。spa

通过测试发如今curl的时候出现000的状况有以下几种:code

1.Failed DNS resolution (6)server

$ curl -w "%{http_code}\n" http://example.invalid/ ; echo "Exit code: $?" 000 curl: (6) Could not resolve host: example.invalid Exit code: 6

2.Connection refused (7)

$ curl -w "%{http_code}\n" http://localhost:81/ ; echo "Exit code: $?" 000 curl: (7) Failed to connect to localhost port 81: Connection refused Exit code: 7

Connection timed out (28)

$ curl -w "%{http_code}\n" -m 5 http://10.255.255.1/ ; echo "Exit code: $?" 000 curl: (28) Connection timed out after 5001 milliseconds Exit code: 28

Server actually returns 000 for some reason (0)

开启一个监听端口:

nc -l -p 65535 & <<EOF

> HTTP/1.1 000 Fake Status Code

> Content-Length: 0

> Connection: close

>

>EOF

客户端请求:

$ curl -w "%{http_code}\n" http://localhost:65535/ ; echo "Exit code: $?" 000 Exit code: 0

*注释:通常状况下遇到000,默认考虑为200,正常。

在测试过程当中打印了000时的错误信息,错误为:Connection timed out。使用curl时,参数:-sS ,而后将curl的错误 2>> /tmp/err.log。

相关文章
相关标签/搜索