HTTP状态码小结

HTTP状态码

HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。所有状态码被分为五类,状态码的第一个数字代表了响应的五种状态之一。[1]

常见举例!

  • 1##

    这一类型的状态码,代表请求已被接受,需要继续处理,表明这是一个临时性响应

    1. 100 Continue 继续

      服务器已经接收到请求,客户端应继续其请求。

    2. 101 Switching Protocols 切换协议

      服务器根据客户端的请求切换协议。但只能切换到更高级的协议。

  • 2##

    这一组状态码表明客户端的请求已经被服务器端成功接收并正确解析。

    1. 200 OK 请求成功

      已成功处理了请求。出现此状态码是表示正常状态,一般用于GET与POST请求。

    2. 201 Created 已创建

      成功请求,并且服务器创建了新的资源。

    3. 202 Accepted 已接受

      服务器已经接受请求,但未处理完成。

    4. 204 No Content 无内容

      服务器成功处理,但未返回内容。

    5. 205 Reset Content 重置内容

      服务器处理成功,用户终端(例如:浏览器)应重置文档视图。

    6. 206 Partial Content 部分内容

      服务器成功处理了部分GET请求。

  • 3##

    这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。

    1. 300 Multiple Choices 多种选择

      服务器针对请求可执行多种操作。请求的资源可包括多个位置,服务器相应可返回一个资源特征与地址的列表用于用户选择。

    2. 301 Moved Permanently 永久移动

      请求的资源已永久移动到新位置。服务器返回信息会包括新的URI,客户端会自动定向到新URI。

    3. 302 Found 临时移动

      请求的资源临时从不同的 URI 响应请求。与301类似,但资源只是临时被移动。客户端应继续使用原有URI。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

    4. 303 See Other 查看其它地址

      对应当前请求的响应可以在另一个URI上被找到,而客户端应当采用GET的方式访问那个资源。这个方法常用于常用于将 POST 请求重定向到 GET 请求,且重定向的新 URI 不是原始资源的替代引用。303响应禁止被缓存,重定向的GET请求可能被缓存。

    5. 304 Not Modified 未修改

      所请求的资源未修改。服务器返回此响应时,不会返回资源的内容,因此可节省带宽和开销。

    6. 305 Use Proxy 使用代理

      请求者只能使用代理访问请求的网页。如果服务器返回此响应,表示所请求的资源必须通过代理访问。

    7. 307 Temporary Redirect 临时重定向

      表示请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。307 的定义实际上和 302 是一致的,唯一的区别在于,307 状态码不允许浏览器将原本为 POST 的请求重定向到 GET 请求上

    ⚠️ 302、303、307傻傻分不清楚😛

    在这里总结一下,从实际效果看:302 允许各种各样的重定向,一般情况下都会实现为到 GET 的重定向,但是不能确保 POST 会重定向为 POST;而 303 只允许任意请求到 GET 的重定向;307 和 302 一样,除了不允许 POST 到 GET 的重定向。

  • 4##

    这一组状态码表示客户端的请求存在错误,导致服务器无法处理。

    1. 400 Bad Request 错误的请求

      客户端请求的语法错误,服务器无法理解。

    2. 401 Unauthorized 未授权

      请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

    3. 403 Forbidden 禁止

      服务器理解请求客户端的请求,但是拒绝执行此请求。

    4. 404 Not Found 找不到

      服务器找不到请求的资源。对于服务器上不存在的资源经常会返回此代码。

    5. 405 Method Not Allowed 方法不被允许

      客户端请求中的方法被禁止。

    6. 406 Not Acceptable 不可接受

      请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体,该请求不可接受。

    7. 408 Request Time-out 请求超时

      服务器等待客户端发送的请求时间过长。

    8. 409 Conflict 发生冲突

      由于和被请求的资源的当前状态之间存在冲突,请求无法完成。

    9. 410 Gone 不存在

      客户端请求的资源已经不存在。410不同于404,如果资源以前有,但现在被永久删除则可以使用410代码。

    10. 411 Length Required 无法处理该请求

      服务器无法处理客户端发送的不带Content-Length的请求信息。

    11. 412 Precondition Failed 请求条件错误

      服务器未满足请求者在请求中设置的其中一个(或多个)前提条件。

    12. 413 Payload Too Large 请求的实体过大

      服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。

    13. 414 Request-URI Too Long 请求的URI过长

      请求的 URI(通常为网址)过长,超过了服务器能够解释的长度,服务器无法处理。

    14. 415 Unsupported Media Type 无法处理的媒体格式

      请求中提交的实体并不是服务器中所支持的格式,服务器拒绝处理。

    15. 416 Range Not Satisfiable 请求的范围无效

      客户端无法提供有效的请求范围,则服务器会返回此状态代码。

    16. 417 Expectation Failed 无法满足的Expect

      服务器未满足"Expect"请求头字段的要求。

    17. 429 Too Many Requests 并发请求过多

      用户在给定的时间内发送了太多的请求。

    18. 431 Request Header Fields Too Large 请求头过大

      请求的单一请求头或请求头整体过大,服务器不能处理。

  • 5##

    这一组状态码说明服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

    1. 500 Internal Server Error 服务器端程序错误

      服务器端程序错误,无法完成请求。

    2. 502 Bad Gateway 网关无响应

      作为网关或者代理工作的服务器执行请求时,从上游服务器接收到无效的响应。

    3. 503 Service Unavailable 服务器端临时错误

      由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。延时的长度可能包含在服务器的Retry-After头信息中。

    4. 504 Gateway Timeout 网关超时

      作为网关或者代理工作的服务器执行请求时,未能及时从上游服务器收到响应。

  • 网友锐评HTTP代码

    程序员最想看到的:200-OK。 程序员不想看到的:500-Internal-Server-Error。 用户不想看到的:401-Unauthorized、403-Forbidden、408-Request-Time-out。

    404我也是挺不想看到的😅

    文章参考自🥰

  • #HTTP状态码大全

  • #HTTP 状态码

  • #HTTP 中的 301、302、303、307、308 响应状态码

  • #喵星人教你 HTTP 状态码