当我们要访问一个网页,我们就需要在浏览器输入一个网址(URL)请求,我们输入一个URL后后台会发生什么事呢?
首先回顾URL
组成格式:协议名://所访问的服务器域名(地址):服务器端口/带层次的文件路径?查询字符串(键值对形式)#片段标识符
执行步骤(以baidu.com为例):
-
浏览器查找域名的IP地址
浏览器缓存-浏览器会缓存DNS记录一段时间。
系统缓存-如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用
ISP DNS缓存-检查ISP缓存DNS的服务器
递归搜索-ISP的DNS服务器从跟域名服务器开始进行递归搜索,从顶级域名服务器到baidu服务器 -
浏览器给web服务器发送一个http请求
浏览器将把一下请求发送到baidu服务器 -
服务器的永久重定向响应
服务器给浏览器响应一个301永久重定向,这样浏览器就会访问“http://www.baidu.com/”而不是"http://baidu.com/" -
浏览器跟踪重定向
服务器永久重定向得到“http://www.baidu.com/”正确的访问地址,所以会发送另一个获取请求。头信息与之前请求意义相同 -
服务器“处理”请求
服务器接收到获取请求,然后处理(定位资源)并返回一个响应 -
服务器发回一个HTML(请求资源、页面)响应
-
浏览器显示HTML(请求资源)页面
-
浏览器发送获取嵌入在HTML(请求资源)中的对象
要获取页面内的其他内容资源,就要向服务器发送请求,重复上述步骤。 -
浏览器发送异步(AJAX)请求
页面显示之后,客户端和服务器之间仍然保持着联系,在浏览器中执行的JavaScript代码会给服务器发送异步请求。