整个过程可分为网络通信和页面渲染。
一、url是什么
举个例子
让我们来解析一下下面这一段:
http://mail.163.com/index.html
1) http:// :这个是协议,也就是HTTP超文本传输协议,也就是网页在网上传输的协议(常见的协议还有http ftp mailto telnet file等)。
2)mail :这个是服务器名,代表着是一个邮箱服务器,所以是mail.
3) 163.com :这个是域名,是用来定位网站的独一无二的名字。
4) mail.163.com :这个是网站名,由服务器名+域名组成。
5)/ :这个是根目录,也就是说,通过网站名找到服务器,然后在服务器存放网页的根目录
6:)index.html :这个是根目录下的默认网页(当然,163的默认网页是不是这个我不知道,只是大部分的默认网页,都是index.html)
7)http://mail.163.com/index.html :这个叫做URL,统一资源定位符,全球性地址,用于定位网上的资源。
二、DNS域名解析
从浏览器输入网址后,就会进行域名解析,把域名解析为IP地址
解析过程如下
三、应用层客户端发送HTTP请求
将域名解析获得IP后,就由TCP/IP协议分层模型中的应用层向服务器发送HTTP请求。
HTTP请求包括请求报头和请求主体两个部分,其中请求报头包含了至关重要的信息,包括请求的方法(GET / POST)、目标url、遵循的协议(http / https / ftp…),返回的信息是否需要缓存,以及客户端是否发送cookie等。
四、传输层TCP传输报文
位于传输层的TCP协议为传输报文提供可靠的字节流服务。TCP为了方便传输,将应用层传来的HTTP请求分割成以报文段为单位的数据包进行管理,并为它们编号,方便服务器接收时能准确地还原报文信息。TCP协议通过“三次握手”等方法保证传输的安全可靠。
五、网络层IP协议查询MAC地址
IP协议的作用是把TCP分割好的各种数据包传送给接收方。而要保证确实能传到接收方还需要接收方的MAC地址,也就是物理地址。IP地址和MAC地址是一一对应的关系,一个网络设备的IP地址可以更换,但是MAC地址一般是固定不变的。ARP协议可以将IP地址解析成对应的MAC地址。当通信的双方不在同一个局域网时,需要多次中转才能到达最终的目标,在中转的过程中需要通过下一个中转站的MAC地址来搜索下一个中转目标。
六、数据到达数据链路层
在找到对方的MAC地址后,就将传输层TCP分割打包好的数据发送到数据链路层传输。这时,客户端发送请求的阶段结束
七、服务器接收数据
接收端的服务器在链路层接收到数据包,再层层向上直到应用层。这过程中包括在运输层通过TCP协议讲分段的数据包重新组成原来的HTTP请求报文。
八、服务器响应请求
服务接收到客户端发送的HTTP请求后,查找客户端请求的资源,并返回响应报文,响应报文中包括一个重要的信息——状态码。状态码由三位数字组成,其中比较常见的是200 OK表示请求成功。301表示永久重定向,即请求的资源已经永久转移到新的位置。在返回301状态码的同时,响应报文也会附带重定向的url,客户端接收到后将http请求的url做相应的改变再重新发送。404 not found 表示客户端请求的资源找不到。
九、 服务器返回相应文件
请求成功后,服务器会返回相应的HTML文件。服务端网络代码返回页面的过程如下(
网络通信阶段结束,接下来就到了页面渲染阶段了。
十、页面渲染
浏览器渲染页面,处理返回的代码过程如下
每一次发送请求都要建立一次连接。