HTTP状态码按照数字的不同范围进行划分,可以分为以下几类:
一、1xx:信息响应
表示请求已被接收,服务器正在处理。它们通常用于临时响应,告诉客户端请求正在继续处理。
- 100 Continue:服务器已收到请求的初始部分,客户端可以继续发送请求的其余部分(比如发送大文件时的分块上传)。
- 101 Switching Protocols:服务器接受了客户端的协议切换请求,如从HTTP升级到WebSocket。
- 102 Processing(WebDAV):服务器正在处理请求,但处理尚未完成。
二、2xx:成功响应
表示请求已成功处理,服务器已正确响应。
- 200 OK:请求成功,服务器返回请求的资源。
- 201 Created:请求成功并且服务器已创建了新的资源(通常用于POST请求)。
- 202 Accepted:请求已被接收,但尚未处理完成。
- 203 Non-Authoritative Information:服务器返回的响应包含来自其他源的副本(例如,代理缓存),且不一定是最新的。
- 204 No Content:请求成功,但服务器没有返回内容。常用于删除操作。
- 205 Reset Content:请求成功,客户端应重置视图。
- 206 Partial Content:服务器成功处理了部分请求(如范围请求)。
三、3xx:重定向响应
表示客户端需要进一步的操作才能完成请求。通常涉及重定向。
- 300 Multiple Choices:请求有多个可能的响应,服务器提供了选项列表,客户端可以选择。
- 301 Moved Permanently:请求的资源已永久移动到新位置,客户端应使用新的URL发起请求。
- 302 Found(临时重定向):请求的资源临时被移动到新的位置,客户端应继续使用原URL。
- 303 See Other:客户端应使用另一个URL获取响应,通常用于POST请求后重定向到GET请求。
- 304 Not Modified:客户端缓存的资源没有变化,服务器未返回资源,客户端可以继续使用缓存。
- 305 Use Proxy:请求必须通过代理访问。
- 307 Temporary Redirect:请求的资源临时移到其他位置,客户端应使用相同的方法进行请求。
- 308 Permanent Redirect:请求的资源永久移到其他位置,客户端应使用新的URL。
四、4xx:客户端错误
表示客户端发送的请求有问题,通常是请求格式错误或者缺少必要的信息。
- 400 Bad Request:请求无效,服务器无法理解。
- 401 Unauthorized:请求未授权,客户端需要提供身份验证信息。
- 402 Payment Required:此状态码是保留的,未来可能用于支付系统。
- 403 Forbidden:服务器拒绝请求,客户端没有权限访问资源。
- 404 Not Found:请求的资源在服务器上未找到。
- 405 Method Not Allowed:请求使用了不被允许的HTTP方法(例如,使用GET方法请求一个只允许POST的接口)。
- 406 Not Acceptable:服务器无法根据客户端的请求头提供合适的响应。
- 407 Proxy Authentication Required:需要通过代理认证。
- 408 Request Timeout:客户端请求超时,服务器等待请求时超出了预定的时间。
- 409 Conflict:请求与服务器的当前状态冲突(例如,提交重复的资源)。
- 410 Gone:请求的资源已永久删除,不再可用。
- 411 Length Required:请求未指定Content-Length头,服务器要求请求中包含该头。
- 412 Precondition Failed:请求的前提条件(如If-Match或If-None-Match)未满足。
- 413 Payload Too Large:请求的负载太大,服务器无法处理。
- 414 URI Too Long:请求的URI太长,服务器无法处理。
- 415 Unsupported Media Type:请求中包含的媒体类型不被支持。
- 416 Range Not Satisfiable:请求的部分内容不可用,超出了资源的范围。
- 417 Expectation Failed:请求的Expect头无法被满足。
- 418 I'm a teapot:这是一个愚蠢的错误代码,源自一个愚弄性质的RFC(RFC 2324),并不常见。
- 421 Misdirected Request:请求的目标服务器不能处理该请求,通常是由于错误的路由。
- 422 Unprocessable Entity(WebDAV):请求的语法正确,但无法处理(通常用于业务逻辑错误)。
- 423 Locked(WebDAV):请求的资源被锁定,无法访问。
- 424 Failed Dependency(WebDAV):由于之前的请求失败,当前请求也无法完成。
- 425 Too Early:请求被拒绝,因为服务器认为请求过早。
- 426 Upgrade Required:客户端必须升级协议才能继续请求。
- 428 Precondition Required:请求头需要满足特定的条件(例如,If-Match)。
- 429 Too Many Requests:客户端发送的请求过多,服务器正在限制请求。
- 431 Request Header Fields Too Large:请求头字段过大,服务器拒绝处理。
- 451 Unavailable For Legal Reasons:请求的资源因法律原因不可用。
五、5xx:服务器错误
表示服务器处理请求时发生了错误,通常是服务器内部的问题。
- 500 Internal Server Error:服务器发生了未处理的错误,导致无法完成请求。
- 501 Not Implemented:服务器不支持请求的方法。
- 502 Bad Gateway:作为网关或代理的服务器收到的上游服务器的无效响应。
- 503 Service Unavailable:服务器暂时无法处理请求,可能是由于过载或维护。
- 504 Gateway Timeout:作为网关或代理的服务器未及时收到上游服务器的响应。
- 505 HTTP Version Not Supported:服务器不支持请求中使用的HTTP协议版本。
- 506 Variant Also Negotiates:服务器在透明内容协商中出现错误。
- 507 Insufficient Storage(WebDAV):服务器无法存储完成请求所需的内容。
- 508 Loop Detected(WebDAV):服务器检测到请求的无限循环。
- 510 Not Extended:服务器需要更多的扩展来完成请求。
- 511 Network Authentication Required:客户端需要进行身份验证才能获得网络访问权限。
综上所述,HTTP状态码是Web开发中非常重要的概念,它可以帮助开发者快速定位和处理问题。理解并熟记这些状态码的含义对于提高开发效率和用户体验至关重要。
学在每日,进无止境!更多精彩内容请关注微信公众号。

原文出处:
内容由AI生成仅供参考,请勿使用于商业用途。如若转载请注明原文及出处。
出处地址:http://www.07sucai.com/tech/54.html
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。