以下文章来源于JS每日一题 ,作者灰灰
每天一道经典前端面试题, 采用60秒语音答题模式(禁文字答题),群管理输出标准答案次日推送至群内供大家复盘参考,坚持做到事事有回音,题题有答案
HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码
它由 RFC 2616规范定义的,并得到 RFC 2518
、RFC 2817
、RFC 2295
、RFC 2774
与 RFC 4918
等规范扩展
简单来讲,http
状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服务器的运行状态
状态码第一位数字决定了不同的响应状态,有如下:
代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束
常见的有:
代表请求已成功被服务器接收、理解、并接受
常见的有:
200(成功):请求已成功,请求所希望的响应头或数据体将随此响应返回
201(已创建):请求成功并且服务器创建了新的资源
202(已创建):服务器已经接收请求,但尚未处理
203(非授权信息):服务器已成功处理请求,但返回的信息可能来自另一来源
204(无内容):服务器成功处理请求,但没有返回任何内容
205(重置内容):服务器成功处理请求,但没有返回任何内容
206(部分内容):服务器成功处理了部分请求
表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向
常见的有:
300(多种选择):针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择
301(永久移动):请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置
302(临时移动):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
303(查看其他位置):请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码
305 (使用代理):请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理
307 (临时重定向):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
代表了客户端看起来可能发生了错误,妨碍了服务器的处理
常见的有:
表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生
常见的有:
下面给出一些状态码的适用场景:
100:客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。常用于POST大数据传输
206:一般用来做断点续传,或者是视频文件等大文件的加载
301:永久重定向会缓存。新域名替换旧域名,旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名
302:临时重定向不会缓存,常用 于未登陆的用户访问用户中心重定向到登录页面
304:协商缓存,告诉客户端有缓存,直接使用缓存中的数据,返回页面的只有头部信息,是没有内容部分
400:参数有误,请求无法被服务器识别
403:告诉客户端禁止访问该站点或者资源,如在外网环境下,然后访问只有内网IP才能访问的时候则返回
404:服务器找不到资源时,或者服务器拒绝请求又不想说明理由时
503:服务器停机维护时,主动用503响应请求或 nginx 设置限速,超过限速,会返回503
504:网关超时
推荐阅读:
编程技巧 · 行业秘闻 · 技术动向