最近在测试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。

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

  1. 浏览器缓存机制介绍 + 常用 http 状态码

    浏览器缓存分为两种, 强制缓存  与  协商缓存, https://www.pass4lead.com/300-209.htmlhttps://www.pass4lead.com/300-320.ht ...

  2. 常用HTTP状态码

    1.常用状态码介绍 在http响应协议中,我们通过HttpWatch抓包抓取到响应信息.其中响应首行中就包含一个状态码.状态码由三位数字组成,表示请求是否被理解或者被满足.HTTP响应状态码的第一个数 ...

  3. 什么是HTTP协议?常用的状态码有哪些?

    一.HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...

  4. HTTP常用的状态码

    一.200状态码: 成功2××:成功处理了请求的状态码. 1.200 :服务器已成功处理了请求并提供了请求的网页. 2.204:服务器成功处理了请求,但没有返回任何内容. 二.300状态码: 重定向3 ...

  5. Web开发中常用的状态码

    在HtttpServletResponse类中有关于状态码的描述. static int SC_ACCEPTED Status code (202) indicating that a request ...

  6. http请求常用的状态码

    常见的http请求响应的状态码 一些常见的状态码为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状 ...

  7. 常用HTTP状态码总结

    HTTP状态码(HTTP Status Code) 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求 ...

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

    Code 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须 ...

  9. 常用 HTTP 状态码

    下面是列举的我在项目中用到过的一些 HTTP 状态码,当然,在具体的使用中并不是用到的状态码越多越好,需要结合自己项目情况来选用适合自己的 HTTP 状态码.   HTTP 状态码 含义说明 200 ...

随机推荐

  1. ASP.NET MVC 让@Html.DropDownList显示默认值

    在使用@Html.DropDownList的过程中,发现它的用法很局限,比如在加载的时候显示设定的默认项或者调整它的显示样式,在网上查了一些资料,终于把这个问题解决了. 一.View代码 @using ...

  2. AngularJS 系列 01 - HelloWorld和数据绑定

    目录导读: AngularJS 系列 学习笔记 目录篇 前言: 好记性不如烂键盘,随笔就是随手笔记,希望以后有用. 本篇目录: 1. Hello World 2. AngularJS中的数据绑定 3. ...

  3. hbase开发实例

    1.put/checkAndPut package com.testdata; import java.io.IOException; import org.apache.hadoop.conf.Co ...

  4. android android BitmapFactory报错OOM

    解决方法:listview中尽量不要使用ImageView作为item的组件 换成view并设background

  5. chrome浏览器 开发者工具简介

    Chrome浏览器得益于其优秀的V8解释器,javascript执行速度和内存占有率表现非常优秀. 掌握了Chrome工具可提高学习效率和开发效率. 有如下功能面板,可以使用Ctrl+[和Ctrl+] ...

  6. javamail文件上传

    //创建entity package cn.bdqn.pojo; import java.io.File; public class Mail { private String from; priva ...

  7. C#把 DataTable转换为Model实体

    public static List<T> GetModelFromDB<T>( DataTable dt ) { List<T> data = new List& ...

  8. jQuery选择器和选取方法 http://www.cnblogs.com/MaxIE/p/4078869.html

    我们已经使用了带有简单Css选择器的jQuery选取函数:$().现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了. 一.jQuery选择器 在CSS3选择器标淮草案定义 ...

  9. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  10. play with usb

    1) struct usbdevfs_bulktransfer {        unsigned int ep;        unsigned int len;        unsigned i ...