一个页面从输入URL到页面加载显示完成的过程
1)首先在浏览器地址栏中输入URL;
2)浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中存在输入的URL,那么直接显示页面内容,如果没有,执行第三步;
3)在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址;
4)浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手;
5)握手成功后,浏览器向服务器发送http请求,请求数据包;
6)服务器处理收到的请求,将数据返回至浏览器;
7)浏览器收到http响应;
8)读取页面内容,浏览器渲染,解析http源码;
9)生成DOM树,解析css样式,js交互;
10)客户端与服务器交互;
11)ajax查询
其中步骤2的具体过程是:
浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS请求。
操作系统缓存:如果在浏览器中不包含这个记录,则会使用系统调用操作系统,获取操作系统的记录(保存最近的DNS查询缓存)。
路由器缓存:如果上诉两个步骤均不能成功获取DNS记录,继续搜素路由器缓存。
ISP缓存:若上诉均失败,继续向ISP搜素。