这也是一个面试的时候经常出现的问题,下面说一下简略版和详细版的回答,以防止追问。
简略版:
- 通过DNS(域名解析服务器)获得IP地址
- 首先尝试与http默认端口80建立TCP连接(http是是基于TCP之上的)
- 如果协议是https那么需要转换协议为https
- 连接建立后服务器发送html文本
- 浏览器显示html文本
其中的一些解释:
-
域名解析:真实过程非常复杂,主要步骤如下:
- 检查浏览器缓存看有没有对应与主机名(如www.taobao.com)的IP地址,有就返回,如果没有进行下一步
- 查找本机的hosts文件,hosts文件就是存储了主机名和IP地址的映射关系的文件,有就返回,如果没有进行下一步
- 向本地DNS服务器查询(本地DNS服务器:一个居民区或一个机构的ISP都有一个DNS服务器),有就返回,如果没有进行下一步,这一步的查询是递归查询
- 本地DNS服务器查询不到,就去向根DNS服务器查询,根DNS服务器会向本地DNS服务器返回负责的顶级域DNS(TLD top-level domain DNS)IP列表,本地DNS服务器继续向TLD DNS服务器发送查询报文,TLD DNS服务器返回相应的权威服务器的IP,本地DNS服务器继续向权威服务器发送查询报文,权威服务器把最终查询到的结果返回给本地DNS服务器,本地DNS服务器将查询到的结果返回给请求主机。这一步的查询是迭代查询,因为所有的查询结果都返回给本地DNS服务器。
上述过程就是计算机网络书中介绍的过程。
-
http重定向:参见https://blog.csdn.net/cswhl/article/details/110183132
参考资料:
计算机网络:自顶向下方法 7th edition