什么是状态码
状态码的作用
- 状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。
- 借助状态码,用户可以知道服务器是正确处理了请求,还是出现了错误。
状态码的分类
- 状态码中数字第1位指定了响应类别,有以下几种: | | 类别 | 原因短语 | | —- | —- | —- | | 1XX | Information(信息性状态码) | 接受的请求正在处理 | | 2XX | Success(成功状态码) | 请求正常处理完毕 | | 3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 | | 4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 | | 5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
常用的状态码
状态码数量繁多,但经常使用的大概有14种。
2XX(成功)
200 OK
- 客户端发来的请求在服务器端被正常处理了。
204 No Content
- 服务器接收的请求已经正常处理,但在返回的响应报文中不含主体。
206 Partial Content
- 客户端进行了范围请求,而服务器成功执行了这部分的GET请求。
3XX(重定向)
301 Moved Permanently
- 永久性重定向
- 请求的资源已被分配了新的URL,以后应使用新的URL。
302 Found
- 临时性重定向
- 请求的资源已被分配了新的URL,希望用户本次能使用新的URL访问。
303 See Other
- 与302功能相同,但明确表示客户端应采用GET方法获取资源。
304 Not Modified
- 客户端发送附带条件的请求时,服务器端允许访问资源,但未满足条件。
307 Temporary Redirect
- 临时重定向
- 功能与302相同。
4XX(客户端错误)
400 Bad Request
- 请求报文中存在语法错误
401 Unauthorized
- 发送的请求需要有通过HTTP认证的认证信息
403 Forbidden
- 对请求资源的访问被服务器拒绝了。
404 Not Found
- 服务器上无法找到请求的资源
5XX(服务器错误)
500 Internal Server Error
- 服务器端在执行请求时发生了错误。
- 也可能是Web应用存在的Bug或某些临时的故障。
503 Service Unavailable
- 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
有时候返回的状态码是错误的 ❌,但是用户可能觉察不到这一点。