静态网站及其生成、托管会成为一种流行趋势吗?
(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)
题记:这个问题是我最近工作中,一直在思考的内容,今天和大家分享和讨论一下我的看法。
定义
静态网站:整个网站只由静态的内容(HTML\CSS\JS\Images…)组成,服务端发送给客户端的都是直接的内容,而不是通过动态网页技术(不管是ASP\JSP\PHP\Django\RoR\NodeJS)在收到请求的时候由服务端进行渲染出最终HTML发送给客户端。
静态网站生成器:基于动态内容生成静态网站的技术。通常背后会利用一种模板标记语言(或规范),通过模板引擎生成最终的静态网站内容。现在最流行的静态网站生成技术恐怕就是Jekyll了。
静态网站生成服务:提供一个SaaS服务,让用户可以在云服务中而非在本地运行静态网站生成器。让用户可以方便的持续交付自己的静态网站。即用户只需编辑内容,提交更改,静态网站生成服务就会自动刷新静态网站。
静态网站托管服务:和一般网站托管服务的最大区别就在于,其只托管静态内容。而现在世界上最大的静态网站生成服务和托管服务应该就是GitHub Pages了吧。
为什么
静态网站其实一直都存在,可以说万维网的最初形态就是静态网站,为什么现在说要变成一种流行趋势了呢?
我觉得是几个方面的原因:
- 现代浏览器和前端技术的迅猛发展导致后端功能越来越简单,尤其Angular和React带来的越来越多的Rich Web App出现,后端只需要托管静态内容和提供数据API。
- 持续交付技术及其背后的自动化脚本技术越来越成熟,从而简化了大量的之前需要手动处理的配置、部署等工作。
- 现在网站需要服务的客户数量越来越大,且地理分布越来越广,使用动态网页技术面临着更多挑战
- 当然动态网页技术的安全问题的突显,也让静态网页优势明显。比如“1200万个Drupal站点需要紧急打补丁”。
从下面的Google趋势图中,我们也可以看到静态网站生成器的搜索趋势从2013年开始大量增长,尤其2015年更是猛增。
另外,InfoQ中有一篇名为《静态网站生成器将会成为下一个大热门》的文章也详细谈到了这个趋势,其中介绍了一家在硅谷专门做静态网站托管的创业公司Netlify。甚至一家总部在纽约的企业协作SaaS服务商Wework都把自己整个站点利用静态网站生成器移植为静态网站并托管到Netlify,并写了一篇文章来分享他们的经验《Why WeWork.com uses a static generator and why you should too》。
优势
静态网站的特点决定了它有天生的高性能,尤其可以把整站都利用CDN进行加速,那么速度更加飞快。当然,静态网站的动态化部分(指由JS调用后端API处理的部分)会依赖于后端API的响应速度。
由于静态网站并不会在服务端渲染网页结果,所以一些针对动态网页框架的安全漏洞不会对其产生影响。当然服务器的安全和数据API的安全防护和机制还是必须的。
同时,由于静态网站对于服务器的负载很低,那么托管成本也就可以非常低。以我的初步设计为例,不启用CDN配额为10G空间的网站可以低到2人民币/每月,进行免费增值的商业模式完全没有问题。
后续
在技术和实现层面(生成服务和托管服务),我最近也进行了一些研究,已经有了初步的想法,现在在进行一些技术原型验证。等有了初步结果,会进行一个偏重技术层面分享一下。如果你在静态网站方面有任何想法,欢迎留言评论和我交流。