服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

【面经】面试中遇到频率最高的23道HTTP面试题,需要全都背!

日期: 来源:前端之神收集编辑:林三心不学挖掘机

模拟面试、简历指导可私信找我,最低的价格收获最高的指导~

前言

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心。

1、GET进而POST的区别?

  • 幂等:前者幂等,后者非幂等(幂等指的是一次请求和多次请求的效果相同)
  • 应用场景:前者用来获取资源,后者用来提交资源
  • 缓存:前者一般会做缓存,后者不做缓存
  • 传参:前者只能传字符串拼接,后者可以请求体、字符串拼接
  • 安全性:都不安全
  • 传参长度:由于前者传参是url拼接,所以会因为浏览器限制url长度,而导致传参长度被限制
  • 参数类型:前者只允许传ASCII字符,后者支持文件、图片、表单、JSON等

2、POST和PUT的区别?

POST一般用来提交新数据,PUT一般用来修改数据

3、常见HTTP请求头

请求头

  • Accept:浏览器能够处理的内容类型
  • Accept-Charset:浏览器能够显示的字符集
  • Accept-Encoding:浏览器能够处理的压缩编码
  • Accept-Language:浏览器当前设置的语言
  • Connection:浏览器与服务区之间的连接类型
  • Cookie:当前页面设置的Cookie
  • Host:发送请求的域名
  • Referer:发送请求的页面URL
  • User-Agent:浏览器的用户代理字符串

响应头

  • Date:消息发送的时间
  • server:服务器名称
  • Connection:浏览器与服务器之间的连接类型
  • Cache-Control:HTTP强缓存
  • Content-Type:数据类型

4、页面有多张图片,HTTP怎么加载表现的?

HTTP1时期,最大TCP连接数只能为6,所以会请求多次

HTTP2时期,支持多路复用,可以一瞬间加载出来,牛逼!

5、说说状态码304

协商缓存命中时返回304

6、常见的HTTP请求方法

  • GET:获取资源
  • POST:提交资源
  • PUT:提交并修改资源
  • PATCH:对资源部分修改
  • OPTIONS:探头,用来探测是否支持请求方法、跨域、安全
  • CONNECT:与代理服务器建立管道,使用管道进行TCP通信
  • TRACE:让服务器原样返回客户端的请求信息内容,用于测试或诊断

7、HTTP1.0与HTTP1.1的区别?

  • 连接:1.0非持久连接,1.1持久连接,多个http请求可复用同一个TCP连接

  • 资源请求:1.1引入了range头,允许只请求资源的某个部分

  • 缓存:1.0使用Expire、If-Modified-Since来当做缓存投;1.1使用Etag、If-None-Match、If-Match

  • Host:1.1新赠Host请求头,用来表示请求服务器的域名

  • 方法:1.1新增PUT、HEAD、OPTIONS等方法

8、HTTP1.1与HTTP2.0的区别?

  • 二进制协议:2.0头信息和数据体都是二进制,统称为“帧”,是多路复用的基础

  • 多路复用:2.0复用TCP连接,同一个TCP连接中,可发多个请求或回应,这就解决了队头阻塞问题

  • 数据流:2.0将每个请求或回应的所有数据包统称为一个数据流,每一个数据流都有独一无二的编号ID,用于数据传输时的区分

  • 头信息压缩:2.0维护一张头信息表,所有头字段信息都会记录在这张表里,发送时只需要发送对应的key就行,大大节省空间。为啥这么做呢?你想想,如果多个header内容都一样,照样发送的话,是不是很浪费空间

  • 服务器推送:2.0可提前向客户端推送静态资源,这样客户端页面的加载延迟就会大大减少

9、队头阻塞是啥?

是啥?

你可以理解为,以前的HTTP请求都是一发一收的模式,有点类似于串行,也就是排队。那如果有多个请求并发的话,那就需要等待很久啊。

解决?

  • 并发连接:串行变并行,提升总体请求速度
  • 域名分片:域名分出很多二级域名,这样可并发的数量就变多了,也就提升了总体请求速度

10、HTTP和HTTPS的区别?

HTTPS = HTTP + SSL,涉及到对称加密、非对称加密、证书

可以看我的文章:https://juejin.cn/post/7042158171778973732

