服务器返回的状态码

关于状态码

用户从客户端向服务器发送请求后,服务器接收请求后会向用户返回状态码,用于告诉用户服务器响应的状态。通过状态码可以知道当前请求服务器是否响应成功,如果没有成功是出了什么问题。
状态码由三位数字组成,第一位数字表示响应类别,分别以1-5数字打头。

  • 1XX 信息性状态码(Information) 服务器正在处理请求
  • 2XX 成功状态码 (Success) 请求已经正常处理完毕
  • 3XX 重定向状态码 (Redirection) 需要进行额外操作来完成请求
  • 4XX 客户端错误状态码 (Client Error) 客户端原因导致服务器无法处理请求
  • 5XX 服务器错误状态码 (Server Error) 服务器原因导致处理请求出错

根据后两位数字的不同,在5类的基础上进行细分。RFC2616(用来指定HTTP协议标准的文档)标准定义的HTTP状态码有四十多种,但是常见且具有代表性的共有14种,其中2XX(成功)3个,3XX(重定向)5个,4XX(客户端错误)4个,5XX(服务器错误)2个。

2XX成功

  1. 200 OK. 表示请求被服务器正常处理。
  2. 204 No Content. 表示请求已经被成功处理,但是没有内容返回。一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况。这种情况浏览器页面不会更新。
  3. 206 Partial Content.表示服务器已经完成了部分GET请求(客户端进行了范围请求)。

3XX重定向

  1. 301 Moved Permanently.永久重定向,表示请求的资源已经永久的搬到了其他位置,即资源已经被分配了新的URI,新的URI应该提示在响应报文的Location首部字段,只要不是HEAD请求,响应实体应该包含新URI的超链接和简短的说明。
  2. 302 Found.临时重定向,表示请求的资源临时搬到了其他位置。请求的资源暂时被配到到了新的URI。
  3. 303 See Other. 表示请求资源存在另一个URI,应使用GET定向获取请求资源。
  4. 304 Not Modified. 表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。虽然304被划分在3XX,但和重定向一毛钱关系都没有
  5. 307 Temporary Redirect.临时重定向,与302含义相同,区别是307会遵照标准,不会从POST变为GET。

4XX客户端错误

  1. 400 Bad Request. 表示请求报文存在语法错误或参数错误,服务器不理解。
  2. 401 Unauthorized. 表示发送的请求需要HTTP认证信息或者认证失败。
  3. 403 Forbidden. 表示对请求资源的访问被服务器拒绝了。
  4. 404 Not Found.表示服务器找不到你请求的资源。也有可能服务器就是不想给你然后骗你找不到。

5XX服务器错误

  1. 500 Internal Server Error. 表示服务器执行请求的时候出错了,可能是Web应用有bug或临时故障,更有可能是服务器源代码有bug…
  2. 503 Service Unavailable.表示服务器超负载或正停机维护,无法处理请求。