常见的响应状态码
首先我们要先知道状态码分为哪几类:(通过一个状态码分类表来理解)
状态码分类 | 说明 |
---|---|
1xx | 响应中 – 临时状态码,表示请求已经接收,告诉客户端应该继续请求或者是如果已经请求完成则忽略它 |
2xx | 成功 – 表示请求已经被成功接受,处理已经完成了 |
3xx | 重定向 – 重定向到其他地方,它会让客户端再发起一个请求,以完成整个处理 |
4xx | 客户端错误 – 处理发生错误,责任在客户端(如: 客户端在请求一个不存在的资源或者客户端未被授权,或者禁止访问等等) |
5xx | 服务器端错误 – 处理发生错误,责任在服务器端(如: 服务端抛出异常,路由出错,HTTP版本不支持等) |
- 注意: 1开头的响应状态码是一个"临时状态码" , 这类响应属于临时响应, 响应数据中只有会响应行和某些响应头, 这种临时响应最终会以空行结束, http1.0协议中没有定义任何的1xx的状态码, 所以除非是某些测试条件之下, 我们的服务器一般都是禁止向客户端浏览器响应1开头的状态码的
- 以空行结束其实就是说是没有响应体的, 因为空行指的就是响应头和响应体之间的空白行, 所以以空行结束就是表示没有响应体 ( 响应体是在空行的后面的 )
常见的响应状态码:
状态码 | 英文描述 | 解释 |
---|---|---|
200 | OK | 客户端请求成功,即处理成功,这是我们想要看到的状态码 |
302 | Found | 指示所请求的资源已经移动到由Location响应头给定的URL,浏览器会自动重新访问到这个URL对应的页面 |
304 | Not Modified | 告诉客户端,你请求的资源上次取得之后,服务器并未发生更改,你直接用本地缓存吧 --> 这也是一种重定向,重定向到了本地缓存中, 我们就会去本地缓存中找,减轻了服务器端的压力 |
400 | Bad Request | 客户端请求有语法的错误, 不能被服务器端所理解 |
403 | Forbidden | 服务端收到了请求但是拒绝提供服务(可能是客户端没有访问该资源的权限) |
404 | Fot Found | 请求的资源不存在(一般是URL输入有问题或者是网站资源被删除了) |
428 | Precondition Required | 服务端要求有条件的请求,告诉客户端要向访问该资源就必须携带指定的特定请求头来访问 |
429 | Too Many Requests | 太多请求,可以限制客户端请求某个资源的数量,配合Retry-After(多长时间之后可以请求)响应头一起使用 |
431 | Request Header Fields Too Large | 请求头太大了,服务器不愿意处理请求, 因为头部资源太大了,请求可以在减少了请求头域之后重新提交 |
405 | Method Not Allowed | 请求方式有误(比如: 应该使用GET请求方式的资源使用了POST请求) |
500 | Internal Server Error | 服务器发生了不可预期的错误(服务器端出错了,赶紧去看日志吧,然后去修改服务端的Java代码) |
503 | Service Unavailable | 服务器尚未准备好处理请求(也就是服务器刚刚启动完成,还没有初始化好) |
511 | NetWork Authentication Required | 客户端需要进行身份验证才能获得网络访问权限 |
- 428和429还有431都是比较新的状态码
分批记忆(一): --> ed
200表示ok,表示没有问题
404表示请求的资源不存在
分批记忆(二): --> ing
304 : 表示上次缓存的资源没有变过, 所以告诉你直接去本地查找资源, 也算是一种重定向, 是重定向到了本地缓存中
400 : 客户端请求有语法错误, 不能被服务端所理解
405 : 客户端请求方式有误, 应该使用get请求的方式可能使用了post请求
500 : 服务端发生了不可预期的错误, 其实也就是服务器端代码有错误, 就表示应该去看日志, 修改代码
ed表示记完了, ing表示正在记忆