主要流程
-
【用户】输入 URL
-
【浏览器】从 URL 中解析出 主机名
-
【浏览器】将 主机名 转换成 服务器ip地址(DNS域名解析)—— 应用层 先查找本地DNS缓存列表,没有的话再向默认的DNS服务器发送查询请求并缓存
-
【浏览器】从 URL 中解析出 端口号
-
【浏览器】与 目标服务器 建立 TCP连接(三次握手)—— 传输层
-
【浏览器】向 服务器 发送一条 HTTP请求报文
-
【服务器】向 浏览器 返回一条 HTTP响应报文
-
关闭连接,【浏览器】解析文档
-
如果文档中有其他资源,重复6 7 8 动作,直至资源全部加载完毕
流程细节
TCP/IP通信传输流
发送端从应用层往下走,接收端从链路层往上走
URL
- URI统一资源标识符、URL统一资源定位符
- URL是URI的子集
DNS
- 提供域名到IP地址的解析服务(可通过域名查找IP地址,也可通过IP地址反查域名)
- 计算机即可被赋予IP地址,也可被赋予主机名和域名,通常使用主机名和域名(便于记忆)
TCP
- 将数据分割成以报文段为单位的数据包(网络传输的最小数据单位)进行管理
- TCP协议能确认数据最终是否送达(通过三次握手策略)
IP
- IP协议作用是把数据包传送给对方,而要确保传送到对方需满足两个重要条件:IP地址、MAC地址
* IP地址指明了节点被分配到的地址、MAC地址是指网卡所属的固定地址
* IP地址可和MAC地址进行配对,IP地址可变换、MAC地址基本不会更改
- 使用ARP协议凭借MAC地址进行通信
* IP间的通信依赖MAC地址
* ARP是一种用以解析地址的协议,根据通信方的IP地址可反查出对应的MAC地址
- 网络上通信双方在同一局域网的情况很少,通常是经过多台计算机和网络设备中转才能连接到对方,而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标,这时会采用ARP协议
渲染流程
渲染的基本流程:
1. HTML解析出DOM Tree
2. CSS解析出Style Rules
3. 将二者关联生成Render Tree
4. Layout 根据Render Tree计算每个节点的信息
5. Painting 根据计算好的信息绘制整个页面