摘要 : 本文主要讲解静态网页、动态网页的区别、特点以及如何分辨。不论你是站长、前端工作者、SEO优化抑或是架构师、后端程序员等职业,只要你涉及到web层面,该文对你都会有所帮助。了解这些知识,可以更便于你设计和优化网站。
静态网页概念
在网站设计中, 纯HTML格式的网页(包含图片、 视频、js(前端功能实现)、css (样式)等)通常被称为 “静态网页” ,静态网页是相对于动态网页而言的, 是指没有后台数据库、 不含程序(如PHP、 JSP、 ASP)、 不可交互(这里的交互并不单纯是人与网站的交互,也是服务端、客户端数据之间的交互)的网页。
静态网页资源特点
静态网页的维护和更新相对比较麻烦,每个不同的网页都需要单独编辑更新。你可能会说现在有很多网站模板系统,比如Hexo、Jekyll等只需要修改配置文件就可以实现批量化更新,但是这依然是我们从网页的文件本身入手的。
静态网页一般适用于更新较少的宣传展示型网站,是早期很多中小网站展示的形式。
静态网页资源几个重要的特征
- 每个页面都有一个固定的URL地址, 且URL一般以.htm、.html、.shtml等常见形式为后缀,而且地址中不含有问号”?” 或”&” 等特殊符号。
- 网页内容一经发布到网站服务器上, 无论是否有用户访间, 每个网页的内容都是保存在网站服务器文件系统上的,静态网页是实实在在保存在服务器上的文件实体, 每个网页都是一个独立的文件。
- 网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)(优点)。
- 因为网页没有数据库的支持,所以在网站制作和维护方面的工作量较大, 当网
站信息量很大时, 完全依靠静态网页比较困难(缺点) - 网页的交互性较差,在程序的功能实现方面有较大的限制(缺点)。
- 网页程序在用户浏览器端解析,程序解析效率很高, 由于服务器端不进行解析, 并且不需要读取数据库,因此服务器端可以接受更多的并发访问。 当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析),待客户端拿到数据后,在浏览器端解析并展现出来(优点)。
综上所述,网站静态页面的特点就相当于在餐馆吃火锅, 餐馆把原材料和工具都给你准备好,你自己只需要涮着吃就行,不需要大厨给你炒菜做菜了。 因此,对于餐馆来讲,服务顾客的效率大大提高了。由于静态页面不需要在服务器端解析,因此服务器的压力也大大减轻了。常见的静态网页语言有 HTML 、 JS 、 CSS 、 XML 、 SHTML 等。
静态网页的核心特点
- 客户浏览器端解析程序。
- 不需要读取数据库, 性能和效率很高。
- 后端没有数据库支待, 和用户的交互性差, 功能实现很差。
动态网页
所谓的动态网页是与静态网页相对而言的, 也就是说, 动态网页的URL后缀不是 .btm、 .html、 .sbtml、 .xml 、JS、 .css 等静态网页的常见扩展名形式, 而是 .asp 、.aspx 、 pbp 、 .js 、 .do 、 .cgi 等形式的, 并且一般在动态网页网址中会有标志性的符号”?,&”。此外,在大多数情况下后端都需要有数据库支持。
动态网页资源特点
- 网页扩展名后缀常见为: .asp 、 .aspx 、 .php、 .jsp、 .do、 .cgi 等。 2. 网页一般以数据库技术为基础,大大降低了网站维护的工作量。
- 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理、发博文等。
- 动态网页并不是独立存在于服务器上的网页文件,当用户请求服务器上的动态程序时,服务器解析这些程序并可能通过读取数据库来返回一个完整的网页内容。
- 动态网页中的”?”在搜索引擎的收录方面存在一定的问题,搜索引擎一般不会从一个网站的数据库中访问全部网页,或者出于技术等方面的考虑,搜索蜘蛛一般不会去抓取网址中”?”后面的内容,因此在企业通过搜索引擎进行推广时,需要针对采用动态网页的网站做一定的技术处理(伪静态技术),以便适应搜索引擎的抓取要求。
程序在服务器端解析, 这相当于顾客点餐,饭店厨师做饭做菜,耗时长、效率低。在这个过程中,会消耗大量的CPU和内存、IO等资源,并且多数还要提供读取数据库等服务,因此,其访问效率远不如静态网页。在服务器端解析动态程序的服务常见的有PHP引擎、Java容器(Tomcat、Resin、Jboss、Weblogic)等。
有关动态网页的架构思想
一般来说, 静态网页的性能效率是动态网页的10-30倍。 且动态网站效率很差,并发能力也很低,在高并发场景中,应尽可能转换成静态网页提供服务。动态转静态几乎是所有高并发网站必备的架构方案思路,也是高级架构师的职责所在。
此外, 动态转静态也要根据业务需求设计,例如,对于更新频繁的网站,如果设计不好就可能会产生数据不一致的情况,即用户看到的数据不是网站最新的内容,而是静态的内容。
伪静态网页
伪静态就是通过某些技术(如 rewrite)把动态网页的URL地址伪装成静态网页URL地址,但实质上用户访问的还是动态网页,只不过看起来是符合静态网页地址特征的,因此,用户及某些搜索引擎会误认为是静态网页。
伪静态网页特点
从网站的URL地址看, 伪静态表面上看起来是静态内容(如地址结尾带html), 但这其实是通过rewrite规则实现的URL地址重写。 改写后的URL地址规范、 美观, 有利于搜索引擎抓取,并且大大提升了用户的访问体验。但是伪静态网页终究还是动态网页, 所以从性能上考虑,伪静态功能不但没有提升网站性能,反而会降低网站的性能。
为什么动态网页不能直接转成静态网页呢?伪静态网页作用由于搜索引擎无法正确读取带参数的动态网页内容, 以致网页中很多具有丰富信息的页面无法被搜索引擎收录, 因此就有了伪静态技术。 它的作用是把动态网页URL改写成静态网页的URL, 虽然消除了动态网页中的参数, 但是并不需要生成任何网页, 仅仅是改变了网页地址路径。 这样做的主要目的有两个, 一是让搜索引擎收录网站内容, 让更多的用户访问企业网站内容。 二是提升用户访问体验, 动态地址带特殊符号等的URL看起来也不如静态网页地址简洁美观。
伪静态网页的缺点
动态网页伪装成静态网页,虽然可以让搜索引擎收录,并且可提升用户访问体验,但伪静态网页并不能提升网站的访问效率,从理论上说还会降低网站的性能,没有动态转静态网页效率高,不过,对于一些并发不是很大的网站来说,或者是硬件资源充足的 网站来说,伪静态还是一个不错的功能。
现在很多大型的网站都采用了动态网页生成静态网页的技术,用于消除动态网页中 的参数,使搜索引擎收录更多的内容,达到优化网站的效果。当网站遇到访问瓶颈时, 如果有技术力量将动态网页转化成静态网页,那就再好不过了,但是有些更新频率很快的业务并不适合这么做。此外,如果将动态转为静态有很大难度,这时也可以考虑将其设置伪静态。
伪静态网页小结
□ 利用rewrite技术将动态网页伪装成静态网页(URL地址改写)。
□ 便于搜索引擎搜录,提升用户访问掀及用户体验。
□ 访问性能没有提升, 并且转换成伪静态会消耗资源, 因此性能反而会下降。
□ 尽可能地将动态网页转换成真正的静态页面。
□ 并发址不是很大或动态更新过于频繁时, 用rewrite实现伪静态也是不错的。 D伪静态网页的实现过程, 一般由产品运营提出需求, 开发和运维共同实现。
总结:这里的”动静”并不是移动、静止的意思,并不是网页上有特效在动就算是动态网页了,这里的动是指交互。
本文参考《Linux运维:集群实战》
本文作者:冰羽
本文地址: https://bingyublog.com/2019/01/20/辨析静态网页和动态网页/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!