关于HTTP状态码的总结

HTTP状态码的大致分类

  • 100-199 用于指定客户端相应的某些动作。
  • 200-299 用于表示请求成功。
  • 300-399 用于已移动的文件并常被包含在定位头信息中指定新的地址信息。
  • 400-499 用于指出客户端的错误。
  • 500-599 用于支持服务器错误。

100-199

  1. 100 (Continue/继续)
    如果服务器收到的header中带有100-continue的请求,这是指客户端询问是否可以在后续的请求中发送附件。在这种情况下,服务器用100允许客户端继续或用417 (Expectation Failed)告诉客户端不同意接受附件。

  2. 101 (Switching Protocols/转换协议)
    101是指服务器将按照其上的头信息变为一个不同的协议。

200-299

  1. 200 (OK/正常)
    200的意思是一切正常。一般用于相应GET和POST请求。

  2. 201 (Created/已创建)
    201表示服务器在请求的响应中建立了新文档;应在header中给出它的URL。

  3. 202 (Accepted/接受)
    202告诉客户端请求正在被执行,但还没有处理完。

  4. 203 (Non-Authoritative Information/非官方信息)
    203表示文档被正常的返回,但是由于正在使用的是文档副本所以某些响应头信息可能不正确。

  5. 204 (No Content/无内容)
    204表示在并没有新文档的情况下,204确保浏览器继续显示先前的文档。这个状态码对于用户周期性的重载某一页非常有用,并且你可以确定先前的页面是否已经更新。

  6. 205 (Reset Content/重置内容)
    205重置内容的意思是虽然没有新文档但浏览器要重置文档显示。这个状态码用于强迫浏览器清除表单域。

  7. 206 (Partial Content/局部内容)
    206是在服务器完成了一个包含Range头信息的局部请求时被发送的。

300-399

  1. 300 (Multiple Choices/多重选择)
    300表示被请求的文档可以在多个地方找到,并将在返回的文档中列出来。如果服务器有首选设置,首选项将会被列于定位响应头信息中。

  2. 301 (Moved Permanently)
    301这个状态是指所请求的文档在别的地方;文档新的URL会在定位响应头信息中给出。浏览器会自动连接到新的URL。

  3. 302 (Found/找到)
    302与301有些类似,只是定位头信息中所给的URL应被理解为临时交换地址而不是永久的。

  4. 303 (See Other/参见其他信息)
    303这个状态码和 301、302 相似,只是如果最初的请求是 POST,那么新文档(在定位头信息中给出)要用 GET 找回。

  5. 304 (Not Modified/为修正)
    304表示当客户端有一个缓存的文档,通过提供一个 If-Modified-Since 头信息可指出客户端只希望文档在指定日期之后有所修改时才会重载此文档,用这种方式可以进行有条件的请求。

  6. 305 (Use Proxy/使用代理)
    305表示所请求的文档要通过定位头信息中的代理服务器获得。

  7. 307 (Temporary Redirect/临时重定向)
    浏览器处理307状态的规则与302相同。307状态被加入到 HTTP 1.1中是由于许多浏览器在收到302响应时即使是原始消息为POST的情况下仍然执行了错误的转向。只有在收到303响应时才假定浏览器会在POST请求时重定向。添加这个新的状态码的目的很明确:在响应为303时按照GET和POST请求转向;而在307响应时则按照GET请求转向而不是POST请求。

400-499

  1. 400 (Bad Request/错误请求)
    400指出客户端请求中的语法错误。

  2. 401 (Unauthorized/未授权)
    401表示客户端在授权头信息中没有有效的身份信息时访问受到密码保护的页面。这个响应必须包含一个WWW-Authenticate的授权信息头。

  3. 403 (Forbidden/禁止)
    403表示除非拥有授权否则服务器拒绝提供所请求的资源。这个状态经常会由于服务器上的损坏文件或目录许可而引起。

  4. 404 (Not Found/未找到)
    404状态每个网络程序员可能都遇到过,他告诉客户端所给的地址无法找到任何资源。

  5. 405 (Method Not Allowed/方法未允许)
    405指出请求方法(GET, POST, HEAD, PUT, DELETE, 等)对某些特定的资源不允许使用。

  6. 406 (Not Acceptable/无法访问)
    406表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致。

  7. 407 (Proxy Authentication Required/代理服务器认证要求)
    407与401状态有些相似,只是这个状态用于代理服务器。该状态指出客户端必须通过代理服务器的认证。代理服务器返回一个Proxy-Authenticate响应头信息给客户端,这会引起客户端使用带有Proxy-Authorization请求的头信息重新连接。

  8. 408 (Request Timeout/请求超时)
    408是指服务端等待客户端发送请求的时间过长。

  9. 409 (Conflict/冲突)
    该状态通常与PUT请求一同使用,409状态常被用于试图上传版本不正确的文件时。

  10. 410 (Gone/已经不存在)
    410告诉客户端所请求的文档已经不存在并且没有更新的地址。410状态不同于404,410是在指导文档已被移走的情况下使用,而404则用于未知原因的无法访问。

  11. 411 (Length Required/需要数据长度)
    411表示服务器不能处理请求(假设为带有附件的POST请求),除非客户端发送Content-Length头信息指出发送给服务器的数据的大小。

  12. 412 (Precondition Failed/先决条件错误)
    412状态指出请求头信息中的某些先决条件是错误的。

  13. 413 (Request Entity Too Large/请求实体过大)
    413告诉客户端现在所请求的文档比服务器现在想要处理的要大。如果服务器认为能够过一段时间处理,则会包含一个Retry-After的响应头信息。

  14. 414 (Request URI Too Long/请求URI过长)
    414状态用于在URI过长的情况时。这里所指的“URI”是指URL中主机、域名及端口号之后的内容。

  15. 415 (Unsupported Media Type/不支持的媒体格式)
    415意味着请求所带的附件的格式类型服务器不知道如何处理。

  16. 416 (Requested Range Not Satisfiable/请求范围无法满足)
    416表示客户端包含了一个服务器无法满足的Range头信息的请求。

  17. 417 (Expectation Failed/期望失败)
    如果服务器得到一个带有100-continue值的Expect请求头信息,这是指客户端正在询问是否可以在后面的请求中发送附件。在这种情况下,服务器也会用该状态告诉浏览器服务器不接收该附件或用100状态告诉客户端可以继续发送附件。

500-599

  1. 500 (Internal Server Error/内部服务器错误)
    500是常用的“服务器错误”状态。该状态经常由服务端程序引起也可能由无法正常运行的或返回头信息格式不正确引起。

  2. 501 (Not Implemented/未实现)
    501状态告诉客户端服务器不支持请求中要求的功能。例如,客户端执行了如PUT这样的服务器并不支持的命令。

  3. 502 (Bad Gateway/错误的网关)
    502被用于充当代理或网关的服务器;该状态指出接收服务器接收到远端服务器的错误响应。

  4. 503 (Service Unavailable/服务无法获得)
    503表示服务器由于在维护或已经超载而无法响应。服务器可提供一个Retry-After头信息告诉客户端什么时候可以在试一次。

  5. 504 (Gateway Timeout/网关超时)
    该状态也用于充当代理或网关的服务器;它指出接收服务器没有从远端服务器得到及时的响应。

  6. 505 (HTTP Version Not Supported/不支持的 HTTP 版本)
    505表示服务器并不支持在请求中所标明 HTTP 版本。

注: 本文仅作为个人总结参考。

您的支持将鼓励我继续创作!
0%