HTTP完整请求流程
一,浏览器查找域名的 IP 地址
DNS 查找过程:
- 浏览器缓存 - 浏览器会缓存 DNS 记录一段时间,但是操作系统并没有告诉浏览器储存 DNS 记录的时间。于是,不同浏览器会储存各自的一个固定时间( 2 分钟到 30 分钟不等)。
- 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用( Windows 里是 gethostbyname ),这样便可获得并查询系统缓存中的记录。
- 查找本机hosts文件
- 路由器缓存 – 接着,前面的查询请求发向路由器。路由器一般会有自己的 DNS 缓存。
- ISP DNS缓存 – 接下来要 check 的就是 ISP 缓存 DNS 的服务器。ISP (Internet Service Provider) 就是互联网服务提供商,在这一般都能找到相应的缓存记录。
- DNS递归搜索 – 你的 ISP 的 DNS 服务器从跟域名服务器开始进行递归搜索,从 .com 顶级域名服务器到 example 的域名服务器。一般 DNS 服务器的缓存中会有 .com 域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。
DNS 进行域名解析的过程:
- 客户端发出 DNS 请求翻译 IP 地址或主机名;
- DNS 服务器在收到客户端的请求后,检查 DNS 服务器的缓存,若查到请求的地址或名字,即向客户端发出应答信息;
- 若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户端发出应答信息;