HTTP状态码大全,Nginx 408/499错误

不错的一个笔记!

状态码太多,网上查了下,在这里记录学习。

状态错误码

1**(信息类):表示接收到请求并且继续处理

    100——(continue):说明收到了请求的初始部分,请客户端继续。客户必须继续发出请求。客户端发送一个携带值为100 Countinue的Expect请求首部,意味着客户端在发送实体前等待100 Continue响应。这是一种优化,客户端在避免向服务器发送一个大实体时,才使用。
    101——(Switching Protocols):说明服务器正在根据客户端的指定,将协议切换成Update首部所列的协议。客户要求服务器根据请求转换HTTP协议版本

2**(响应成功):表示动作被成功接收、理解和接受

    200——(OK):请求没问题,实体的主体部分包含了所请求的资源。表明该请求被成功地完成,所请求的资源发送回客户端
    201——(Created):用于创建服务器对象的请求的响应(例如PUT)。实体主体部分包含各种引用了已创建的资源的URL。提示知道新文件的URL
    202——(Accepted):请求已被接受,但服务器还未对其执行任何动作,无法保证服务器会完成这个请求。接受和处理、但处理未完成
    203——(Non-Authoritative Information):实体首部包含的信息不是来自于源端服务器,而是来自资源的一份副本。返回信息不确定或不完整
    204——(No Content):响应报文有状态行和首部,但没有实体的主体部分。请求收到,但返回信息为空
    205——(Reset Content):告知浏览器清除当前页面中的所有HTML表单元素。服务器完成了请求,用户代理必须复位当前已经浏览过的文件
    206——(Partial Content):成功执行了一个部分或Range(范围)请求。服务器已经完成了部分用户的GET请求

3**(重定向类):为了完成指定的动作,必须接受进一步处理

    300——(Multiple Choices):客户端请求一个实际指向多个资源的URL时会返回这个状态码。请求的资源可在多处得到
    301——(Moved Permanently):请求的URL已经被移除,响应中Location首部包含资源现所处的URL。本网页被永久性转移到另一个URL
    302——(Found):与301类似,但是客户端应该用Location首部的URL来临时定位资源,将来的请求仍用老的URL。请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request。
    303——(See Other):告知客户端应该用另一个URL来获取资源,新URL位于Location首部,允许POST请求的响应将客户端定向到某个资源上去。建议客户访问其他URL或访问方式
    304——(Not Modified):客户端可以通过所包含的请求首部,使其变成有条件的。自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用
    305——(Use Proxy):说明必须通过一个代理来访问资源,代理位置由Location首部给出。请求的资源必须从服务器指定的地址得到
    306——前一版本HTTP中使用的代码,现行版本中不再使用
    307——(Temporary Redirect):和302一样。申明请求的资源临时性删除

  4**(客户端错误类):请求包含错误语法或不能正确执行

       400——(Bad Request)客户端请求有语法错误,不能被服务器所理解
       401——(Unauthorized)请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
         HTTP 401.2 - 未授权:服务器配置问题导致登录失败
      HTTP 401.3 - ACL 禁止访问资源
      HTTP 401.4 - 未授权:授权被筛选器拒绝
        HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败
        402——(Payment Required):保留状态码,未来之用。保留有效ChargeTo头响应
        403——(Forbidden)禁止访问,服务器收到请求,但是拒绝提供服务
           HTTP 403.1 禁止访问:禁止可执行访问
      HTTP 403.2 - 禁止访问:禁止读访问
      HTTP 403.3 - 禁止访问:禁止写访问
      HTTP 403.4 - 禁止访问:要求 SSL
      HTTP 403.5 - 禁止访问:要求 SSL 128
      HTTP 403.6 - 禁止访问:IP 地址被拒绝
      HTTP 403.7 - 禁止访问:要求客户证书
      HTTP 403.8 - 禁止访问:禁止站点访问
      HTTP 403.9 - 禁止访问:连接的用户过多
      HTTP 403.10 - 禁止访问:配置无效
      HTTP 403.11 - 禁止访问:密码更改
      HTTP 403.12 - 禁止访问:映射器拒绝访问
      HTTP 403.13 - 禁止访问:客户证书已被吊销
      HTTP 403.15 - 禁止访问:客户访问许可过多
      HTTP 403.16 - 禁止访问:客户证书不可信或者无效
           HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效
    404——(Not Found)一个404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。eg:输入了错误的URL
    405——(Method Not Allowed)用户在Request-Line字段定义的方法不允许。发起请求中带有所请求的URL不支持的方法。响应中有Allow首部,告知客户端对所请求的资源可以用哪些方法。
    406——(Not Acceptable):客户端可以通过参数说明它们接受什么类型的实体,服务器没有和客户端可接受的URL相匹配的资源时用此代码。根据用户发送的Accept拖,请求资源不可访问
    407——(Proxy Authentication Required):和401相似,但用于要求对资源进行认证的代理服务器。类似401,用户必须首先在代理服务器上得到授权
    408——(Request Timeout):如果完成请求所花时间太长,服务器可以返回此状态码。客户端没有在用户指定的饿时间内完成请求
    409——(Confict):说明请求可能在资源上引发的一些冲突。对当前资源状态,请求不能完成
    410——(Gone):与404类似,只是服务器之前有过此资源。服务器上不再有此资源且无进一步的参考地址
    411——(Length Required):服务器要求在请求报文中包含Content-Length首部。服务器拒绝用户定义的Content-Length属性请求
    412——(Precondition Failed):客户端发起了条件请求,且其中一个条件失败了。一个或多个请求头字段在当前请求中错误
    413——(Request Entity Too Large):实体主体部分过大。请求的资源大于服务器允许的大小
    414——(Request URI Too Long):URL比服务器能处理的长。请求的资源URL长于服务器允许的长度
    415——(Unsupport Media Type):无法理解或无法支持客户端所发实体的内容类型。请求资源不支持请求项目格式
    416——(Requested Range Not Satisfiable):请求报文请求的是指定资源的某个范围,而此范围无效或无法满足。请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
    417——(Expectation Failed):请求的Expect请求首部包含一个期望,但服务器无法满足此期望。服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

    499------Client Closed Request (Nginx), 服务器返回http头之前,客户端就提前关闭了http连接, 可能是因为服务器端处理的时间过长,客户端“不耐烦”了
 

