当浏览器输入域名到渲染成页面发生了什么?

    • 浏览器解析地址

    浏览器得到url后,开始解析url,获取url的协议号,主机号,路径,端口号等信息

    • DNS解析:将域名地址解析为IP地址;

    由于我们输入的是域名,而数据包是通过IP地址传给对方的。因此我们需要得到域名对应的IP地址。这个过程 需要依赖一个服务系统,这个系统将域名和 IP 一一映射,我们将这个系统就叫做DNS(域名系统)。得到具体 IP 的过程就是DNS解析。
    当然,值得注意的是,浏览器提供了DNS数据缓存功能。即如果一个域名已经解析过,那会把解析的结果缓存下来,下次处理直接走缓存,不需要经过 DNS解析
    另外,如果不指定端口的话,默认采用对应的 IP 的 80 端口。

    • TCP连接:TCP三次握手

    -第一次握手,由浏览器发起,告诉服务器我要发送请求了;
    -第二次握手,由服务器发起,告诉浏览器我准备接收了;
    -第三次握手,由浏览器发起,告诉服务器,我即将发送;

    • 发送请求;(请求报文)
    • 接受响应;(响应报文)
    • 渲染页面

    -浏览器用响应的解析器解析HTML、CSS、JS文件
    渲染过程,分为以下几个步骤:
    建立图层树(Layer Tree)
    生成绘制列表
    生成图块栅格化
    显示器显示内容

    • 断开连接:TCP四次挥手

    -第一次挥手:由浏览器发起,告诉服务器请求报文发送完了,准备关闭把;
    -第二次挥手:由服务器发起,告诉浏览器请求报文接收完了,准备关闭把;
    -第三次挥手:由服务器发起,告诉浏览器响应报文发送完了,准备关闭吧;
    -第四次挥手:由浏览器发起,告诉服务器响应报文接收完了,准备关闭吧。