HTTP状态码
温馨提示:
本文最后更新于 2024年11月23日,已超过 147 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
HTTP(HyperText Transfer Protocol)状态码是服务器在响应客户端请求时返回的一个数字代码,用于表示该次请求的处理结果。这些状态码是标准化的,被定义在IETF(Internet Engineering Task Force,互联网工程任务组)的相关RFC(Request for Comments,请求评论)文档中。状态码由三位数字组成,可以分为五类,每类的第一个数字代表了不同的类别。下面我们将对每一类的状态码进行详细介绍。
一. 1xx 信息性状态码
这类状态码表示接收的请求正在处理,通常用于告知客户端请求已经被接收,但仍在处理过程中。
- 100 Continue - 表示客户端应继续其请求。服务器已经收到了请求的一部分,等待接收其余部分。通常用在大文件上传或分段上传,比如当客户端需要上传大文件时,可以先发送一个带有 Expect: 100-continue 头的请求。服务器如果准备好接收文件,会返回100状态码,客户端再发送文件数据。注意大文件上传时,客户端发送文件数据用的是之前同一个HTTP请求,而分段上传不是。
- 101 Switching Protocols - 服务器根据客户端的请求切换协议。这个状态码通常用于客户端请求服务器切换到另一种协议,例如从HTTP切换到WebSocket、HTTP/2等。服务器同意切换协议后,会返回101状态码,并在响应头中指定新的协议。作用就是用于协议协商,客户端和服务器之间必须通过HTTP请求进行协议协商,服务器同意后才会返回101状态码。
二. 2xx 成功状态码
这类状态码表示请求已成功被服务器接收、理解,并接受。
- 200 OK - 请求成功。这是最常见的成功响应状态码,适用于GET、POST等方法。
- 201 Created - 请求成功并且服务器创建了新的资源。通常用于POST请求成功后。
- 202 Accepted - 服务器已接受请求,但尚未处理。通常用于那些需要长时间处理的请求,以便告知客户端不必等待响应完成,服务器会在后台继续处理。
- 204 No Content - 服务器成功处理了请求,但没有返回任何内容。通常用于PUT或DELETE操作后,资源被更新或删除但不需要返回具体内容。
三. 3xx 重定向状态码
这类状态码表示需要客户端采取进一步的操作才能完成请求,通常涉及跳转至另一个URL。
- 301 Moved Permanently - 用于指示请求的资源已被永久移动到新的位置,并且所有未来的请求都应该使用新的URI,浏览器会自动重定向到新的URL。这个状态码通常用于重定向,以确保客户端和搜索引擎能够正确地更新链接,从而避免死链和提高用户体验。
- 302 Found - 请求的资源临时从不同的URI响应请求。这种重定向是临时的,客户端应当继续向原有地址发送以后的请求。
- 304 Not Modified - 用于指示请求的资源未被修改过。当客户端发送带有条件请求(如
If-Modified-Since
或If-None-Match
头)的请求时,如果服务器上的资源自上次请求以来没有被修改过,服务器会返回304状态码,而不是返回资源本身。这样可以节省带宽和提高性能,因为客户端可以使用其本地缓存的资源。
四. 4xx 客户端错误状态码
这类状态码表示请求包含语法错误或无法完成请求,通常是因为客户端的错误导致。
- 400 Bad Request - 服务器无法理解请求的格式,客户端不应该在没有更多修改的情况下重复此请求。这可能是由于请求参数错误等原因引起。
- 401 Unauthorized - 表示请求要求用户的身份认证。这意味着客户端需要提供有效的身份验证信息才能访问请求的资源。如果客户端已经提供了身份验证信息但仍然收到401状态码,这通常表示提供的凭据无效或过期。
- 403 Forbidden - 表示服务器理解请求客户端的请求,但是拒绝执行此请求。这意味着客户端没有足够的权限来访问请求的资源。即使客户端提供了身份验证信息,也无法获得访问权限。
- 404 Not Found - 请求失败,请求所希望得到的资源未被在服务器上发现。这通常是请求了一个不存在的页面或文件。
五. 5xx 服务器错误状态码
这类状态码表示服务器在尝试处理请求的过程中发生了错误,通常是服务器端的问题。
- 500 Internal Server Error - 服务器遇到了不知道如何处理的情况。这是一个通用的错误状态码,当服务器遇到未知错误时返回。
- 501 Not Implemented - 服务器不支持当前请求所需要的某个功能。这意味着客户端请求的方法或协议版本不受支持。
- 502 Bad Gateway - 当作为网关或代理的服务器从上游服务器(例如后端服务器)接收到一个无效的响应时,会返回502错误。这里的“无效”可能是指响应格式不正确、响应数据损坏,或者是根本就没有收到响应。
- 503 Service Unavailable - 由于临时的服务器维护或过载,服务器目前无法处理请求,客户端可以稍后再试。通常用在服务器维护或过载的时候。
- 504 Gateway Timeout - 当作为网关或代理的服务器在预定时间内没有从上游服务器(例如后端服务器)收到任何响应时,会返回504错误。这意味着代理服务器等待的时间超过了预设的超时时间,但仍然没有收到响应。
正文到此结束
- 本文标签: Web
- 本文链接: https://lanzi.cyou/article/22
- 版权声明: 本文由咖啡豆原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权