面试必问!从输入URL到页面展示,发生了什么?
服务器发带有CA机构进行私钥加密的数字签名的证书,发给客户端,客户端校验一下是不是安全的,是安全就继续通信,被篡改就提示不安全。A说ok,后来B也要走了,就说我也要下了,A就说知道了。我们的域名www.baidu.com,其实不能被浏览器解析,因为它相当于一个别名,只是辅助我们记忆的。,这个地址你要记得话很难,所以我们的DNS就帮我们解析了,通过映射对应起来域名和ip地址。首先会查询浏览器的记录,
目录
一、URL解析

首先浏览器会先判断你的URL合不合法,有两种情况:合法 和 不合法。
不合法:
1.不正规的网站:
比如带点颜色的网站,浏览器会直接把你拦着,显示这个网站不安全,不能跳转
2.网址输入错误:
比如说https你输入成htp,就不会直接跳转到你要的网页
合法:
首先会查询浏览器的记录,看看你的URL是不是你搜过的,然后显示一些搜索记录。
合法但是不完整的网址,浏览器会帮你补全前缀或者后缀,比如你搜索www.baidu.com它会自动帮你补上前缀https://。
二、DNS解析
我们的域名www.baidu.com,其实不能被浏览器解析,因为它相当于一个别名,只是辅助我们记忆的。
因为他的ip地址http://36.152.44.95/index.html,这个地址你要记得话很难,所以我们的DNS就帮我们解析了,通过映射对应起来域名和ip地址。
DNS解析流程如下:

我们的客户端先会在浏览器DNS缓存查找,操作系统DNS缓存,本地host文件找。
如果在这些本地都找不到,就会去本地DNS服务器查找,先是服务器缓存。
没有就去根DNS服务器(分配com、cn、org等等后缀去哪儿的服务器),因为根服务器等级太高了,就说顶级域DNS服务器(相当于都存com后缀的服务器的)是我小弟,你去找他吧。
然后你去找了顶级域DNS服务器,他说我等级也高,你去找我小弟权威DNS服务器(baidu.com有后缀和域名的)就找到了,然后缓存到本地DNS服务器,然后本地DNS服务器返回给客户端
三、TCP三次握手
这个也就是跟服务器建立连接的过程(详情请看我另一篇博客:图片炸场!TCP协议黑话全解:从20字节头到十大杀器,看完秒变三次握手老司机!-CSDN博客)

三次握手(建立连接):
- A给B发了个SYN包,表示 “我A想要和你B建立连接” ,
- B收到SYN后,就会返回一个ACK,之后再返回一个SYN,表示“我B想和你A建立连接”,(A收到ACK说明,A认为A与B已经建立了连接,但是B认为B与A还没建立连接)
- A收到了SYN之后,返回一个ACK,表示“我收到你的请求,同意连接”,此时A与B双方完全建立了连接
因为三次握手中间的SYN和ACK可以合并一起发送,所以本来是四次握手的,就变成了三次握手。

类似于你跟你朋友说话:
- 你要和他开始对话
- 然后他同意和你聊天
- 你知道他准备跟你聊天之后
四、发起HTTPS等请求
现在一般是HTTPS请求了,也就是HTTP的基础上再加了一层加密。实际内容还是HTTP,我们只举这种做例子。
我们先对要传输的明文 (内容)进行对称加密,变成密文
然后申请CA证书,把网站的一些信息给CA机构,申请到CA证书。

服务器发带有CA机构进行私钥加密的数字签名的证书,发给客户端,客户端校验一下是不是安全的,是安全就继续通信,被篡改就提示不安全。

验证证书是否合法,然后进行通信。
看不懂?无所谓,详细的HTTPS加密流程在我另一篇博客:HTTP:裸聊,HTTPS:戴套聊天,但中间人还是想偷看!-CSDN博客
五、服务器处理响应
服务器收到HTTP的客户端请求一个HTML后,就开始做出响应。 (以谷歌浏览器为例):
- 服务器将发布一个HTML的响应,里面有响应头和HTML正文
- 处理HTML,并构建DOM树
- 处理CSS,并构建CSSDOM树
- 将DOM树和CSSDOM树合并在一起
- 根据根据渲染树来布局。并计算出几何信息
- 将各个节点渲染到屏幕上
六、TCP四次挥手
现在浏览器为了优化请求时间,会在关闭标签页之后再进行四次挥手。
四次挥手就是安全的再见。

可以理解为你跟你朋友准备说拜拜了:
比如两个人打王者,A说我下了,B说知道了,我再打几局等会下。A说ok,后来B也要走了,就说我也要下了,A就说知道了。
当TCP四次挥手后,这次的请求就完成了,结束了。
更多推荐



所有评论(0)