从我们打开浏览器输入一个网址到页面展示网页内容的这段时间内,浏览器和服务器都发生了什么事情?

1. 在接收到用户输入的网址后,浏览器会开启一个线程来处理这个请求,对用户输入的URL地址进行分析判断,如果是http协议就按照http方式来处理;

2. 调用浏览器引擎中的对应方法,比如webview中的loadurl方法,分析并加载这个URL地址;

3. 通过DNS解析获取该网站对应的IP地址,查询完成后连同浏览器的cookie、useragent等信息向网站目的IP发出get请求;

4. 进入http协议会话,浏览器客户端向web服务端发送报文;

5. 进入网站后台的web服务器处理请求,如Apache、Tomcat、Node.js等服务器;

6. 服务器处理请求并返回响应报文,此时如果浏览器访问过该页面,缓存上有对应资源,会与服务器最后的修改记录对比,一致则返回304,否则返回200和对应的内容;

7. 浏览器开始下载HTML文档(响应报头状态码为200时)或者从本地缓存读取文件内容(浏览器报头状态码为304时或浏览器缓存有效);

8. 浏览器根据下载接收到的HTML文件解析结构建立DOM(document object model,文档对象模型)文档树,并根据HTML中的标记请求下载指定的MIME类型文件(如css、JavaScript脚本等),同时设置缓存等内容;

9. 页面开始解析DOM,CSS根据规则解析并结合DOM文档树进行网页内容布局和绘制渲染,JavaScript根据DOM API操作DOM,并读取浏览器缓存、执行事件绑定等,页面整个展示过程完成。

你可能感兴趣的:(从我们打开浏览器输入一个网址到页面展示网页内容的这段时间内,浏览器和服务器都发生了什么事情?)