一、获取IP地址
获取流程如下
- 在浏览器缓存中查找,看是否有该url,有的话直接发起请求,否则下一步
- 在本地host文件查找,看是否有该url映射,有的话根据映射ip发起请求,否则下一步
- 向本地NDS服务器发起DNS查询请求,如果有对应IP返回,根据该ip发起请求,否则下一步
- 本地DNS服务器会向根域名服务器发起NDS查询请求,如果查询不到会返回可能保存了该域名的一级域名DNS服务器地址,本地DNS服务器会再向这个可能保存了域名的一级域名DNS服务器发起DNS查询请求,依次迭代,直到查询到保存了该域名的服务器地址,像其发起NDS查询请求,获取到ip地址发起请求。(DNS服务器就是一个域名和ip的映射表,保存了该域名,即说明该DNS服务器可以解析该域名)
第4步查询有两种方式:
1. 递归查询
本地DNS服务器获取不到查询url和ip的映射,便向根DNS服务器进行DNS查询请求,然后再由跟服务器向一级域名DNS服务器进行DNS查询请求,依次递归查询,直接查询到对应url和ip映射,再将结果一层层返回给本地DNS服务器,最后浏览器发起请求(请求服务器一层层代理转发)
2. 迭代查询
本地DNS服务器获取不到查询url和ip的映射,便向根服务器进行DNS查询请求,根DNS服务器返回可能保存了该域名的一级域名DNS服务器的地址,本地DNS服务器则会再向这个一级DNS服务器发起DNS查询请求,然后本地DNS服务依次查询,直到找到真正保存了该域名的DNS服务器获取对应ip地址,最后浏览器发起请求(本地服务器根据返回地址不断的查询)
二、TCP/IP连接
查询到对应ip后,便会经过三次握手和该ip服务器建立连接
三次握手
-------------smile