前端面试题

说一说http和https
  • 是什么
    1.http是一种超文本网络传输协议,是现在互联网上应用最广泛的网络协议,用于从服务器传输超文本到本地浏览器,可以使浏览器更加高效,网络传输减少
    2.https是http的安全版,它是由http协议和ssl协议共同构建的,在http协议的基础上添加了ssl层,进行了加密传输和身份认证协议,建立了一个信息安全通道,确保了数据的传输,与网站的真实性
  • 区别
    1.http的传输信息是明文的,不具有安全性;但连接简单,是无状态的;使用的连接方式和端口号不同,端口号一般是80
    2.https的传输设置了ssl协议进行了数据的加密传输以及身份的认证,比http协议的安全性高;需要使用ca证书,费用比较高;它的端口号一般是443;使用https协议可以认证用户和服务器,确保数据发送到正确的客户端和服务器
  • https协议的工作原理
    1.客户使用https url访问服务器,要求web服务器建立ssl链接
    2.服务器接收到请求,给客户端返回证书
    3.客户端与服务器商议其加密等级
    4.商议一致后,客户端建立会话密匙,然后通过网站的公匙来加密会话密匙,并传输给网站
    5.web服务器通过自己的私匙解密出会话密匙
    6.web服务器通过会话密匙加密与客户端之间的通信
TCP三次握手
  • 是什么
    1.简单用一句话概括就是,客户端和服务端需要知道各自可以收发消息,因此需要三次握手
    2.第一次握手:服务端可以确认,自己可以接收到客户端发送来的报文段;第二次握手:客户端可以确认,服务端收到了自己的报文段,并确认服务器可以发送过来报文;第三次握手:服务端可以确认,客户端收到了自己的报文段
  • TCP和UDP的区别
    一句话概括就是,利用tcp传输是更可靠的,udp传输不是很可靠
    1.tcp是面向连接的,而udp是无连接的,也就是发送数据之前不用先建立链接
    2.tcp提供可靠的服务,传输的数据无差错,不丢失,不重复,且按顺序到达,适合大数据量的交换,udp按最大努力交付,所以不保证可靠交付
    3.tcp面向的是字节流,udp面向的是报文,并且网络出现拥挤不会使发送率降低
    4.tcp只能1对1,而udp支持1对1和1对多
    5.tcp首部较大为20字节,而udp只有8字节
    6.tcp是面向连接的可靠性传输,而udp是不可靠的
WebSocket的实现和应用
  • 是什么
    1.是HTML5的协议,支持持久连续
    2.是基于HTTP协议的,在握手阶段与HTTP是相同的
    3.两个属性,upgrade,connection
    告诉服务器发送的是websocket
说一说HTTP2.0
  • http2.0是基于1999年发布的http1.0之后的首次更新
  • 改进
    1.提升了访问速度(相比与http1.0,请求资源所需时间更少,访问速度更快)
    2.允许多路复用:允许同时通过单一的连接,发送多重请求-响应消息
    3.改善了:在http中在同一时间,针对同一域名下的请求有一定的数量限制(连接数量),超过限制会被阻塞
    4.二进制分帧:http2.0会将所有的传输消息分割成更小的信息或帧,并对他们进行二进制编码
    5.首部压缩
    6.服务端推送
fetch发送两次请求的原因
  • 场景
    fetch发送post请求时,总是发送两次,第一次是204的状态码,第二次才发送成功

  • 原因
    fetch使用post发送请求的时候,导致第一次发送了一个options请求,询问服务器是否可以支持修改请求头,如果支持,则在第二次中发送真正的请求

Cookie、sessionStorage、localStorage 的区别
  • 共同点
    都是保存在浏览器端,并且是同源的

  • 区别
    1.cookie
    ①cookie数据始终在同源的http请求中携带,即cookie可以在浏览器和服务器间来回传递,而session和localstorage不会自动把数据发送给服务端,仅在本地保存
    ②cookie有path路径的概念,可以限制cookie只属于某个路径下,存储容量小,大约只有4k左右
    ③cookie在设置cookie过期之前一直有效,即使窗口或者浏览器被关闭
    ④cookie在所有的同源窗口中是共享的
    ⑤它的作用:保持用户的登录状态,将id保存在cookie中,下次用户就不需要重新登录;设置过期时间,超过过期时间,cookie会自动消失
    2.sessionstorage
    ①本地存储,将数据保存在本地,仅在当前浏览器关闭前有效
    ②数据不能持久保存
    3.localstorage
    ①本地存储,将数据保存在本地,始终有效
    ②即使窗口或浏览器关闭数据也不会销毁,除非手动销毁数据,可以持久数据
    ③数据在所有的同源窗口中是共享的,不管浏览器与窗口关闭与否始终生效

说一下web worker
  • 是什么
    是运行在后台的js,独立于其他脚本,不会影响页面的性能,通过postMessage将结果传递给主线程
ifram是什么,有什么缺点
  • ifram元素可以创建包含另一个文档的内联框架
  • 可以将提示文字放在之间,就可以提示某些不支持ifram的浏览器
  • 缺点
    1.会阻塞主页面的onload事件
    2.搜索引擎无法搜索到,不利于seo
    3.ifram和主页面共享连接池,而浏览器对相对区域有限制,所以会影响性能
Doctype 作用?严格模式与混杂模式如何区分?它们有何意义?
  • doctype是声明在文档最前面的,用于告诉浏览器应该用什么方式渲染页面,有两种模式,严格模式和混杂模式
  • 严格模式,是按照浏览器的最高标准进行排版与运作的
  • 混杂模式的话是向后兼容,防止浏览器无法兼容页面
Cookie 如何防范 XSS 攻击
  • xss(跨站脚本攻击),是指攻击者在返回的html中嵌入js脚本,为了减轻这些攻击,需要在http的头上配上,set-cookie
  • httponly 这个属性可以防止xss,会禁止js脚本访问cookie
  • secure 这个属性告诉浏览器,仅在请求为https的时候,发送cookie
说一下浏览器缓存
  • 分为强缓存和协商缓存,由响应的header内容决定
  • 强缓存的相关字段有expires,cache-control,如果这两个字段同时存在,那么后者优先级高于前者
  • 协商缓存相关字段Last-Modified/If-Modified-Since,Etag/If-None-Match
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值