输入URL在网络中发生的事件
提示:在浏览器中输入URL在网络中发生的一系列事件,各种协议的封装的步骤.
一.解析URL
浏览器首先对URL进行解析,
浏览器通过对URL进行解析,浏览器确定了服务器名称和文件名
通过对URL解析,得到了web服务器和文件名,就可以通过解析出的信息来生成HTTP请求消息.
请求报文
响应报文
IP地址查询-DNS(Domain Name System)
DNS是网络中域名和IP地址相互映射的分布式数据库:将域名解析成IP地址
浏览器通过URL构建处HTTP报文后,就可以将消息发送出去了,但却不知道服务器端的IP地址,此时就需要DNS域名服务器系统查询服务器对应的IP地址.
域名层级关系:
- 根域名服务器
- 顶级域名服务器
- 权威域名服务器
查询域名服务器的流程:
1.解析一个网址:比如:www.123.com,这是你的电脑会发出一个DNS请求到本地域名服务器,本地域名服务有相应的网络提供商提供,本地域名服务器会在他的缓存中进行查询,若缓存中相应记录,就会返回结果.如果没有,本地域名服务器就会向根DNS服务器进行查询
2.根DNS服务器上没有域名与IP地址的对应关系,而是向本地域名服务器给出其相应的域DNS服务器的地址,这时本地DNS服务器就会向域DNS服务器发出请求.例子中时.com域服务器
3.最后本地DNS服务器会向权威DNS服务器发出请求最终得到相应的域名和IP地址的对应关系而本地域名服务器会将IP地址返回给电脑,并且将对应关系保存在缓存中,以便下一次进行查询.
二.协议栈
通过DNS获取到IP后,就将HTTP报文的传输工作交给下层的协议栈了
TCP报头(封装)
IP(报头封装)
网络包的报文(IP头+TCP头+HTTP报文)
MAC协议
MAC地址进行点对点的报文传输.
MAC地址如何确定发送方和接收方:
发送方的MAC地址的确认:直接对本地网卡进行读取,因为MAC地址会在网卡在生产时会写入ROM里,只需要将其读取出来即可.
接收方MAC地址的确认:
首先会在ARP缓存中进行查询,如果没有ARP缓存中没有对端的MAC地址,此时就会发送ARP广播,如果对方与自己处于子网中,就可以得到对端的IP地址,将其填入接收方MAC地址中就可以了.
此时,发送的报文形式为:
报文到达对端,对端的每一层就会对数据报进行解析,去掉相应的头部,而最终得到HTTP报文数据.