输入网址会发生什么
● 首先会解析URL,分析使用的协议和请求的资源路径
● 然后会查询请求的资源浏览器中是否有缓存,如果有缓存且没有失效,那么就直接返回,反之则继续向服务器请求
● 如果请求的资源不在本地,那么需要进行DNS解析,最终找到对应的IP地址。
● 获取MAC地址,浏览器得到目的地址IP之后,还需要知道目的主机的MAC地址,因为应用层数据下发给传输层,TCP协议会指定源端口号和目的端口号,然后下发给网络层,网络层会将自己的IP作为源地址,获取的IP地址作为目的地址,然后下发给数据链路层,数据链路层的发送需要双方的MAC地址,本机的MAC地址作为源MAC地址,目的MAC地址需要分情况处理,通过IP和子网掩码判断请求的主机与自己是不是在同一个子网里,如果在,可以使用ARP协议获取到目的主机的MAC地址,如果不在就需要转发给网关,让他代为转发,此时目的主机的MAC地址为网关的MAC地址。
● 建立TCP链接,主机将使用目标IP地址和目标MAC地址发送一个TCP SYN包,请求建立一个TCP链接,然后交由路由器转发,等到路由器转发给目标服务器之后,服务器回复一个SYN-ACK包,确认请求连接,然后主机发送一个ACK包,确认已收到服务器的确认,TCP三次握手链接就建成了。
● 发送HTTP请求,建立连接后,浏览器会向服务器发送HTTP请求,请求中包含了用户所需要获取的资源的信息。
● 服务器处理请求并返回响应。