页面静态化

静态化的问题,在熟悉了Nginx、Vamish、squid、CDN等前端服务器,结合当前主流技术发现,对于springmvc就是为spring servlet拦截增加一个.html扩展名即可。

<servlet-mapping>

                   <servlet-name>springServlet</servlet-name>

                   <url-pattern>*.html</url-pattern><!--处理静态化à

</servlet-mapping>

<servlet-mapping>

                   <servlet-name>springServlet</servlet-name>

                   <url-pattern>*.action</url-pattern><!--处理动态请求à

</servlet-mapping> 

 这里需要解释一下。从原理上来讲,对于web服务器,你无论提交给它什么请求,他返回的都是hmtl文档:

因此,对于”a.html”请求来讲,你是真正的html文档也好,是servlet也好,对于访问者来讲都是一样的,因为返回的都是html文档。唯一区别是,原生态的html文档不需要servlet特别处理,会减轻服务器负担。但在当前的技术条件下,这已经不重要了,因为web服务器前端还有缓存服务器、反向代理服务器等。

对于前端服务器来讲,这个时候,访问”a.html”具体是不是原始的html文档已经不重要了,这也是该缓存方案的由来,方案的原理就是对于扩展名为.html的请求,前端高速缓存或nginx会为其缓存静态页面,从而实现静态化。这也是目前淘宝、京东等主流电商网站采用的技术。即简单又实用。

对于静态化请求来讲,生成静态化页面有两种方式,第一种就是第一次访问时,前端缓存服务器会为请求生成静态化页面并放在缓存区。第二种需要我们写一个小程序去主动刷新静态化的请求。此时,需要记下那些是静态化的请求,然后使用java里的httpclient去调用即可。

最后,其实对于前端服务器来讲”a.html”可以缓存,”a.action”、”a.do”等都是可以缓存的,这里只是为了取得概念上的一直,实际情况是,为了避免和原html文件冲突,最好采用.htm或shtml等扩展名。最主要的是要区分可静态化请求和动态化请求,并采用不同的方式来处理。

                       

posted @   lzhou666  阅读(1907)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示