浏览器访问网站流程
-
解析url,获得域名,再根据DNS协议,获取服务器的ip地址。 -
解析 url 时,我们能获取资源路径、端口号、请求参数等信息,这些信息会被存储在 http 头中。之后浏览器发送HTTP请求。(应用层) -
如果我们的平台配备了负载均衡的话,前一步DNS解析获得的IP地址应该是我们Nginx负载均衡服务器的IP地址。所以,我们的浏览器将我们的网页请求发送到了Nginx负载均衡服务器上。 -
之后,发起TCP的三次握手,建立连接。(传输层) -
路由寻址(网络层) -
根据ARQ协议,找到对方的MAC地址后,就将数据发送到数据链路层传输。这时,客户端发送请求的阶段结束。(数据链路层) -
服务器响应返回响应报文:服务接收到客户端发送的HTTP请求后,查找客户端请求的资源,并返回响应报文。响应报文包括:响应行,响应头,响应数据。 -
浏览器解析html代码,并请求HTML代码中的资源(如js、css、图片等),浏览器对页面进行渲染呈现给用户。 -
四次挥手,断开TCP连接。
全部过程会用到哪些协议?
为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议——开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议。 1、 ARP(地址解析协议) ARP解决的是同一个局域网内,主机或路由器的IP地址和MAC地址的映射问题。如果源主机和目的主机在同一个局域网内(目标IP和本机IP分别与子网掩码相与的结果相同,那么它们在一个子网),就可以用ARP找到目的主机的MAC地址;如果不在一个局域网内,用ARP协议找到本网络内的一个路由器的MAC地址,剩下的工作有这个路由器来完成。 ARP协议的具体内容: (1)每个主机都会有ARP高速缓存,存储本局域网内IP地址和MAC地址之间的对应关系。 (2)当源主机要发送数据时,首先检查ARP高速缓存中是否有对应IP地址目的主机的MAC地址,如果有,则直接发送数据,如果没有,就像本网段的所有主机发送ARP请求分组,该数据包包括的内容有:(源主机IP地址,源主机MAC地址,目的主机的IP地址)。 (3)当本网络的所有主机收到该ARP请求分组时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包;如果是,则首先从数据包中取出源主机的IP地址和MAC地址写入到ARP高速缓存中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。 (4)源主机收到ARP响应分组后,将目的主机的IP和MAC地址写入ARP高速缓存中,并利用此信息发送数据。如果源主机一直没有收到ARP响应分组,表示ARP查询失败。 2、 路由选择协议 网络层主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,通过查找路由表决定通过哪个路径到达服务器,其中用到路由选择协议。
|