一、什么是URL
统一资源定位符,是URI的子集,它除了标识资源的位置,还提供一种定位该资源的主要访问机制(比如说其网络位置),即提供具体方式找到该资源(位置+方式),由三部分组成:
- 协议或服务方式(如http,https…)
- 存有该资源的主机IP地址(有时候也包含端口号)
- 主机资源的具体地址(如目录和文件名等)
二、什么是DNS
DNS是一种组织成域层次结构的计算机和网络服务命名系统,他用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换成IP地址的工作。DNS就是这样的一位"翻译官"
三、DNS的解析过程
- 检查浏览器缓存中是否缓存过该域名对应的ip地址
- 如果在浏览器缓存中没有找到ip,那么将继续查找本机系统是否缓存过ip
- 向本地域名解析服务发起域名解析的请求
- 向根域名解析服务器发起域名解析请求
- 根域名服务器返回gTLD(通用顶级域)域名解析服务器地址
- 向gTLD服务器发起解析请求
- gTLD服务器接收请求病返回Name Server服务器
- Name Server 服务器返回ip地址给本地服务器
- 本地域名服务器缓存解析结果
- 返回解析结果给用户DNS解析过程
四、输入URL后发生了什么
- 浏览器向DNS服务器请求解析该URL中的域名对应的IP地址
- 解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接
- 浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器
- 服务器对浏览器请求作出相应,并把对应的html文本发送给浏览器 释放TCP连接
- 浏览器解析HTML文本并局部渲染