5**(服务端错误类):服务器不能正确执行一个正确的请求

        HTTP 500 - 服务器遇到错误,无法完成请求
      HTTP 500.100 - 内部服务器错误 - ASP 错误
      HTTP 500-11 服务器关闭
      HTTP 500-12 应用程序重新启动
      HTTP 500-13 - 服务器太忙
      HTTP 500-14 - 应用程序无效
      HTTP 500-15 - 不允许请求 global.asa
       HTTP 501(Not Implemented):客户端发起的请求超出服务器的能力范围。
       HTTP 502 - (Bad Gateway):作为代理或网关使用的服务器从请求响应链的下一条链路上收到了一条伪响应。

       HTTP 503:(Service Unavailable):说明服务器现在无法为请求提供服务,将来可以。

       HTTP 504(Gateway Timeout):与408相似。

       HTTP  505(HTTP Version Not Support):服务器收到的请求使用了它无法或不愿意支持的协议版本。

Nginx 408/499错误分析

   Nginx 408错误:

          如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out)。

          如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)

          接收客户端header超时, 默认60s, 如果60s内没有收到完整的http包头, 返回408

          接收客户端body超时, 默认60s, 如果连续的60s内没有收到客户端的1个字节, 返回408

    Nginx 499:epoll_wait() reported that client prematurely closed connection, so upstream connection is closed to

    Nginx upstream在以下情况下会返回499状态码:

         (1)upstream 在收到读写事件处理之前时,会检查连接是否可用,当连接错误时会返回499。

        (2)server处理请求未结束,而client提前关闭了连接,此时也会返回499。

        总之,这个错误的比例升高可能表明服务器upstream处理过慢,导致用户提前关闭连接。

      1、 客户端请求服务端时,服务端响应慢,客户端觉得时间长主动关闭了连接, 比如浏览器(客户端)请求一个接口觉得很慢,就关掉了浏览器、 nginx做proxy的时候,后端执行时间长(如执行sql慢,调用其它接口慢)等,应该从后端去优化下

      2、nignx做proxy时,频繁的post,nginx认为不安全,记录499

      可以在nignx的proxy配置中开启 proxy_ignore_client_abort on     

            功能是确定在客户端关闭连接时是否应关闭与代理服务器的连接,而不在等待响应

           如果使用了proxy_ignore_client_abort on。 那么客户端主动断掉连接之后,Nginx 会等待后端服务器处理完(或者超时),然后记录“后端的返回信息”到日志。因此,如果后端返回200,就记录200 ;如果后端返回5XX ,那么就记录 5XX。

       如果超时(默认60s,可以用 proxy_read_timeout 和proxy_send_timeout设置),Nginx 会主动断开连接,记录504

     注:建议只在做反向代理的时候使用。最好关闭这一选项。

http权威指南读书笔记

转: 基础知识 - 随笔分类 - littlewhite - 博客园

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值