• 页面静态化


    静态化的问题,在熟悉了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等扩展名。最主要的是要区分可静态化请求和动态化请求,并采用不同的方式来处理。

                           

  • 相关阅读:
    npm切换淘宝镜像
    Linux下安装Node.js环境
    Electron入门
    Grunt实现前端自动化
    Javascript代码复审(review)
    Eclipse启动Tomcat报错:Could not load the Tomcat server configuration at Servers2Tomcat v8.0 Server at localhost-config
    maven常用命令
    Element form表单验证无法生效
    css 绝对定位参考对象
    vscode 不识别 less代码
  • 原文地址:https://www.cnblogs.com/skyblog/p/4150972.html
Copyright © 2020-2023  润新知