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

为什么使用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的理解

文章

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

相关推荐
Nydia.J12 小时前
【学习笔记】计算机网络(七)—— 网络安全
计算机网络
LUCIAZZZ12 小时前
说一下分布式组件时钟一致性的解决方案
java·网络·分布式·计算机网络·操作系统·springboot·系统设计
Direct_Yang14 小时前
计算机网络学习前言
学习·计算机网络
玦尘、19 小时前
计网相关面试题
java·计算机网络·面试题
czhc114007566319 小时前
LINUX 5 cat du head tail wc 计算机拓扑结构 计算机网络 服务器 计算机硬件
linux·服务器·计算机网络
武帝为此1 天前
【计算机网络应用层】
计算机网络
cleble1 天前
交换机与路由器的区别
计算机网络
Heorine1 天前
408 计算机网络 知识点记忆(5)
计算机网络·考研
武帝为此2 天前
【计算机网络中的网桥设备】
网络·计算机网络·php
故事与他6452 天前
迅饶科技X2Modbus网关-GetUser信息泄露漏洞
网络·科技·计算机网络·安全·web安全