专栏首页idealclover的填坑日常从零开始折腾博客(0):静态?动态?

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

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

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

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

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

区分动态和静态

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

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

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

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

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

动态和静态的优势劣势

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

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

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

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

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

(纯)静态网站

动态网站

内容

网页内容固定

网页内容动态生成

功能

少,弱

多,强

源代码

完全公开

无法获取

工具

HTML+CSS+Javascript

ASP/PHP/JSP

数据库

不支持

支持

优点

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

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

缺点

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

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

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

版权声明

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • "pip install" 引发错误 SyntaxError: invalid syntax

    由于自己的机器重装了需要重新安装python 多年没装Python了手也生了,打算安装django的时候居然出了点问题

    idealclover
  • phpstorm 与服务器保持更新

    说起来自己也已经折腾这个网站折腾了几个月了,但是每次更改都要从服务器上把网站文件拽下来,编辑,再放回去(是在是用不惯linux上的vim...配置成本太高......

    idealclover
  • MySQL Error "Incorrect integer value" for column 'name' at row 1″解决方法

    在使用typecho的插件时遇到了数据库的错误,通过日志回溯之后发现错误原因是MySQL Error "Incorrect integer value" for...

    idealclover
  • Detectron Model Zoo and Baselines

    This file documents a large collection of baselines trained with Detectron, prim...

    于小勇
  • 为什么做页面优化要用静态化,静态化如何落地?

    动态网页,是以.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号—“?”。首先它不是真实存在的,他需要执行A...

    lyb-geek
  • 部署webapi,singalR的坑

    我的系统是win2008,iis7.部署webapi后,应用池只能用经典模式。且要添加一个映射:

    申君健
  • ES2020新特性

    2020年4月2日,TC39确定了ES2020的新特性,虽然现在还是 candidate 阶段,需要等到 Ecma GA 的最后确认。按照惯例每年3月份在TC...

    前端黑板报
  • 【二叉树打卡2】从上往下打印二叉树

    这个像相当于二叉树四种遍历中的层序遍历了,其思想是采用广度优先遍历,借助一个辅助队列,步骤如下:

    帅地
  • 斯坦福CS231n项目实战(一):k最近邻(kNN)分类算法

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    红色石头
  • 自定义 Jenkins 发行版就是这么简单

    Jenkins 是一个由开源社区驱动的项目,拥有非常丰富的插件生态,任何人都可以根据社区给出的指南为之作出贡献,甚至是将自己开发的插件托管到 Jenkins 社...

    LinuxSuRen

扫码关注云+社区

领取腾讯云代金券