静态页面和动态页面的区别
静态网页、动态网页都是网页,都是在浏览器上用 HTML 展示出来的页面。HTML 是网页的基础结构,网页如何排版、每个元素在什么位置,都是由它来描述的。
我们每天看到的网页,无论是新闻网站,还是在线编辑、下载网站等,大部分都是动态网页,其中掺杂了少数的静态网页(例如,展示一个公司的电话号码、logo 及地址的网页一般是静态网页)。
静态网页和动态网页的核心区别是后台是否有数据库的支撑,也可以简单地描述为网页上展示的内容是否要变化,是因人而异地显示不同的内容(例如 QQ 空间),还是根据时间线呈现内容的变化(例如新闻客户端),或是一直保持不变(例如一些国企或政府网站)。
静态网页无须经过后台程序的处理。例如,我们将一个 .txt 文件的扩展名改为 html,放到服务器中,如果有请求来到服务器,服务器会直接将此文件吐回浏览器来显示。
动态网页要经过后台程序的处理,我们常见的 ASP、JSP、PHP 都是后台处理程序。以 PHP 为例,当网页被请求时,首先到 PHP 容器中进行解释,这时解释器知道了当前页面的需求(需要在网页中展示一行文字和一张图片),然后 PHP 程序连接数据库,获取这两个数据,将其插入网页的 HTML 中,再吐回浏览器来显示。
可能大家会问,以 html、shtml 结尾的 URL 一定对应于静态网页,以 asp、jsp、php 结尾并包含“?”的 URL —定对应于动态网页,对吗?
咱们打开一篇腾讯网站的新闻,观察它的 URL(https://new.qq.com/cmsn/NEW20190/NEW2019042300832202.html)。
这个网页的 URL 就是以 html 结尾的,但它内部包括视频、正文、广告等多种元素,而且都是网页的主框架加载完之后,靠 AJAX 拉取数据的,所以上面问题的答案是:不对。这种格式主要是为了对搜索引擎更友好而进行的动态网页伪静态化。
总的来说静态网页和动态网页有以下特点:
我们每天看到的网页,无论是新闻网站,还是在线编辑、下载网站等,大部分都是动态网页,其中掺杂了少数的静态网页(例如,展示一个公司的电话号码、logo 及地址的网页一般是静态网页)。
静态网页和动态网页的核心区别是后台是否有数据库的支撑,也可以简单地描述为网页上展示的内容是否要变化,是因人而异地显示不同的内容(例如 QQ 空间),还是根据时间线呈现内容的变化(例如新闻客户端),或是一直保持不变(例如一些国企或政府网站)。
静态网页无须经过后台程序的处理。例如,我们将一个 .txt 文件的扩展名改为 html,放到服务器中,如果有请求来到服务器,服务器会直接将此文件吐回浏览器来显示。
动态网页要经过后台程序的处理,我们常见的 ASP、JSP、PHP 都是后台处理程序。以 PHP 为例,当网页被请求时,首先到 PHP 容器中进行解释,这时解释器知道了当前页面的需求(需要在网页中展示一行文字和一张图片),然后 PHP 程序连接数据库,获取这两个数据,将其插入网页的 HTML 中,再吐回浏览器来显示。
可能大家会问,以 html、shtml 结尾的 URL 一定对应于静态网页,以 asp、jsp、php 结尾并包含“?”的 URL —定对应于动态网页,对吗?
咱们打开一篇腾讯网站的新闻,观察它的 URL(https://new.qq.com/cmsn/NEW20190/NEW2019042300832202.html)。
这个网页的 URL 就是以 html 结尾的,但它内部包括视频、正文、广告等多种元素,而且都是网页的主框架加载完之后,靠 AJAX 拉取数据的,所以上面问题的答案是:不对。这种格式主要是为了对搜索引擎更友好而进行的动态网页伪静态化。
总的来说静态网页和动态网页有以下特点:
- 静态网页和动态网页都是网页。
- 静态网页不需要后台程序干预处理,直接由服务器返回。实现为静态网页后,一般不需要维护,因为数据不需要更新。
- 动态网页一般需要由程序来处理(ASP、JSP、PHP、Python、Ruby 等),并由数据库提供数据支撑。
- 不要以 URL 的形式来判断一个网页是静态的还是动态的,而应该看页面的属性(产品经理最好具备一些调试技巧和经验)。
- 动态网页更灵活。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算