静态网站和动态网站是你理解的那样吗?
1、静态网站
静态网页强调的是静态,那么这个静态怎么理解呢?静态可以理解为静止状态,强调的是状态固定的情况。那么我们所说的静态网页指的就是纯粹的HTML文件。也就是通过编辑器开发出来的HTML网页。那么为什么使用静态网页来形容纯粹的HTML网页呢?
我们可以这样思考,我们使用编辑器开发过HTML网页都知道,在浏览器运行网页,都能展示出对应编写好的网页效果。如果我们想要网页内容每次都有所变化,是不是每次都需要修改HTML代码才行。人修改代码的动作是动态的,但是原本的HTML网页相对浏览器来说它本身依旧是静止的。也就是每次浏览器运行的网页本身都是同一份。什么情况下这个网页才不是静态的呢?当不再需要人为使用编辑器修改HTML代码更新网页,网页内容也会自动变化时,它就不是静态网页而是动态网页了。具体我会在后面的动态网页中详细介绍什么是动态网页。这里先理解什么是静态网页。会发现静态网页每次更新网页会很麻烦。
那么静态网页的请求访问过程是怎样的呢?我们一起来看下面这个网页请求访问图:
我们都知道,我们访问一个网站时都是需要通过浏览器来访问的。所以浏览器指代的就是客户端。当我们在浏览器的地址栏输入网址按下回车后,浏览器通过HTTP协议发送请求访问到指定的服务器,网页服务器根据你请求的页面返回指定的静态页面。当浏览器获取到返回的静态页面后渲染静态页面的代码,在浏览器就可以看到静态页面的效果了。
这个过程其实跟我们在本地使用浏览器打开静态网页的作用是一样的,只是没有产生HTTP协议发送请求访问服务器获取静态页面的过程。
3、动态网站
所谓的动态网页,是跟静态网页相对的一种网页编程技术。静态网页,随着HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
有时候新手很容易将动态网页和动感网页混淆。动态网页强调的是网页的基本结构不会变,而某个区域的内容可以根据用户的需求从数据库获取数据回来动态的改变。动感网页页面基本是固定的,只是内容有一些动态效果,例如轮播图切换、文字滚动、动画效果等,但是内容并没有有所变化。
总之,动态网页不再是纯粹的HTML网页文件,而是结合了后端语言编写的网页。也就是HTML和Java、JSP、PHP、Python、Visual Basic等高级程序设计语言组合开发的网站。
例如我们在百度的首页中输入不同的关键字,都能搜索出不同的内容展示一样,网站的基本排版样式并没有改变,只是搜索出来的结果展示有所变化,那么百度就是一个动态网站。除此之外,像我们经常打开的QQ空间,不同QQ用户登录所看到的结果是不同的,但是它的排版格式样式都是一样的。动态网站的访问效果如下图所示:
前面了解了静态网页的请求过程后,我们会发现动态网站和静态网站的访问过程基本差不多。那么核心的区别在于后端的Web服务器中,多了一个动态脚本程序和数据库的交互过程。它的处理过程是,当浏览器发送请求访问Web服务器,Web服务器处理请求,后端语言可以根据请求的要求判断是否需要从数据库中获取数据,如果需要获取数据则直接从数据库中获取数据,将数据和HTML页面组合,再返回响应到浏览器中展示。如果请求不涉及数据库,后端语言则可以直接处理请求返回HTML页面,将结果响应到浏览器中展示。从而实现动态网站的效果。
更多编程学习内容欢迎关注公众号《琉忆编程库》。