浏览器地址栏按回车发生了什么事情

1、查找域名对应的ip地址

  首先去浏览器缓存中找,如果不久前刚刚输入过,那么在缓存会留下ip地址,缓存周期一般在几分钟到半小时

  查找系统缓存(host文件),浏览器进行系统调用(windows中是gethostbyname)

  查找路由缓存,前两步都不需要网络,这里需要用到网络,路由器上有自己的DNS缓存,这是ISP互联网提供商在路由器留下的DNS缓存

  递归查找ISP的DNS服务器 (这才是真正的第三方DNS服务器)

  本地域名服务器向根域名服务器的查询是迭代查询。

2、浏览器和服务器经过三次握手建立TCP连接

  浏览器发送请求报文,服务器确认请求并返回给浏览器确认信息,浏览器收到确认信息,再发一次请求告诉服务器收到刚才的服务器确认信息。建立通信

  

引申:为什么要有第三次握手,防止已失效的请求报文段突然又传送到了服务端而产生连接的误判

扫描二维码关注公众号,回复: 6126705 查看本文章

3、浏览器通过http协议发送请求

4、服务器处理请求

5、发出HTML响应   (有时候为了负载均衡或者导入流量来提高SEO优化,会返回一个永久重定向301,这时候在Location找到重定向地址,重复上述操作)

6、四次挥手释放TCP连接

四次挥手(和地址栏发生的事情无关),由于TCP是双全工的也就是双通道,需要双通道都单独关闭

  

1.     浏览器所在主机向服务器发出连接释放报文,然后停止发送数据;

2.     服务器接收到释放报文后发出确认报文,然后将服务器上未传送完的数据发送完;

3.     服务器数据传输完毕后,向客户机发送连接释放报文;

4.     客户机接收到报文后,发出确认,然后等待一段时间后,释放TCP连接;

7、浏览器渲染页面

8、获取图片url、js的src资源

猜你喜欢

转载自www.cnblogs.com/wchjdnh/p/10815160.html