杂技 || 浏览器输入网址后发生了什么?
2017-01-20 本文已影响33人
有个水友
在浏览器输入网址,按下回车后,首先浏览器会做域名解析,获取目标主机的ip
地址。主要有以下几个步骤:
- 浏览器搜索自身的
DNS
缓存,如果没找到,转2; - 搜索操作系统自身
DNS
缓存,如果没找到,转3; - 读取本地的
hosts
文件,查找有无域名对应解析,如果没找到,转4; - 浏览器发起一个
DNS
的一个系统调用:向本地域名解析服务器(由宽带服务商提供),发起一个域名解析请求。
- 运营商的
DNS
服务器首先查看自身缓有无对应条目(没有过期,则解析成功),如果不成功; - 宽带运营商代替浏览器发起一个迭代
DNS
解析的请求
以www.imooc.com的IP地址为例:
DNS迭代解析
经过八个步骤,最终查询到域名的IP地址,并将其返回给浏览器;
- 浏览器获得域名对应的IP地址后,发起与服务器的TCP连接请求(完成“三次握手”);
- 建立TCP连接后,由浏览器向服务器发送请求;
- 服务器接收客户端的请求,根据路径参数,将经过后台处理的数据,发送回浏览器;
- 浏览器获得完整的HTML页面代码,在解析、渲染页面时,其中的JS、CSS和图片等静态资源也是一个个HTTP请求,经过前面7个步骤获取;
- 浏览器根据获取到的资源对页面进行最后的渲染,呈现给用户。