11、页面从输入URL后发生啥?

  • 解析URL为IP:走的是DNS解析那一套,依次寻找浏览器缓存、本地DNS服务器、根域名DNS服务器、权威DNS服务器,直到寻找到IP,并缓存在浏览器缓存

  • TCP三次握手:确保客户端和服务端之间的连通性

  • 发送HTTP请求:发送请求报文

  • 页面渲染:HTML解析器和CSS解析器并行构建DOM树CSS树,然后结合成CSSOM树,JS引擎运行JS代码,进行DOM的操作或修改。然后进行UI布局、绘制,进而将整个页面渲染出来

  • TCP四次挥手:客户端和服务端断开连接

12、什么是WebSocket?

WebSocket是一种网络通信协议,是在TCP连接上进行全双工通信的协议。

Websocket可以实现客户端和服务端之间进行全双工通信,任何一方都可以通过简历连接将数据传到另一端,它只需要建立一次连接,就可以一直保持连接状态

13、HTTP状态码有哪些状态码?

  • 1XX:信息类状态码
  • 2XX:成功状态码
  • 3XX:重定向状态码
  • 4XX:请求错误状态码
  • 5XX:服务端错误状态码

2XX

  • 200:成功处理请求
  • 201:成功创建,一般应用在POST
  • 202:服务端接收请求,但尚未处理,不保证完成请求
  • 204:请求成功,但是相应爆文不含实体的主体部分

3XX

  • 301:永久性重定向
  • 302:临时重定向
  • 304:协商缓存命中

4XX

  • 400:请求内容存在语法错误
  • 401:请求无权限
  • 403:请求资源被服务端拒绝
  • 404:无法找到请求的资源

5XX

  • 500:服务器报错
  • 501:服务端不支持当前请求所需要的某个功能
  • 503:服务器暂时处于超负载或停机维护,无法处理请求

14、什么是DNS?

DNS(Domain Name System)域名系统,他的作用,简单来说就是把请求域名转换成IP

15、DNS的查询IP过程

  • 1、先在浏览器缓存中查找IP地址,查到直接返回,不走下一步
  • 2、在本地DNS服务器中查找IP,查到直接返回,不走下一步
  • 3、本地DNS服务器向根域名服务器发送请求,并在其中查找IP,查到直接返回,不走下一步
  • 4、本地DNS服务器向权威域名服务器发送请求并查找IP,返回对应结果
  • 5、本地DNS服务器接收到结果,并缓存,供下次查找使用
  • 6、本地DNS服务器将接收到结果返回给浏览器

16、TCP的三次握手

  • 第一次握手:客户端向服务端发送请求报文段,此报文段中包含自身数据通讯初始序号。客户端进入SYN-SENT状态
  • 第二次握手:服务端接收到报文后,同意链接,发送应答,此应答也包含自身数据通讯初始序号,发送完后进入SYN-RECEVED状态
  • 第三次握手:客户端收到同意连接的应答,向服务端发送确认报文。双方同时进入ESTABLISHED状态,连接成功建立

17、TCP的四次挥手

  • 第一次挥手:客户端认为数据发送完成后,向服务端发送连接释放请求
  • 第二次挥手:服务端收到释放请求后,确认不再接收客户端发送的数据
  • 第三次挥手:如果服务端此时还有没发完的数据会继续发送,发送完后,服务端向客户端发送连接释放请求
  • 第四次挥手:客户端收到释放请求后,向服务端发送确认应答,正式断开连接

18、Token是啥?

是啥?

Token(令牌),一般由uid + time +sign + 固定参数组成

  • uid:用户唯一身份标识
  • time:当前时间戳
  • sign:签名
  • 固定参数:可选,一些自定义的字符串

获取Token过程?

  • 1、用户登录,服务端生成Token返回给客户端
  • 2、客户端把Token保存在浏览器缓存中
  • 3、客户端发送请求时把Token放在header中
  • 4、服务端收到Token后,判断Tokne的准确性和时效性,通过就返回对应数据,不通过就返回401

作用?

  • 抵抗CSRF
  • 节省后端存储空间

19、如何无感刷新Token?

在响应拦截器中拦截401,并判断Token过期,调用刷新Token的接口,重置Token,实现无感刷新

20、跨域报错的时机?

客户端请求完服务端,服务端返回数据,到达浏览器时,报跨域错误

21、跨域的解决方案?

  • JSONP:只适用于GET请求,已被淘汰

  • Node中间件代理:跨域只是对于客户端的限制,但是不对服务端限制,所以可以先把接口发到代理服务端,然后转发到目标服务端

  • Nginx反向代理:类似于Node中间件转发,只不过这里是Nginx代理

  • Cors:后端开启Cors(Cross Orgin Resource Share)

