● 在浏览器中输入www.baidu.com后发生了什么?

在浏览器中输入一个网址后,请求处理流程为:域名解析→3次握手建立TCP连接→发起HTTP请求→服务器返回数据,浏览器渲染页面。下面进行具体说明。

解析域名流程如下:

● 查询浏览器缓存中是否有www.baidu.com对应解析过的IP地址,若不存在,则查询操作系统的DNS缓存。

● 若操作系统DNS缓存中也不存在,则读取hosts文件(位置:C:\Windows\System32\drivers\etc),查询文件中是否指定了域名对应的IP地址。

● 若hosts文件中也不存在,则向本地DNS服务器发起域名解析请求,本地DNS首先向根域名服务器发起请求,根域名服务器发现域名后缀是.com,于是将负责.com域名解析的顶级域名服务器的IP地址返回给本地DNS服务器。

● 本地DNS服务器向顶级域名服务器发起解析请求,顶级域名服务器又把负责该域名解析的权威服务器的IP地址返回给本地DNS服务器。

● 本地DNS服务器向权威服务器发起域名解析请求,权威服务器解析出baidu.com对应的主机IP地址返回给本地DNS服务器,至此完成了域名解析的全流程。

经过三次握手,建立TCP连接后发起HTTP请求,服务器端响应数据,浏览器渲染页面,三次握手的详细流程见1.6.6节,这里不再赘述。