当浏览器输入域名到渲染成页面发生了什么?
- 浏览器解析地址
浏览器得到url后,开始解析url,获取url的协议号,主机号,路径,端口号等信息
- DNS解析:将域名地址解析为IP地址;
由于我们输入的是域名,而数据包是通过IP地址传给对方的。因此我们需要得到域名对应的IP地址。这个过程 需要依赖一个服务系统,这个系统将域名和 IP 一一映射,我们将这个系统就叫做DNS(域名系统)。得到具体 IP 的过程就是DNS解析。
当然,值得注意的是,浏览器提供了DNS数据缓存功能。即如果一个域名已经解析过,那会把解析的结果缓存下来,下次处理直接走缓存,不需要经过 DNS解析。
另外,如果不指定端口的话,默认采用对应的 IP 的 80 端口。
- TCP连接:TCP三次握手
-第一次握手,由浏览器发起,告诉服务器我要发送请求了;
-第二次握手,由服务器发起,告诉浏览器我准备接收了;
-第三次握手,由浏览器发起,告诉服务器,我即将发送;
- 发送请求;(请求报文)
- 接受响应;(响应报文)
- 渲染页面
-浏览器用响应的解析器解析HTML、CSS、JS文件
渲染过程,分为以下几个步骤:
建立图层树(Layer Tree)
生成绘制列表
生成图块并栅格化
显示器显示内容
- 断开连接:TCP四次挥手
-第一次挥手:由浏览器发起,告诉服务器请求报文发送完了,准备关闭把;
-第二次挥手:由服务器发起,告诉浏览器请求报文接收完了,准备关闭把;
-第三次挥手:由服务器发起,告诉浏览器响应报文发送完了,准备关闭吧;
-第四次挥手:由浏览器发起,告诉服务器响应报文接收完了,准备关闭吧。