22、XSS和CSRF

XSS

是什么

跨域脚本攻击,一般指的是有人往网站注入恶意脚本,使之在网页中运行,从而盗取cookie等信息

可达到以下攻击:

  • 获取页面数据,如DOM、cookie、LocalStorage
  • DOS攻击,发送合理请求,占用服务器资源,使用户无法正常访问服务器
  • 破坏页面结构
  • 流量劫持(将链接指向某网站)

防御

对存储到后端的数据进行转义,禁止script这种类似的脚本数据存储

CSRF

是什么?

跨站请求伪造,攻击者诱导用户进入一个第三方网站,然后在第三方网站发送请求,同时会带走用户现有的登录状态,从而冒充用户执行请求操作

本质是利用Cookie会在同源请求中携带发送给服务器的特点,以此来实现用户的冒充

防御

  • 同源检测:服务端对请求头中的origin和referer进行检测,但是这两个字段也可以伪造

  • 使用Token:Token与Cookie不同的就是,Token是可以用户选择性发送,Cookie是主动携带

  • Samesite:设置Cookie的Samesite为严格模式,限制不被第三方网站使用Samesite

23、如何优化SEO?

提高网站权重,增强搜索引擎友好度

  • 网站层级不要太深
  • 合理使用语义化HTML标签
  • 服务端渲染
  • 减少HTTP请求,提升网站加载速度

结语

我是林三心,一个热心的前端菜鸟程序员。如果你上进,喜欢前端,想学习前端,那咱们可以交朋友,一起摸鱼哈哈,摸鱼群,关注我,拉你进群,有5000多名前端小伙伴在等着一起学习哦 -->

模拟面试、简历指导可私信找我,价格超级实惠~

image.png


相关阅读

  • 官宣!2023年,佛山50公里徒步回归!

  • 一别三年与春归花开时节再逢君2023年佛山50公里徒步又要来啦!人间烟火味,最抚凡人心这一场属于佛山人的狂欢带着佛山街坊熟悉的味道将重新回到大家的面前时代中国总冠名特约·
  • 麦苗返青芽冒头,细看春来到

  • 长江日报大武汉客户端2月27日讯 2月27日,武汉天气晴朗,午间气温迅速攀升,户外一派春光明媚。走进公园、绿道,不经意间就能发现,垂柳的嫩芽和花苞冒了出来,枝条上笼罩着一层淡绿。
  • 珞樱初放,武汉大学早樱盛开

  • 长江日报大武汉客户端2月27日讯  2023年2月27日,武汉最高气温逼近20℃,城市里春的气息愈来愈浓。武汉大学校园里的早樱已经盛开,路过这里的人们纷纷拿出手机记录这美丽的时刻
  • 距高考还有100天!这些祝福送给每一位考生

  • 高考前拼满100天会有多大改变? 请相信:乾坤未定,你我皆是黑马。 所有坚持和努力,时间都看得见! 致敬拼搏的青春,祝福奋战的少年! (来源:央视新闻客户端) 【编辑:商佩】更多精彩
  • 这条轨道交通线路春天格外美

  • 长江日报大武汉客户端2月26日讯  2月26日,武汉气温回升,风和日丽,万里无云。市民乘坐武汉轨道交通十六号线,可以欣赏独特的美景。列车伴着长江而行,轨道两边春意盎然,郁郁葱葱。(
  • 漫山梅花海,踏青春光里

  • 长江日报大武汉客户端2月26日讯  2月26日,武汉天气晴好。在黄陂区木兰花谷连绵起伏的山坡上,红白梅花错落有致地散落着,满山满坞,烂漫至极,空气中弥漫着一股股沁心的幽幽花香。

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 全新升级!厦门人民体育场明天开始改造

  • ▲许多市民到人民体育场锻炼。 刘东华 摄 ▲1992年厦门市中小学生田径运动会在人民体育场举行。 紫日供图▲鸟瞰人民体育场。 陈再明摄于2008年人民体育场旧大门。 资料
  • 【面经】分享我朋友年后被吊打的一次面试~

  • 模拟面试、简历指导可私信找我,最低的价格收获最高的指导~作者:溪饱鱼链接:https://juejin.cn/post/7193979904458195005来源:稀土掘金前言大家好,我是林三心,用最通俗易懂的话讲
  • 【设计模式】面试中被问的最频繁的「策略模式」

  • 模拟面试、简历指导可私信找我,最低的价格收获最高的指导~前言大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心。什么是设计模式?为