没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
私塾在线《高级软件架构师实战培训
阶段二》
——跟着cc学架构系列精品教程
做最好的在线学习社区
网址:http://sishuok.com
咨询QQ:2371651507
n Web应用的请求/应答模式
Web表现层调用过程概述-1
《高级软件架构师实战培训——阶段二》
——跟着cc学架构系列精品教程
n 从输入URL地址或者点击URL的一个链接到页面呈现的一次请求,大致需要下面几个步骤
1:查找DNS,解析出URL对应的IP地址
2:初始化网络连接
3:发送HTTP请求
4:网络传输请求到服务器
5:Web服务器接收到请求,经过处理转发到相应的Web应用
6:Web应用处理请求,并返回相应的应答
7:网络传输应答内容到前端浏览器
8:浏览器开始解析从服务器端返回的内容,开始渲染和绘制
9:根据HTML内容来构建DOM(文档对象模型)
10:加载和解析样式,构建CSSOM(CSS对象模型)
11:根据DOM和CSSOM来构建渲染树,这个过程是按照文档顺序从上到下依次进行的
12:会根据构建渲染树的过程,在适当的时候,把已经构建好的部分绘制到界面上,中间还会伴随着重
绘(repaint)和回流(reflow)等,如此循环操作,直到渲染绘制完成
13:整个页面加载完成,会触发OnLoad事件。
Web浏览器
Web服务器
请求(request)
应答(response)
做最好的在线学习社区
网址:http://sishuok.com
咨询QQ:2371651507
n 简单分析一下这个过程
1:要通过URL请求服务器,浏览器就要知道这个URL对应的IP是什么,只有知道了IP地址,浏
览器才能准备的把请求发送到指定的服务器的具体IP和端口号上面。浏览器的DNS解析器负
责把URL解析为正确的IP地址。
这个解析工作是要花时间的,而且这个解析的时间段内,浏览器不能从服务器那里
下载任何东西。浏览器和操作系统提供了DNS解析缓存支持。
2:当获得了IP地址之后,浏览器会请求与服务器的连接,TCP经过三次握手后建立连接通道
3:浏览器真正发送HTTP请求,这个请求包含了很多东西,如cookie和其他的head头信息。
4:网络开始传输请求到服务器,这个会包括很多时间,比如网络阻塞时间、网络延迟时间和
真正传输内容的时间等,这是个很复杂的过程
5:Web服务器接收到请求,会根据URL里面的上下文,转交给相应的Web应用进行处理
6:Web应用会依次通过很多处理,比如:filter、aop的前置处理、IoC处理、真实处理对象的
寻找和创建等,这个根据每个应用的具体实现而不同。
然后会把请求转交到真实的处理对象,进行相应的业务处理,并生成Response对象
Web表现层调用过程概述-2
《高级软件架构师实战培训——阶段二》
——跟着cc学架构系列精品教程
做最好的在线学习社区
网址:http://sishuok.com
咨询QQ:2371651507
7:通过网络传输应答内容回到前端的浏览器。其实首先到达浏览器的是纯粹的html代码,不
包含什么图片,外部脚本,外部CSS等,也就是页面主要的html结构。
8:接下来就是浏览器解析页面,进行渲染和绘制的过程了,大致如下:
(1)装载和解析Html文档,构建DOM,如果在解析中发现需要其它的资源,比如图片,那么浏
览器会发出请求以获取这个资源
(2)装载和解析CSS,构建CSSOM
(3)根据DOM和CSSOM来构建渲染树
(4)然后对渲染树的节点进行布局处理,确定其在屏幕的位置
(5)把渲染好的节点绘制到界面上
以上步骤是一个渐进的过程,渲染引擎不会等到所有Html都被解析完才创建并布局
渲染树,它会在获取文档内容的同时把已经接收到的局部内容先展示出来。
9:重绘(repaint)的发生:如果渲染到后面,发现需要修改前面已经绘制元素的外观,比如
背景色、文字颜色等,不影响它周围和内部布局的行为,这就需要重绘这个元素
10:回流(reflow)的发生:如果渲染到后面,发现需要修改前面已经绘制好的元素的某些行
为,这些行为引起了页面上某些元素的占位面积、定位方式、边距等属性的变化,都会引
起它内部、周围甚至整个页面的重新渲染,这就是回流
Web表现层调用过程概述-3
《高级软件架构师实战培训——阶段二》
——跟着cc学架构系列精品教程
剩余34页未读,继续阅读
资源评论
那块代码没问题
- 粉丝: 20
- 资源: 43
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Marki_20241121_192504660.jpg
- (源码)基于Spring Boot框架的仓库管理系统.zip
- (源码)基于Spring、Dubbo和MyBatis的跨境支付系统.zip
- (源码)基于Python的Excel数据处理系统.zip
- (源码)基于Python和ESP8266的物联网按钮通知系统.zip
- (源码)基于C++的多态职工管理系统.zip
- (源码)基于C++的小型便利店管理系统.zip
- (源码)基于Flask框架的权限管理系统.zip
- (源码)基于Arduino平台的太阳能追踪系统.zip
- (源码)基于Spring Boot和OAuth 2.0的权限管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功