从零开始折腾博客(0):静态?动态?

这两天心血来潮,忽然想折腾一个属于自己的博客,也就是这一系列的缘由。而最终也总算是折腾出来了,要不你就不会看到这篇文章了

可在这折腾博客的第一步:选择框架上,作为一个选择困难重症患者,自己首先就犯了难:选什么样的博客框架好呢?

仔细查了查资料,发现博客网站框架总的来讲分成静态和动态,分别生成的是静态网页和动态网页。

那到底静态网页和动态网页都是啥呢?咱们这就来仔细掰扯掰扯吧。

区分动态和静态

所谓“动态”,不是说有个flash动画有个视频,网页“动”起来就叫叫动态的 2333 动态和静态的主要区别,是指网页的页面是恒定不变的还是由程序动态生成的。

我们知道,浏览器其实就相当于一个编译器,将服务器传来的文件“翻译”成我们所看到的网页形式。对于静态网页来说,对于一个固定的请求,服务器传来的文件是恒定不变的。

而对于动态网页来讲,在收到一个请求后,服务器会调用相应的程序,程序再结合其数据库,动态生成所需要传回的文件,再传回到客户端由浏览器生成相应的页面。

当然,在Ajax(异步JavaScript+XML)技术出现之后,所说的静态页面也允许客户端的 JavaScript 脚本为局部页面提供请求服务,然后可以在无需回到服务器情况下动态刷新部分页面,其实也就是实现了部分的动态化。当然,和动态页面能实现的功能相比,Ajax还是有所欠缺。

知道了动态和静态的区别之后,他们的优势和劣势也就显而易见了。

动态和静态的优势劣势

从内容上讲,由于(纯)静态网页只是将既有的文件发回客户,所以其网页的内容是固定的;而动态网页由于网页是动态生成的,所以可以做到对于不同的用户,在不同的时间显示不同的内容。所以从功能上讲,动态网页相较于静态网页,能实现更多更强的功能,比如对数据库的支持。

另一方面,从源代码的角度来说,静态网页的源代码是完全公开的,这就导致别人的复制相对容易;而动态网页的html页面是动态生成的,浏览器显示的源代码无法显示其后端处理的过程,而后端处理的代码是无法或很难获取到的。

所以总体来讲,静态网页的优势在于无需大量的系统资源(去进行生成网页的过程),并且浏览打开的速度很快。同时由于只有网页,也相对安全而不易崩溃;同时利于搜索引擎的抓取和处理;而相比之下,动态网页的优势就体现其优秀的交互性,并且由于动态的生成涉及到数据库,使得整个日常维护和结构的更改和迁移变得容易。

对于博客系统来讲,无论是静态还是动态都有着很多优秀的框架。动态框架如wordpress,静态框架如Jekyll,hexo等,都是很不错的选择。

最后我们再以一张表格总结一下,

(纯)静态网站

动态网站

内容

网页内容固定

网页内容动态生成

功能

少,弱

多,强

源代码

完全公开

无法获取

工具

HTML+CSS+Javascript

ASP/PHP/JSP

数据库

不支持

支持

优点

无需系统实时生成 利于搜索引擎抓取 浏览打开速度快 安全,不易崩溃

交互性强 日常维护简单 结构更改方便

缺点

交互性弱 日常维护繁琐 结构更改较不方便

需要大量系统资源 不易被搜索引擎抓取 浏览打开速度慢 易遭受攻击

不知看到这里,你是否选定了自己的框架~祝大家都能搭出自己心仪的博客~

版权声明

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。转载请标明

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LET

谈谈JavaScript代码优化

2356
来自专栏Python专栏

Python | 利用Python实现微博监控小姐姐动态

作者:奶权 来源:http://www.jianshu.com/p/9e7ba0a0a610

3352
来自专栏腾讯移动品质中心TMQ的专栏

30分钟轻松搞定代码瘦身

导语 当一个新的产品想要复用一个旧的产品的逻辑的时候,是直接把全盘的代码copy过去就可以了吗?站在功能的角度当然没问题,但是这对于新产品是相当臃肿的,因为一些...

2519
来自专栏码神联盟

碎片化 | 第一阶段-06-第一个小程序-视频

如清晰度低,可转PC网页观看高清版本: 第一个java程序Hello word 暂时我们先使用记事本来编写代码,不建议直接使用开发工具eclipse,那都自动生...

3768
来自专栏北京马哥教育

Python黑科技:利用Python实现微博监控小姐姐动态

? 0x00 前言: ? 前几个星期在写一个微博监控系统 可谓是一波三折啊 获取到微博后因为一些字符编码问题 导致心态爆炸开发中断 但是就在昨天发现了另外一个...

5875
来自专栏PHP在线

关系型数据库与NoSQL数据库场景说明

一个程序员很有必要熟悉或者精通一种数据库,MySQL无疑是首选。为什么使用MySQL呢,因为它是开源的,同时具备轻量、简单、稳定和高性能等特点,尤其是其学习成本...

3476
来自专栏领域驱动设计DDD实战进阶

微服务实战(九):落地微服务架构到直销系统(回顾总结)

这个系列我们大概写了八篇文章,将微服务的最重要的内容过了一遍。当然其中有些内容还没有涉及到,比如Docker(不是微服务架构风格中必须的)等,关于Docker我...

1571
来自专栏SDNLAB

SDN实战团分享(三十一):Nutanix超融合之架构设计

超融合平台 针对于超融合的概念有着不同的理解,因为组件不同(虚拟化、网络等)而理解不同。然而,核心的概念如下:天然地将两个或多个组件组合到一个独立的单元 中。在...

3967
来自专栏Java后端技术栈

面试必备:如何将一个长URL转换为一个短URL?

前几天整理面试题的时候,有一道试题是《如何将一个很长的URL转换为一个短的URL,并实现他们之间的相互转换?》,现在想起来这是一个绝对不简单的问题,需要考虑很多...

4252
来自专栏应用案例

主题建设之主题表

亿信BI中的分析表大多数都是基于主题表而创建的。那什么是主题?什么是主题表?主题表分哪几种类型、何种场景下使用、又是如何创建的?不同类型的主题表有什么区别等等,...

2588

扫码关注云+社区

领取腾讯云代金券