HTTP状态码可以按照类别进行分类,主要包括以下五个类别:
1.信息性状态码(Informational Status Codes)
以1开头的状态码,表示请求正在处理或需要进一步操作
- 100 Continue:表示客户端应该继续发送请求。服务器已接收到请求的头部,并且客户端应该继续发送请求的主体部分。
- 101 Switching Protocols:表示服务器已经理解客户端的请求,并将切换到不同的协议来完成请求。
- 102 Processing:表示服务器正在处理请求,但尚未完成。
这些信息性状态码主要用于指示请求的进展情况或需要进一步操作,通常在数据传输过程中使用,以提供更详细的信息或进行指示。
2.成功状态码(Success Status Codes)
以2开头的状态码,表示服务器成功接收、理解并处理了请求
- 200 OK:表示请求成功,并返回相应的内容。这是最常见的成功状态码。
- 201 Created:表示请求成功,并且在服务器上成功创建了新的资源。
- 202 Accepted:表示服务器已经接受请求,但尚未处理完成。通常用于异步操作,表示服务器已经开始处理请求。
- 204 No Content:表示服务器成功处理了请求,但没有返回任何内容。常用于不需要返回具体数据的情况。
这些成功状态码表示服务器成功接收、理解并处理了请求,并根据请求的类型进行了相应的操作。客户端通常可以从响应中获取所需的信息或进一步操作。
3.重定向状态码(Redirection Status Codes)
以3开头的状态码,表示资源位置发生变化,需要客户端进行额外操作来完成请求
- 301 Moved Permanently:表示被请求的资源已永久移动到新位置。客户端应该使用新的URL进行后续请求。
- 302 Found:表示被请求的资源临时移动到新位置。客户端应该使用新的URL进行后续请求。
- 303 See Other:表示对应当前请求的响应可以在另一个URI下被找到,客户端应该使用GET方法进行重定向。
- 307 Temporary Redirect:表示被请求的资源临时移动到新位置。客户端应该保持原始请求方法进行后续请求。
- 308 Permanent Redirect:表示被请求的资源已永久移动到新位置。客户端应该保持原始请求方法进行后续请求。
这些重定向状态码用于告知客户端所请求的资源已经改变了位置,需要进行额外的操作或使用新的URL来获取资源。客户端通常会自动处理重定向,并根据重定向响应的状态码和头部信息进行相应的跳转。
4.客户端错误状态码(Client Error Status Codes)
以4开头的状态码,表示客户端发送的请求有误或无法被服务器理解
- 400 Bad Request:表示服务器无法理解客户端发送的请求,通常是由于请求格式不正确或缺少必要的参数。
- 401 Unauthorized:表示请求需要身份验证,但客户端未提供有效的身份验证凭证。
- 403 Forbidden:表示服务器已经理解请求,但拒绝执行。客户端没有访问请求资源的权限。
- 404 Not Found:表示请求的资源不存在,服务器无法找到对应的资源。
- 405 Method Not Allowed:表示请求方法不被允许。例如,尝试使用不允许的HTTP方法(如POST而不是GET)访问资源。
这些客户端错误状态码表示客户端发送的请求有误,或者请求的资源不存在或无访问权限。客户端通常需要根据这些状态码做相应的处理,例如修正请求、提供有效的身份验证凭证或显示错误页面。
5.服务器错误状态码(Server Error Status Codes)
以5开头的状态码,表示服务器在处理请求时出现了错误
- 500 Internal Server Error:表示服务器在执行请求时遇到了意外的错误,无法完成请求。
- 501 Not Implemented:表示服务器不支持或未实现客户端请求的功能或方法。
- 502 Bad Gateway:表示作为网关或代理服务器的服务器从上游服务器接收到无效的响应。
- 503 Service Unavailable:表示服务器暂时无法处理请求,通常是由于过载或维护导致的临时状况。
- 504 Gateway Timeout:表示作为网关或代理服务器的服务器在等待上游服务器响应时超时。
这些服务器错误状态码表示服务器在处理请求时遇到了问题,无法正常完成请求。客户端通常需要等待服务器问题解决或向服务器管理员报告问题。