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证书收费。