一,是什么
HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码 它由 RFC 2616规范定义的,并得到 RFc 2518 、REC 2817.RFC 2295 、 REC 2774与 RPC 4918等规范扩展 简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服务器的运行状态
二,分类
1xx | 指示信息–表示请求已接收,继续处理。 | 2xx | 成功–表示请求已被成功接收、理解、接受。 | 3xx | 重定向–要完成请求必须进行更进一步的操 | 4xx | 客户端错误–请求有语法错误或请求无法实现。 | 5xx | 服务器端错误–服务器未能实现合法的请求。 |
三,常用
200 | 请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中; | 400 | 语义有误,当前请求无法被服务器理解。 | 401 | 当前请求需要用户验证 | 403 | 服务器已经理解请求,但是拒绝执行它。 | 404 | (客户端问题)请求的资源没有找到 | 500 | (服务端问题)请求资源找到了,但服务器内部发生了不可预期的错误; | 301/302/303 | (网站搬家了,跳转)重定向 | 304 | ?Not Modified,代表上次的文档已经被缓存了,还可以继续使用。如果你不想使用本地缓存可以用Ctrl+F5 强制刷新页面 |
四,具体的
1xx
代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束 常见的有:
100 | (客户端继续发送请求,这是临时响应)∶这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应 | 101 | 服务器根据客户端的诘求切换协议,主要用于websocket或http2升级 |
2xx
代表请求已成功被服务器接收、理解、并接受
常见的有:
200(成功) | 请求已成功,请求所希望的响应头或数据体将随此响应返回 201(已创建):请求成功并且服务器创建了新的资源 | 202(已创建) | 服务器已经接收请求,但尚未处理 | 203(非授权信息) | 服务器已成功处理请求,但返回的信息可能来自另一来源204(无内容):服务器成功处理请求,但没有返回任何内容 | 205(重置内容) | 服务器成功处理请求,但没有返回任何内容.206(部分内容):服务器成功处理了部分请求 |
3xx
表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向
常见的有:
300(多种选择) | 针对请求,服务器可执行多种操作。服务器可根据请求者(user agent)选择一项操作,或提供操作列表供请求者选择 | 301(永久移动) | 请求的网页已永久移动到新位置。服务器返回此响应(对GET或 HEAD请求的响应)时,会自动将请求者转到新位置 | 302(临时移动) | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求 | 303(查看其他位置) | 请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码 | 305(使用代理) | 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理 | 307(临时重定向) | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进 行以后的请求 |
4xx
代表了客户端看起来可能发生了错误,妨碍了服务器的处理
常见的有:
400(错误请求) | 服务器不理解请求的语法 | 401(未授权) | 请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。 | 403(禁止) | 服务器拒绝请求 | 404(未找到) | 服务器找不到请求的网页 405(方法禁用):禁用请求中指定的方法 | 406(不接受) | 无法使用请求的内容特性响应请求的网页 | 407(需要代理授权) | 此状态代码与401(未授权)类似,但指定请求者应当授权使用代理· 408(请求超时):服务器等候请求时发生超时 |
5xx
表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生 常见的有:
500(服务器内部错误) | 服务器遇到错误,无法完成请求 | 501(尚未实施) | 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码 | 502(错误网关) | 服务器作为网关或代理,从上游服务器收到无效响应● 503(服务不可用):服务器目前无法使用(由于超载或停机维护) | 504(网关超时) | 服务器作为网关或代理,但是没有及时从上游服务器收到请求505(HTTP版本不受支持):服务器不支持请求中所用的HTTP 协议版本 |
五,适用场景
100 | 客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如 果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。常用于POST大数据传输 | 206 | 一般用来做断点续传,或者是视频文件等大文件的加载 | 301 | 永久重定向会缓存。新域名替换旧域名,旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名 | 302 | 临时重定向不会缓存,常用于未登陆的用户访问用户中心重定向到登录页面 | 304 | 协商缓存,告诉客户端有缓存,直接使用缓存中的数据,返回页面的只有头部信息 | 400 | 参数有误,请求无法被服务器识别 | 403 | 告诉客户端进制访问该站点或者资源,如在外网环境下,然后访问只有内网IP才能访问的时候则返回 | 404 | 服务器找不到资源时,或者服务器拒绝请求又不想说明理由时 | 503 | 服务器停机维护时,主动用503响应请求或nginx设置限速,超过限速,会返回503504:网关超时 |
|