静态网页与动态网页
静态网页与动态网页
我们通过浏览器访问万维网中的某个网站时会从服务器得到一个超文本标记文档,然后浏览器将文档渲染后展示在显示器上,这就是我们得到的页面。页面中可以包含文本、图像、声音、动画... 浏览器从服务器得到的超文本标记文档的后缀通常分为两大类:
- 静态页面:html、shtml、xml
- 动态页面:asp、jsp、php、perl、cgi
相同点
-
目标都是呈现内容给用户
-
内容都是用超文本标记语言(HTML)表示
既然它们有着相同的使命,那为什么会有所区别呢?
静态网页
静态网页是指存放在服务器文件系统中的HTML文件。当用户在浏览器中输入网页的URL,然后回车,浏览器就会下载对应的html文件、渲染并呈现在窗口中。早期的网站通常都是由静态页面制作的。
-
开发技术
使用HTML或XML即可完成静态页面的制作 -
特点
静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等形式为后缀,而不含有“?”;网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是存在服务器上的文件,每个网页都是一个独立的文件。
静态网页的内容相对稳定,因此容易被搜索引擎检索。
静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难。
静态网页的交互性较差,在功能方面有较大的限制。
页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面。
减轻了服务器的负担,工作量减少,也就降低了数据库的成本。
-
优点
1)可以公开
2)托管没任何特殊的要求。(不需要特殊的中间软件比如超文本预处理器、公共网关接口)
3)没网络服务器或应用服务器,比如直接从CD-ROM(激光唱片-只读存储器)或USB闪存驱动器读取内容,可以通过网络浏览器直接访问。
4)网站更安全,HTML页面不会受Asp相关漏洞的影响;而且可以减少攻击,防SQL注入。数据库出错时,不影响网站正常访问。
5)不需要编译,所以速度快,节省服务器资源
6)网址格式友好,搜索引擎容易识别 -
缺点
1)内容是固定的,交互性差
2)没有自动化的工具,维护大量的静态页面文件是不现实的,内容更新维护复杂
3)无法充分支持用户的需求(外观选择,浏览器的支持,Cookie)
动态网页
动态网页是相对于静态网页而言的。当浏览器请求服务器的某个页面时,服务器根据当前时间、环境参数、数据库操作等动态地生成HTML页面,然后在发送给浏览器(后面的处理就跟静态网页一样了)。很明显,动态网页中的“动态”是指服务器端页面的动态生成,相反,“静态”则指页面是实实在在的、独立的文件。
-
开发技术
动态网页的生成技术有多中,常见的有:
1) HTML+JavaScript(Node.js)
2) HTML+PHP
3) HTML+http://ASP.NET(或ASP)
4) HTML+JSP
5) HTML+CGI(早期的动态网页技术) -
特点
动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量;采用动态网页技术的网站可以实现更多的功能,如用户注册、登录、在线调查、用户管理、订单管理等等;
动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
动态网页地址中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。
-
优点
1)维护方便,能实现人们需要的各种需求
2)查询信息方便,能存储大量数据,需要时能立即查询 -
缺点
1)动态网站用到数据库,所以对数据库的安全和保密性要求较高,要专业技术人员提供维护才能保证网站的安全
2)动态网站不利于搜索引擎收录
3)动态网站制作成本较高
伪静态
静态网页就是,比如知乎网站上放了一个abc.html文件,你想访问它就直接输入zhihu. com/abc.html。Web服务器看到这样的地址就直接找到这个文件输出给客户端。动态网页就是,假如你想做一个显示当前时间的页面,那么就可以写个PHP文件,然后访问zhihu. com/abc.php。Web服务器看到这样的地址,找到abc.php这个文件,会交给PHP执行后返回给客户端。而动态网页往往要输入参数,所以地址就变成zhihu. com/abc.php?a=1&b=2。搜索引擎比较烦这种带问号的动态网页,因为参数可以随便加,而返回内容却不变,例如https://www.baidu.com/?a=1 也会指向百度的页面。于是有了mod_rewrite,它可以重新映射地址。比如当前这个页面的地址http://www.zhihu. com/question/20153311,Web服务器收到请求后会重新映射为www.zhihu.com/question.php?n=20153311, 然后再执行那个PHP程序。(以上网址均为假设)这样,在内部不改变的情况下,对外呈现出来的网址变成了没有问号的“静态网页地址”。
于是有人给起了个名字叫“伪静态”。其实也没什么伪的,就是没有问号的静态网址,让搜索引擎舒服点而已。这也是大多数网址格式,例如本文链接:https://zhuanlan.zhihu.com/p/104151537/edit, 这里就使用到了伪静态。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结