常用HTTP状态码和CURL 000问题

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

一、生产环境常见的HTTP CODE

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

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

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.

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.

二、curl奇怪的返回值000。

经过测试发现在curl的时候出现000的情况有如下几种:

1.Failed DNS resolution (6)

$ 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。

原文地址:https://www.cnblogs.com/williamjie/p/10010870.html

时间: 2024-08-04 11:58:05

常用HTTP状态码和CURL 000问题的相关文章

服务器常用的状态码及其对应的含义

服务器常用的状态码及其对应的含义如下: 200:服务器响应正常. 304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意). 400:无法找到请求的资源. 401:访问资源的权限不够. 403:没有权限访问资源. 404:需要访问的资源不存在. 405:需要访问的资源被禁止. 407:访问的资源需要代理身份验证. 414:请求的URL太长. 500:服务器内部错误.

常用http状态码

http状态码有什么用? http状态码的核心作用是Web Server服务器用来告诉客户端,当前的网页请求发生了什么事,或者说当前Web服务器的响应状态.所以HTTP状态码常用来判断和分析当前Web服务器的运行状况. 作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手.好了,下面就让我们来了解一下比较常见的HTTP状态码吧! 常用的http状态码:200 OK 服务器成功处理了请求(这个是我们见到

HTTP常用的状态码

一.200状态码: 成功2××:成功处理了请求的状态码. 1.200 :服务器已成功处理了请求并提供了请求的网页. 2.204:服务器成功处理了请求,但没有返回任何内容. 二.300状态码: 重定向3××:每次请求中使用重定向不要超过5次. 1.301:请求的网页已永久移动到新位置,当URLs发生变化时,使用301代码.搜索引擎索引中保存新的URL. 2.302:请求的网页临时移动到新位置,搜索引擎索引中保存原来的url. 3.304:如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引

(转)常用 HTTP 状态码对照表

Code 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在请求完成后向客户端发送一个最终响应. 101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求.在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议. 只有在切换新的协议更有好处的时候才应该采取类似措施.例如,切换

常用HTTP状态码总结

HTTP状态码(HTTP Status Code) 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 100(继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx (成功) 表示成功处理了请求的状态代码. 代码 说明 200(成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201(已创建) 请求成功并且服务器创建了新的

常用的状态码

[1xx: 信息] 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求.101 Switching Protocols 服务器转换协议:服务器将遵从客户的请求转换到另外一种协议. [2xx: 成功] 200 OK 请求成功(其后是对GET和POST请求的应答文档.)201 Created 请求被创建完成,同时新的资源被创建.202 Accepted 供处理的请求已被接受,但是处理未完成.203 Non-authoritative Inf

服务器常用的状态码及其对应的含义如下

100--客户必须继续发出请求 101--客户要求服务器根据请求转换HTTP协议版本 200--交易成功 201--提示知道新文件的URL 202--接受和处理.但处理未完成 203--返回信息不确定或不完整 204--请求收到,但返回信息为空 205--服务器完成了请求,用户代理必须复位当前已经浏览过的文件 206--服务器已经完成了部分用户的GET请求 300--请求的资源可在多处得到 301--删除请求数据 302--在其他地址发现了请求数据 303--建议客户访问其他URL或访问方式 3

服务器常用的状态码及其含义

100--客户必须继续发出请求101--客户要求服务器根据请求转换HTTP协议版本200--交易成功201--提示知道新文件的URL202--接受和处理.但处理未完成203--返回信息不确定或不完整204--请求收到,但返回信息为空205--服务器完成了请求,用户代理必须复位当前已经浏览过的文件206--服务器已经完成了部分用户的GET请求300--请求的资源可在多处得到301--删除请求数据302--在其他地址发现了请求数据303--建议客户访问其他URL或访问方式304--客户端已经执行了G

服务器常用的状态码及其对应的含义如下:

200:服务器响应正常. 304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意). 400:无法找到请求的资源. 401:访问资源的权限不够. 403:没有权限访问资源. 404:需要访问的资源不存在. 405:需要访问的资源被禁止. 407:访问的资源需要代理身份验证. 414:请求的URL太长. 500:服务器内部错误. 原文地址:https://www.cnblogs.com/borter/p/9538489.html