一、 浏览器根据域名寻找IP地址
- 浏览器缓存:浏览器缓存时不时会记录一些域名的IP地址,但是不知道其具体生命周期,故输入域名优先检查浏览器缓存中是否存在该域名的IP地址;
- 系统缓存:如果浏览器缓存中不含有该域名的IP地址,则浏览器发起一个系统调用,查询系统缓存中是否存在该域名的IP地址;
- 路由缓存:根据请求的发送,查询路由缓存中是否存在该域名的IP地址;
- ISP的DNS服务器缓存:继续到ISP的DNS服务器缓存进行寻址;
- 根据域名层级,依次搜索DNS服务器:从跟域名服务器到顶级域名服务器;
(Your ISP’s DNS server begins a recursive search, from the root nameserver, through the .com top-level nameserver, to Facebook’s nameserver. Normally, the DNS server will have names of the .com nameservers in cache, and so a hit to the root nameserver will not be necessary.)
二、 浏览器发送HTTP请求至服务器
浏览器发送HTTP请求至服务器,请求内容包含:头部信息、可接收响应的状态,另外还有请求建立TCP连接的请求;
三、 服务器进行返回301重定向响应
当URL为facebook.com时,服务器返回301永久性重定向,即www.facebook.com/
四、 浏览器根据新URL进行访问
五、 服务器处理请求
服务器接收GET请求,并在服务器内部进行HTTP请求处理,处理完成后生成HTML返回至浏览器处;