
前言
状态码主要是用于描述返回的请求出现了什么样类型的问题
- 1xx:表示接收的请求正则处理中
- 2xx:表示正常处理完毕
- 3xx:需要附加一些操作来完成全部请求,常见的比如重定向这样的附加操作
- 4xx:客户端错误导致服务器无法处理请求
- 5xx:服务器在处理请求时候出现问题
其实在 RFC2616 上的 HTTP 状态码就达到了 40 种,若再加上一些扩展的状态码就能达到 60 多种,但实际上常用的也就十几种
2xx 状态码
表示处理完成,常见的有 200,204,206
200
最常见的就是 200 了,表示请求结果正常处理和返回
3xx 状态码
常见的重定向之类,常见的有 301,302,303,304,307
301
永久重定向,资源被永久转移到新的 URI
302
临时重定向
304
304 和重定向没有关系,它表示服务端资源没有改变,可以使用客户端未过期的缓存数据。304 响应时不包含任何主体部分
4xx 状态码
表示客户端的问题,常用的有 400,401,403,404
400
表示请求报文中存在语法错误,一般我们通过修改请求内容再次发送即可
401
表示服务端无法认证客户端身份
403
表示服务端直接拒绝了客户端请求资源的请求,一般是客户端请求身份未授权等原因
404
一般是服务端没有找到相应的资源,资源缺失造成的
5xx 状态码
表示服务端的问题,常用的有 500,503
500
500 表示内部服务错误,一般是 web 应用出现故障导致的
503
503 表示服务不可用,一般是停机原因,或者服务器负载过大导致的