静态系统通常有如下几方面的特征。
- 一个页面对应的URL通常固定。不同的URL表示不同的内容,让返回的请求和URL相关,也就是通过URL能唯一标识一个页面。
- 在页面中不能包含与浏览者相关的因素。这里所说的“不能包含”不包含JS动态生成的部分,也就是在页面中HTML代码不能明显的含有与浏览器相关的DOM。例如不能含有用户的姓名、身份标识以及与Cookie相关的因素等。
- 在页面中不包含时间因素。页面同样不能含有与时间(这里的时间不是指客户端浏览器中获取的时间,而是服务器端输出的时间)相关的因素,页面中的DOM结构不能随着时间的变化而变化。典型的案例如淘宝的秒杀中,到某个时间点时就可以使用页面中的立即购买按钮,则这个判断的时间就是从服务器端获取的时间。
- 页面中不包含地域因素。对页面中的地域因素很好理解,即从北京访问看到的页面要和从上海访问呢看到的页面相同。淘宝上也有个例子,就是宝贝的运费在不同的地区可能不一样。如果做成静态化,则这个运费就不能直接反映在HTML代码中了。
- 不能包含Cookie等私有数据。Cookie实际上住哟啊是用来标识访问量信息的一个工具,如果在页面中包含这些私有数据,也不可能不包含上面这些因素了。所以要满足静态化,就不能包含Cookie信息。
这里再强调一下,所谓的静态化不仅是传统意义上完全存在于磁盘上的HTML页面,他还可能是经过Java系统产生的页面,但是他输出的页面本身不包含上面所说的那些因素。还有一点,在“页面中不包含”指的是页面的HTML源码不含有,这一点务必要清除。