计算机网络、浏览器相关高频面试题

为什么使用CDN 会更快?

没有使用CDN的情况下,用户从浏览器输入地址,依次经过浏览器缓存、操作系统缓存(如本地host文件)、域名解析服务器、根域名解析服务器、顶级域名服务器直到找到对应的ip地址返回给用户,用户向该地址发起请求;

使用了CDN的情况下,用户在浏览器中输入要访问的域名,浏览器向DNS服务器请求对域名进行解析。由于CDN对域名解析进行了调整,DNS服务器会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。

1、CDN的DNS服务器将CDN的负载均衡设备IP地址返回给用户。

2、用户向CDN的负载均衡设备发起内容URL访问请求。

3、CDN负载均衡设备会为用户选择一台合适的缓存服务器提供服务。选择的依据包括:根据用户IP地址,判断哪一台服务器距离用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器的负载情况,判断哪一台服务器的负载较小。基于以上这些依据的综合分析之后,负载均衡设置会把缓存服务器的IP地址返回给用户。

4、用户向缓存服务器发出请求。

5、缓存服务器响应用户请求,将用户所需内容传送到用户。

浏览器是如何知道什么域名应该交给CND专用的DNS服务器?

1、DNS查询:使用nslookup或者dig等工具查询网站的域名解析结果。如果返回的IP地址与原始主机的IP地址不一致,那么很有可能该网站使用了CDN。

2、响应头:使用浏览器的开发者工具,查看网站的响应头信息。如果响应头中包含类似于"X-Cache","X-CDN"或者"Cache-Control"等字段,那么该网站可能使用了CDN。

3、网络请求路径:通过浏览器的开发者工具,查看网站请求的静态资源(例如图片、CSS、JavaScript等)的URL路径。如果路径中包含类似于"cdn"或者"static"等关键字,那么很有可能该网站使用了CDN。

使用CDN有什么好处?

① 减少网络延迟:CDN在全球各地建立了分布式的服务器节点,将网站的内容缓存到离用户最近的节点。当用户访问网站时,CDN会自动将内容传送到最近的服务器节点,这样可以减少数据在全球范围内传输所需的时间,从而减少网络延迟。

② 节省带宽:由于CDN可以缓存网站的内容,因此当用户访问网站时,CDN会从最近的服务器节点提供内容,而不是从源服务器上提取。这可以减少源服务器的负载,从而节省带宽和服务器资源。

③ 提高网站可用性:当源服务器发生故障或停机时,CDN可以自动将流量重定向到其他可用的服务器节点,从而确保网站的可用性。

浏览器从输入url到呈现发生了什么

1、根据输入的网址解析域名到对应的ip地址,查找顺序:

浏览器缓存、操作系统缓存、路由器缓存、DNS 服务器(记录这域名和ip地址的映射)、根服务器。

2、找到ip地址需要先建立TCP链接

客户端发送 SYN数据包表示请求连接,服务端响应SYN 和 ACK 表示问答,客户端收到后回应一个 ACK数据包表示建立连接成功。

3、发送HTTP请求

完整的请求报文包括请求行(包含请求的方法、url、协议版本)、请求头(浏览器的信息键值对组成)、空行、请求体(请求的数据);

4、服务器处理返回http响应报文

5、(解析DOM)浏览器收到html文件,浏览器会将收到的字节内容、转为字符、token化、转为节点对象,将对象链在一起形成文本对象模型也就是DOM

6、遇到link标签加载css,同时继续解析DOM

7、接收到css文件后通用需要把字节转为字符、token化生产CSSOM

8、如果遇到script标签,下载对应的脚本,CSSOM构建完成后才会执行JS的内容,因为JS即可以操作DOM又可以操作CSSOM,所以需要等js加载完成后再生产渲染树

8、匹配DOM和CSSOM节点,生成渲染树

9、获取节点树的结构、位置、大小、依据盒模型布局

10、将渲染树以像素的形式绘制,呈现网页

cookie、 session、token 的区别

cookie 用户第一次登录请求时服务端在响应头设置set-cookie,浏览器发送请求并携带cookie,服务器验证cookie正确正常响应。

session 用户第一次登录请求时服务端创建一个session,并将sessionId设置在响应头set-cookie给客户端,客户端发送请求并携带cookie,服务端通过sessionId找session,验证正确正常响应。

token 用户第一次登录请求时服务端生产token,token中带有用户id,客户方发送请求时将token放在请求头中,服务端获取到token校验通过后正常响应。

三者的区别:

1、cookie 存储在客户端,大小4KB,不够安全;

2、session 存储在服务端 无大小限制 更安全,但是消耗服务器资源;

3、token 都可以存储,体积小,只存了用户id相对安全,需要根据id查找用户信息速度慢;

说说你对webworker的理解

文章

持续完补充中...欢迎大佬指正

相关推荐
czme7 小时前
线程和进程
linux·数据结构·计算机网络
Pandaconda15 小时前
【计算机网络 - 基础问题】每日 3 题(五十九)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
清酒伴风(面试准备中......)15 小时前
计算机网络——开放系统互连参考模型
网络·计算机网络·1024程序员节
Kika写代码15 小时前
【计算机网络教程】课程 章节测试1 计算机网络概述
计算机网络
不甘平凡的蜜蜂15 小时前
第三十三篇:TCP协议如何避免/减少网络拥塞,TCP系列八
运维·网络·网络协议·tcp/ip·计算机网络·智能路由器
Xzzzz91117 小时前
华为配置 之 STP
服务器·网络·计算机网络·华为
ZachOn1y1 天前
计算机网络:网络层 —— 网络层(网际层)概述
网络·计算机网络·网络层·1024程序员节
找了一圈尾巴1 天前
架构师备考-计算机网络
计算机网络·系统架构
Pandaconda1 天前
【计算机网络 - 基础问题】每日 3 题(五十七)
开发语言·网络·经验分享·笔记·后端·计算机网络·面试