web浏览器_浏览器访问Web服务器全过程

  • Post author:
  • Post category:其他


d2f1b6f309e46869c174f9cf3d4e2873.png

当我们在浏览器中输入网址,屏幕上会显示出网页的内容。大致过程如下(客户端代表我们输入网址的PC,服务端代表储存我们想要信息的服务器。):

  1. 我们输入网址后,一条信息从客户端发出;

  2. 通过一系列路径到达要访问的服务端,告诉服务端我们需要什么数据;

  3. 然后服务端将这些数据发送出来,经过互联网,到达客户端;

  4. 最后将这些信息显示在屏幕上。

以上信息看起来比较简单,但实际上需要的信息有很多,比如:如果我们想准确获取网址的数据,我们应该至少知道自己的mac地址、ip地址和端口号以及服务器的mac地址、ip地址和端口号,而且传输路径中可能出现各种各样的情况,造成数据损坏或丢失。为了解决以上问题,需要进行很多处理。

首先我们要知道的是TCP/IP协议分层模型,TCP/IP协议分层模型和OSI参考模型的对应关系如下图:

TCP/IP协议分层模型 OSI参考模型
应用层 应用层
表示层
会话层
传输层 传输层
网络层 网络层
数据链路层 数据链路层
物理层 物理层

客户端和服务端一般这些层都有,交换机一般有物理层和数据链路层,路由器有物理层、数据链路层和网络层。可见,分层协议中,可以有下层没上层,但是不可以有上层没下层。

准备阶段1:客户端在联网后需要告知所在子网路由器。客户端会发送一个DHCP请求报文,请求路由器为其分配一个IP地址、DNS服务器地址,并且告诉路由器自己的位置,客户端也知道本地的路由器的IP地址。这样客户端就有了自己的IP地址。

准备阶段2:我们在准备阶段1时,我们已经知道了本地路由器的IP地址,但是还不知道其MAC地址,所以需要使用ARP协议查询该路由器的IP。这时我们就知道自己的MAC、IP,也知道了本地路由的MAC、IP。

准备阶段3:当客户端在浏览器输入网址时,我们相当于知道了对端的网址,但还是不知道IP地址,所以我们需要访问DNS服务器,通过网址获取IP地址。

开始连接:这时准备阶段完成了,需要进行TCP连接,经过TCP连接的三次握手后,就可以传输数据了;客户端的请求发送到服务端后,服务端将数据发回来,然后显示在浏览器中;最后TCP四次挥手断开连接。这样就完成了访问一个网页。