前端面试常见问题之HTTP状态码
一、基本概念
HTTP 状态码是客户端向服务端发起请求后,服务端返回的状态码及状态信息,状态码一般由三位数字组成,状态码的首字母一共有5种,分别是1-5,代表着5种不同的类型信息。以下是类型信息与具体的状态码信息。
二、状态码类别
1xx:通知信息,http服务器接收到请求,等待客户端的进一步消息发送。
100(“Continue”):继续发送请求(服务端已经接收到一部分,继续发送剩下的请求)。
101(“Switching Protocols”):切换不同的协议,可切换到高版本的协议或者其他协议。在使用 Websoket 时就是先使用 HTTP 协议握手,再切换到 Websoket 协议进行数据传输。
102(“Processing”):由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
2xx:请求成功,代表请求已经被服务器成功接收并处理。
200(“Ok”):服务器接收到请求并成功处理了。
201(“Created”):请求已经被实现,同时也创建了一个新的资源。
202(“Accepted”):请求已经被接收,但尚未处理,有可能处理,也有可能出现异常。
203(“Non-Authoritative Information”):服务器已经成功处理了请求,但是有些报文头并非来自本服务器。
204(“No content”):服务器已经成功处理了请求,但不返回响应体。
205(“Reset Content”):服务器已经成功处理了请求,但是没有返回响应体,需要客户端重置数据结构。
206(“Partial Content”):服务器已经成功处理了部分GET请求。
207(“Partial Content”):由WebDAV(RFC 2518)扩展的状态码,代表之后的消息将是一个XML消息。
3xx:重定向,需要进一步的操作才能得到资源。
300(“Multiple Choices”):多种选择,请求的资源可以有多种表示,服务器根据不同的表示重定向到不同的资源。
301(“Moved Permanently”):永久重定向,表示旧地址资源已经被永久的移除了(资源不可以访问了),搜索引擎在抓取新内容的同时也将网址换位重定向之后的地址。
302(“Move temporarily”):临时重定向,表示旧地址还在,只是临时将旧地址跳转到新地址(当一个网页24-48小时临时移动到一个新的地址)。
//例:将当前访问路径重定向到百度页面。
res.status('302');
res.redirect('https://www.baidu.com');
//设置之后再访问当前路径,会重定向到 'https://www.baidu.com',状态为 200,
//但是当前路径请求的状态为 302。
303(“See Other”):一个资源可以在其他URL上被访问到。
304(“Not Modified”):所请求的资源未做任何修改,所以也不会返回响应体。应用场景:协商缓存 Last-Modified 修改时间小于或等于 If-Modified-since。
305(“Use Proxy”):所请求的资源必须通过代理访问。
306(“Switch Proxy”):未使用,已经废弃的状态码。
307(“Temporary Redirect”):临时重定向,请求没有被处理,需要发送到另外一个URL上。
//例:后台设置了当前访问路径重定向到百度页面。
res.status('302');
res.redirect('http://www.baidu.com');
//可以看到以上地址写的是 'http://www.baidu.com',
//但是百度页面正确地址是 'https://www.baidu.com'(注意是 https)。
//所以在发送请求的时候会先重定向到 'http://www.baidu.com',该请求状态为 307,
//再重定向到正确的地址 'https://www.baidu.com',状态为 200。
308(“Permanent Redirect”):永久重定向,请求没有被处理,需要发送到另外一个URL上。
重定向原因:
网站目录结构调整;
网页地址改变(想换个更合适的域名);
网页拓展名改变(如 .php 改成 .html);
注册了多个域名的网址从定向到主站点(便于搜索引擎统计访问量)。
4xx:客户端错误,认证信息错误、语法错误、约定的数据格式错误等。
400(“Bad Request”):当前请求不被服务器所理解,语义有误(HTTP/1.1 的所有请求报文中必须包含一个 Host 头字段。如果一个 HTTP/1.1 请求缺少 Host 头字段或者设置了超过一个的 Host 头字段就会返回400)。或者缺少请求参数。
401(“Unauthorized”):发送的请求需要通过http认证。
402(“Payment Required”):保留,为将来使用。
403(“Forbidden”):服务器已经接收请求,但是拒绝执行。出现场景:跨域。
404(“Not Found”):最常见错误,请求的资源不在服务器上。
405(“Method Not Allowed”):请求方式不被允许。
406(“Not Acceptable”):服务端无法满足客户端的请求头信息(比如服务端没有客户端想要的类型资源文件或者可以匹配的字符集版本时)。
407(“Proxy Authentication Required”):使用代理服务器,并需要身份验证。
408(“Request Timeout”):客户端请求超时,没法在服务器规定的时间内完成请求。
409(“Conflict”):客户端请求冲突。
410(“Gone”):客户端请求的资源不在,以前可能存在,但是现在不在,也不知道可重定向的URL。
411(“Length Required”):客户端的请求头中必须设置Content-Length。
412(“Precondition Failed”):客户端可以在请求头中设置前置条件,比如设置请求方式,以此避免该请求方法被应用到其希望的内容以外的资源上,服务端在验证请求头字段给出的先决条件,没能满足时则返回412,比如断点续传(一个资源分多次传输,所以中间不能被修改),如果文件被修改了,则不满足先决条件,所以返回412。
413(“Request Entity Too Large”):客户端提交的请求数据太大,服务器拒绝处理。
414(“Request-URI Too Large”):请求的URL过长,服务器拒绝处理。
415(“Unsupported Media Type”):客户端使用了服务端无法执行的媒体类型。
416(“Requested range not satisfiable”):客户端请求的范围无效。
417(“Expectation Failed”):客户端的请求头中Expect指定的内容无法被服务器满足。
421(“too many connections”):客户端的连接数超过了服务器许可的最大范围。
422(“Unprocessable Entity”):客户端语义错误,无法响应。
423(“Locked”):当前资源被锁定。
424(“Failed Dependency”):由于之前的请求错误,导致当前请求也失败。
425(“Unordered Collection”):在WebDav Advanced Collections 草案中定义,但是未出现在《WebDAV 顺序集协议》(RFC 3658)中。
426(“Upgrade Required”):升级要求,客户端应当切换到TLS/1.0。
449(“Retry With”):由微软扩展,代表请求应当在执行完适当的操作后进行重试。
451(“Unavailable For Legal Reasons”):该请求因法律原因不可用。(RFC 7725)
5xx:服务器错误,服务器在处理客户端请求的时候发生错误。
500(“Internal Server Error”):服务器的源代码出现错误。比如服务器的包模块没有引入。
501(“Not Implemented”):服务器无法完成请求的某种功能或某种数据格式。
502(“Bad Gateway”):网关错误,代理与上游服务器发生错误。
503(“Service Unavailable”):由于超载或者系统维护,服务器没法当时就完成所有的请求。 ajax轮询 和 long poll 高并发的时候会发生这种情况。
504(“Gateway Timeout”):与502有些类似,网关或代理服务器执行请求的时候,未能及时收到上游服务器的响应。
505(“HTTP Version Not Supported”):不支持HTTP版本。
506(“Variant Also Negotiates”):服务器内存配置错误。
507(“Insufficient Storage”):服务器无法存储完成请求所必须的内容。
509(“Bandwidth Limit Exceeded”):服务器达到宽带限制。
510(“Not Extended”):获取资源所需要的策略并没有被满足。
600(“Unparseable Response Headers”):源站没有返回响应头,只返回响应实体。
前端面试常见问题之HTTP状态码相关推荐
- vue 前端面试常见问题汇总(11-20)
目录 前言 一.谈一谈 nextTick 的原理? 二.vue 是如何对数组方法进行变异的?例如 push.pop.splice 等方法 三.Vue 中的 computed 和 watch 的区别在哪 ...
- 前端面试技巧和注意事项_2020大厂web前端面试常见问题总结
本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题.通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者. 1.web前端项目的结构是怎样的?文件有哪些命名规范? 项 ...
- SpringBoot和SpringSecurity整合,未登录请求自定义controller访问前端页面,出现 302状态码,一直在登录页面重定向
出现问题: 在登录界面点击 自定义注册界面的跳转 或者 自定义首页界面的跳转 在url路径上虽然通过自定义的controller层访问到 但是页面始终在登录界面,通过F12控制台查看 出现状态码302 ...
- 数字IC前端面试常见问题整理
一些面试的时候经常会被问到的问题,把还能记得的几个整理了一下. 目录 技术面问题 八股 项目 综合面问题 技术面问题 八股 数字电路中有哪几种逻辑电路,讲一下它们的区别. 组合逻辑,时序逻辑. 组合逻 ...
- 前端请求后台网址,状态码401 Unauthorized 返回的code500 不知道怎么解决了 救救
之间用的请求网址是可以登录的,换新的之后就出现了这样的问题,但postman那儿就可以请求到登陆成功,前端配置文件也是换成了新的请求网址.有没有人知道这是什么问题呀
- 前端面试常见问题和技术解决方案
一.跨域 1.同源策略 浏览器同源策略限制请求 同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源. 限制以下行为 Cookie.LocalSto ...
- 面试官问你HTTP状态码,你敢答吗?
2021.04.19 更新,添加对 304 状态码的描述. 前言 HTTP状态码的作用是告知客户端,从服务器端返回的请求结果.听说面试会问HTTP状态码,相比那些神仙操作,这个记忆性的知识点准备起来比 ...
- 【前端 · 面试 】HTTP 总结(四)—— HTTP 状态码
最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正.交流. 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火. 前言 通过前面的总结,我们都知道, ...
- 丁鹿学堂:前端http面试总结,状态码详解
http请求方法总结 get: 从服务器获取资源 post:在服务器创建资源 put:在服务器修改资源 delete:在服务器删除资源 注意: post和put的最大区别,在于put具有幂等性.比如你 ...
最新文章
- Scrum Master如何让敏捷团队正常运转?
- requests库和BeautifulSoup4库爬取新闻列表
- Computing--图灵机
- C语言实现克拉茨Collatz序列(附完整源码)
- document write的用法
- bashrc, bash_profile etc;
- Android之放大镜实现的两种方式
- hive 配置mysql_Hive的mysql安装配置
- GeoServer使用CSS渲染地图
- canvas 压缩图片上传
- Python项目实战:爬取斗图网表情包图片
- css定位position,absolute relative两种情况下,top,left,right,bottom的区别
- DocFetcher CMD 启动脚本
- 火星开发板_数据科学家来自火星,软件开发人员来自金星
- Snagit 10 截图 虚拟打印机 【下载|注册码】
- OMNeT 例程 Tictoc1-5 总结
- knife4j文档-个人笔记
- 安利——程序猿必备笔记软件typora+坚果云
- 什么是深度学习? 模仿人脑的算法
- 【创文进行时】创建文明城市社区在行动