HTTP 协议定义了一系列的状态码,用于描述服务器对客户端请求的处理结果。这些状态码分为五个类别,每个类别都有特定的用途。
常见状态码
1开头 信息性状态码
这些状态码表示请求已被接收,继续处理。
100 Continue
:客户端应继续其请求。101 Switching Protocols
:服务器已理解客户端的请求,并将通过升级协议来进行处理。
2开头 成功状态码
这些状态码表示请求已成功被服务器接收、理解和接受。
200 OK
:请求成功,响应体通常包含请求的资源。201 Created
:请求成功并且服务器创建了新的资源,通常用于 POST 请求。202 Accepted
:请求已接受,但尚未处理完成,通常用于异步处理。204 No Content
:请求成功,但响应体为空,通常用于 DELETE 请求。
3开头 重定向状态码
这些状态码表示客户端需要采取进一步的操作才能完成请求。
301 Moved Permanently
:请求的资源已永久移动到新的 URI。302 Found
:请求的资源临时从不同的 URI 响应请求,通常用于临时重定向。304 Not Modified
:资源未被修改,客户端可以使用缓存的版本。307 Temporary Redirect
:请求的资源临时从不同的 URI 响应请求,与 302 类似,但不允许更改请求方法。
4开头 客户端错误状态码
这些状态码表示客户端的请求有误,服务器无法或不愿处理该请求。
400 Bad Request
:请求无效,通常是因为客户端发送的请求格式不正确。401 Unauthorized
:请求要求用户的身份认证。403 Forbidden
:服务器理解请求,但拒绝执行,通常是因为权限不足。404 Not Found
:请求的资源不存在。405 Method Not Allowed
:请求方法不被允许,通常是因为服务器不支持该方法。408 Request Timeout
:服务器等待请求的时间过长。429 Too Many Requests
:客户端在一段时间内发送了太多请求,通常用于限流。
5开头 服务器错误状态码
这些状态码表示服务器在处理请求时发生了错误。
500 Internal Server Error
:服务器遇到了未知的错误,无法完成请求。501 Not Implemented
:服务器不支持请求的方法。502 Bad Gateway
:服务器作为网关或代理,从上游服务器收到了无效的响应。503 Service Unavailable
:服务器暂时无法处理请求,通常是因为过载或维护。504 Gateway Timeout
:服务器作为网关或代理,未能及时从上游服务器获取响应。505 HTTP Version Not Supported
:服务器不支持请求中使用的 HTTP 版本。
总结
这些状态码帮助客户端理解服务器对请求的处理结果,并采取相应的行动。了解这些状态码及其适用场景对于开发和调试 HTTP 应用非常重要。