1、DNS域名解析
用户输入url,例如http://www.baidu.com。其中http为协议,www.baidu.com为网络地址,即指出需要的资源在那台计算机上。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。客户端先检查本地是否有对应的IP地址,若找到则返回响应的IP地址。若没找到则请求上级DNS服务器,直至找到或到根节点。
解析过程
(1)在浏览器 DNS 缓存中搜索
(2)在操作系统 DNS 缓存中搜索
(3)读取系统 hosts 文件,查找其中是否有对应的 ip
(4)向本地配置的首选 DNS 服务器发起域名解析请求
2、建立TCP链接
使用TCP协议可以保证可靠传输,但是在双方通信之前需要通过三次握手来建立链接。通信结束后通过四次分手来断开链接。
3、发送HTTP请求
HTTP请求包括请求报头和请求主体两个部分。其中请求报头包括请求的方法(GET / POST)、目标url、遵循的协议(http / https / ftp…)等,请求体中包含客户端向服务器发送的数据。
4、使用ARP协议将IP地址解析成对应的MAC地址
IP协议的作用是把数据发送到目标节点。而要保证数据能发送到接收端还需要接收端的MAC地址,也就是物理地址。IP地址和MAC地址是一一对应的关系,一个网络设备的IP地址可以更换,但是MAC地址一般是固定不变的。ARP协议(协助IP工作的协议)可以将IP地址解析成对应的MAC地址。
5、通过数据链路层,把数据发送到目标地址
在找到对方的MAC地址后,就将数据发送到数据链路层传输,这时客户端发送请求的阶段结束。
6、接收响应结果
服务器接收到客户端发送的HTTP请求后,查找客户端请求的资源,并返回响应报文,响应报文中包括一个状态码。接收文件(HTML、JS、CSS、图像等)。
7、页面渲染
对浏览器中接收到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(比如 HTML 的 DOM 树,JS 的(对象)属性表,CSS 的样式规则等),进行页面的渲染。
网友评论