2024前端高频面试题之一
1.从输入URL到页面显示发生了什么
(1) 缓存查询(查询优先级:浏览器缓存,系统缓存,路由器缓存)
(2) DNS解析,把网址解析唯一IP 【网址是为了方便记忆】
(3) 执行tcp三次握手,建立http链接
(4) 浏览器拿到返回的数据渲染页面 【可能存在跨域问题】
(5) 断开tcp连接
2.fetch和ajax的区别
(1) ajax基于xhr对象发起异步请求,结构不清晰
(2) fetch基于ajax的封装和promise实现异步请求,代码简洁,是全局window的一个方法,内置API
3.tcp(传输控制协议)和udp(用户数据报协议)的区别
(1) tcp面向连接,发送数据前需要建立连接, udp面向数据报,不建立连接直接发送数据
(2) 因此tcp更加可靠,udp为了达到高交付,不保证数据的顺序完整性和可靠性
(3) tcp需要进行连接管理,错误检测,所以开销大,传输速度相对较慢,udp不需要连接和错误检测,开销小,速度快
4.OSI七层模型
物理层-数据链路层-网络层-传输层-会话层-表示层-应用层
5.get和post的区别
(1) get请求参数直接拼接url后面(信息被暴漏了),post请求放在请求体。
(2) 相对post请求,get请求不安全,速度更快
(3) get请求用于请求数据,post请求用户提交表单
(4) get可以直接缓存,如果需要缓存post,需要在请求头设置cache-control和到期时间expired
6.http2和http1.x区别,优势和特点?
(1)http1.x使用文本格式传输数据,http2采用二进制格式,二进制格式解析更加高效,所以http2传输速率更高。
(2)http2采用头部压缩技术,减少请求头和相应头的数据,降低了网络的负担(网络带宽)。
(3)http2增加了流量控制,防止网络堵塞和资源浪费。
7.http和https区别?
(1)超文本传输协议(http),用于在网络端与端之间传送超文本,客户端请求服务端响应的一种标准(tcp), 明文传输。
(2)安全超文本传输协议(https),顾名思义,是一个安全版本的http,http下加入了SSL, 加密传输。
(3)默认端口不同 80 443 。
(4)http资源消耗更小。
(5)https需要ca证书, ca证书收费。