给产品经理讲技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

静态网页与动态网页

静态网页、动态网页都是网页,都是在浏览器上用HTML展示出来的页面。HTML是网页的基础结构,网页如何排版、每个元素在什么位置,都是由它来描述的。

读者每天看到的网页,无论是新闻网站,还是在线编辑、下载网站等,大部分都是动态网页,其中掺杂了少数的静态网页(例如,展示一个公司的电话号码、logo及地址的网页一般是静态网页)。

静态网页和动态网页的核心区别是后台是否有数据库的支撑,也可以简单地描述为网页上展示的内容是否要变化,是因人而异地显示不同的内容(例如QQ空间),还是根据时间线呈现内容的变化(例如新闻客户端),或是一直保持不变(例如一些国企或政府网站)。

静态网页无须经过后台程序的处理。例如,我们将一个.txt文件的扩展名改为.html,放到服务器中,如果有请求来到服务器,服务器会直接将此文件吐回浏览器来显示。

动态网页要经过后台程序的处理,我们常见的ASP、JSP、PHP都是后台处理程序。以PHP为例,当网页被请求时,首先到PHP容器中进行解释,这时解释器知道了当前页面的需求(需要在网页中展示一行文字和一张图片),然后PHP程序连接数据库,获取这两个数据,将其插入网页的HTML中,再吐回浏览器来显示。

可能有读者会问,以html、shtml结尾的URL一定对应于静态网页,以asp、jsp、php结尾并包含“?”的URL一定对应于动态网页,对吗?

咱们打开一篇腾讯网站的新闻,观察它的 URL:http://news.qq.com/a/20160402/010599.html。

这个网页的URL就是以html结尾的,但它内部包括视频、正文、广告等多种元素,而且都是网页的主框架加载完之后,靠AJAX拉取数据的,所以上面问题的答案是:不对。这种格式主要是为了对搜索引擎更友好而进行的动态网页伪静态化。

总结:

(1)静态网页和动态网页都是网页。

(2)静态网页不需要后台程序干预处理,直接由服务器返回。实现为静态网页后,一般不需要维护,因为数据不需要更新。

(3)动态网页一般需要由程序来处理(ASP、JSP、PHP、Python、Ruby等),并由数据库提供数据支撑。

(4)不要以URL的形式来判断一个网页是静态的还是动态的,而应该看页面的属性(产品经理最好具备一些调试技巧和经验)。

(5)动态网页更灵活。