HTTP 状态码研究

介绍

HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码

微软互联网信息服务 (Microsoft Internet Information Services)有时会使用额外的十进制子代码(如 100.x ,200.x 等)来获取更多具体信息,但是这些子代码仅出现在响应有效内容和文档中,而不是代替实际的HTTP状态代码

分类

主要有以下5类,下面会讲讲常用的状态码

1**  ——  某些信息的响应(Information responses)

  • 100 Continue  此临时响应指示到目前为止一切正常,客户端应继续该请求,如果请求已完成,则忽略响应
  • 102 Processing 此代码表示服务器已接收并正在处理请求,但是尚无响应

 

2**  ——  成功的响应(Successful responses)

  • 200 OK 请求成功
  • 201 Created 请求成功,并因此创建了新资源。这通常是在POST请求或某些PUT请求之后发送的响应
  • 206 Partial Content 当Range从客户端发送标头仅请求资源的一部分时,将使用此响应代码。举例,多线程下载文件

 

3**  —— 重定向消息(Redirection messages)

  • 301 Moved Permanently  所请求资源的URL已永久更改。新的URL在响应中给出
  • 302 Found 此响应代码表示所请求资源的URI已临时更改。将来可能会在URI中进行进一步的更改。因此,客户端在以后的请求中应使用相同的URI。 举例,短网址系统
  • 304 Not Modified  用于缓存目的。它告诉客户端尚未修改响应,因此客户端可以继续使用响应的相同缓存版本

 

4**  —— 客户端出错导致的响应(Client error responses)

  • 400 Bad Request 由于语法无效,服务器无法理解该请求
  • 403 Forbidden 客户端无权访问内容
  • 404 Not Found 服务器找不到请求的资源
  • 405 Method Not Allowed 服务器知道该请求方法,但已被禁用,无法使用
  • 407 Proxy Authentication Required  使用代理时需要进行身份验证
  • 429 Too Many Requests 用户在给定的时间内发送了太多请求(限流

 

5**  —— 服务器出错导致的响应(Server error responses)

  • 500 Internal Server Error 服务器遇到了不知道如何处理的情况
  • 502 Bad Gateway 此错误响应意味着服务器在充当网关以获取处理请求所需的响应的同时,获得了无效的响应
  • 503 Service Unavailable 服务器尚未准备好处理请求。通常是由于负载过大而导致的,过一会儿刷新就好了;并且,服务器可以通过Retry-After报头告知客户端何时可以重试
  • 504 Gateway Timeout 当服务器充当网关并且无法及时获得响应时,将给出此错误响应,即超时

 

下面是关于502,503和504的一张图

502_503_504

小结

502 和 504 有点容易混淆

502着重充当网关的服务器收到了无效的响应

504着重充当网关的服务器未能在指定时间内收到响应,即超时

参考

HTTP response status codes

Http状态码大全(含子代码)

HTTP权威指南 PDF

评论或私信站长


  1. #该文章暂时没有评论