WEB页面的请求过程

在网页上输入一个url地址后会发生什么?

1.DHCP部分

前面有提到过,子网的IP地址大多是临时的IP地址,因此,若要请求WEB页面,对于我们的客户端首先需要一个IP地址,这个IP地址的获取需要通过DHCP服务。

有关DHCP请求步骤的讲解可以参考

链路层寻址_流光亦流连的博客-CSDN博客

DHCP动态主机配置协议_流光亦流连的博客-CSDN博客

这里只简单地介绍一下步骤:

1.1 首先我们的电脑需要找到一台DHCP服务器,此时需要发送一条DHCP请求,源地址为0.0.0.0,目的IP地址为255.255.255.255即广播地址。

1.2 该IP广播报文将封装在以太网帧中在链路层进行发送,以太网帧的源MAC地址为你的电脑的MAC地址,目的地址为链路层中与你的电脑相连的交换机的MAC地址。

1.3 在交换机收到该以太网帧后,获取其中的IP数据包,并将其以广播的形式发送到所有与它连接的路由端口中,与DHCP服务器相连的路由端口在收到此报文后,发现其是DHCP请求报文,由于路由器中存储着DHCP服务器的IP地址,因此路由器会为这个DHCP请求报文规划一条路径,

1.4 这个报文将在路由器的帮助下被DHCP服务器接收,在收到这个报文后,DHCP服务器将为你的电脑分配的IP地址,DNS服务器的IP地址,默认网关路由器的 IP地址,网络掩码等信息以报文的形式进行返回。

1.5 DHCP服务器返回的报文也同样在链路层以以太网帧的形式进行传输,由于链路层的交换机具有自学习的功能,它们会记录刚才请求的路径,按原路径进行返回。

1.6 你的电脑在收到DHCP服务器返回的报文后将取出IP地址,DNS服务器IP地址等信息。至此DHCP部分完成。

2.DNS部分

有关DNS服务器解析IP地址的过程参考这篇

DNS域名解析_流光亦流连的博客-CSDN博客

以下只说简单步骤:

2.1 尽管已经知道了DNS服务器的IP地址,但不知道其MAC地址,而请求报文又需要在链路层经由以太网帧发出,所以必须知道本地DNS服务器的MAC地址,这个地址可以通过ARP协议获得,因为现在我们知道了DNS服务器的IP地址,可以通过ARP查询报文以及ARP中的映射关系找到本地DNS服务器的MAC地址。

2.2 在确定了本地DNS服务器的MAC地址后,你的电脑将DNS查询报文发送至本地DNS服务器上。

2.3 本地DNS服务器中若存在对应结果,可以直接返回对应IP地址,若不存在,则需要与根DNS服务器建立连接。

2.4 在与根DNS服务器建立连接后,本地DNS服务器将DNS查询请求发送至根DNS服务器上,根DNS服务器将返回*域名DNS服务器的IP地址

2.5 本地DNS服务器将DNS查询请求发送至*域名DNS服务器,返回权威DNS服务器的IP地址。

2.6 本地DNS服务器将DNS查询请求发送至权威DNS服务器,如此往复直到查出对应url路径的IP地址。

2.7 本地DNS服务器将最终解析出的IP地址返回。

至此DNS部分完成。

3.TCP部分

在已经确定了url路径对应的IP地址后,我们需要通过TCP建立连接。

三次握手的过程可以参考这篇博文

TCP三次握手_流光亦流连的博客-CSDN博客

以下只说简单步骤:

3.1 客户端生成一个随机数并发送SYN报文给服务端。

3.2 服务端在收到报文后,将随机数+1作为确认应答数,并回复一个SYN+ACK报文给客户端。

3.3 客户端在收到报文后检查确认应答数无误后,再次向服务端发送ACK报文,服务端接收后双方建立连接。

在三次握手建立连接完毕后,客户端和服务端将分别生成一个套接字用于接收和发送相关的请求和响应信息。

客户端(你的电脑)的请求也将通过这个连接传输到服务端(url地址对应的服务器)

4.HTTP部分

WEB和HTTP_流光亦流连的博客-CSDN博客_http和web

4.1 服务端将HTTP报文从TCP报文中取出,并将其由运输层传递到应用层,HTTP根据请求的类型对请求进行处理并进行响应。

4.2 响应的HTTP报文依次自应用层封装到网络层,再按照与请求相同的路径进行返回

4.3 客户端的应用层在接收到这个响应后,取出其中的数据并显示在网页上。

至此一个url地址请求的过程完毕。

上一篇:pytest学习4-测试用例setup 和teardown


下一篇:郑乐意