当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染。
如果严谨一点则还有一层物理层进行字节流的传递。
1. 在浏览器中输入url
用户输入url,例如http://www.baidu.com。其中http为协议,www.baidu.com为网络地址,及指出需要的资源在那台计算机上。一般网络地址可以为域名或IP地址,此处为域名。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。
用户输入url,例如http://www.baidu.com。其中http为协议,www.baidu.com为网络地址,及指出需要的资源在那台计算机上。一般网络地址可以为域名或IP地址,此处为域名。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址
2.应用层DNS解析域名
客户端先检查本地浏览器缓存或者路由器缓存中是否有对应的IP地址,若找到则返回响应的IP地址。
若没找到则请求DNS服务器获取IP地址。
3.应用层客户端发送HTTP请求
发送HTTP请求,将请求的数据信息发到对应IP的服务器中。
4.传输层TCP传输报文
通过TCP协议将传输的数据分成多个数据包,病通过三次握手建立客户端和服务端的连接状态进行传输数据。
5.网络层IP协议查询MAC地址
IP协议的作用是把TCP分割好的各种数据包传送给接收方。而要保证确实能传到接收方还需要接收方的MAC地址,也就是物理地址。IP地址和MAC地址是一一对应的关系,一个网络设备的IP地址可以更换,但是MAC地址一般是固定不变的。ARP协议可以将IP地址解析成对应的MAC地址。当通信的双方不在同一个局域网时,需要多次中转才能到达最终的目标,在中转的过程中需要通过下一个中转站的MAC地址来搜索下一个中转目标。(通过IP协议和ARP协议找到服务器IP对应的MAC物理地址)
6.数据到达数据链路层
在找到对方的MAC地址后,就将数据发送到数据链路层传输。
7.数据转成字节流在物理层中传输到服务器的物理层。
数据链路层的数据通过物理层传到服务器的物理层。
8.服务器接收数据
服务器的物理层接受到数据后,自下而上进行数据的传递,数据经过TCP的数据包重组成HTTP报文传到服务器程序中。
9.服务器进行处理
服务器接受到HTTP请求后对其数据进行逻辑处理和存储,并将需要返回的数据封装在HTTP报文中通过同样的网络通信方式返回给客户端。
10. 客户端收到返回报文进行解析和显示
客户端收到了服务器发回的HTTP报文,对报文进行解析,将解析的结果渲染到客户端的浏览器中。