从输入网址按下回车,到看到网页的过程中发生了什么?

619 阅读2分钟

主要流程

  1. 【用户】输入 URL

  2. 【浏览器】从 URL 中解析出 主机名

  3. 【浏览器】将 主机名 转换成 服务器ip地址(DNS域名解析)—— 应用层 先查找本地DNS缓存列表,没有的话再向默认的DNS服务器发送查询请求并缓存

  4. 【浏览器】从 URL 中解析出 端口号

  5. 【浏览器】与 目标服务器 建立 TCP连接(三次握手)—— 传输层

  6. 【浏览器】向 服务器 发送一条 HTTP请求报文

  7. 【服务器】向 浏览器 返回一条 HTTP响应报文

  8. 关闭连接,【浏览器】解析文档

  9. 如果文档中有其他资源,重复6 7 8 动作,直至资源全部加载完毕

流程细节

TCP/IP通信传输流

发送端从应用层往下走,接收端从链路层往上走 传输流.jpg

URL

  • URI统一资源标识符、URL统一资源定位符
  • URL是URI的子集 URI.jpg

DNS

  • 提供域名到IP地址的解析服务(可通过域名查找IP地址,也可通过IP地址反查域名)
  • 计算机即可被赋予IP地址,也可被赋予主机名和域名,通常使用主机名和域名(便于记忆) DNS.jpg

TCP

  • 将数据分割成以报文段为单位的数据包(网络传输的最小数据单位)进行管理
  • TCP协议能确认数据最终是否送达(通过三次握手策略) 三次握手.jpg

IP

  1. IP协议作用是把数据包传送给对方,而要确保传送到对方需满足两个重要条件:IP地址、MAC地址
* IP地址指明了节点被分配到的地址、MAC地址是指网卡所属的固定地址
* IP地址可和MAC地址进行配对,IP地址可变换、MAC地址基本不会更改
  1. 使用ARP协议凭借MAC地址进行通信
* IP间的通信依赖MAC地址
* ARP是一种用以解析地址的协议,根据通信方的IP地址可反查出对应的MAC地址
  • 网络上通信双方在同一局域网的情况很少,通常是经过多台计算机和网络设备中转才能连接到对方,而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标,这时会采用ARP协议 ARP.jpg

渲染流程

渲染的基本流程:

1. HTML解析出DOM Tree
2. CSS解析出Style Rules
3. 将二者关联生成Render Tree
4. Layout 根据Render Tree计算每个节点的信息
5. Painting 根据计算好的信息绘制整个页面