个人博客: alvincr.com
以下为学习记录内容
Table of Contents
1.定义
1.1动态网页
1.2伪静态网页
1.3 静态网页
2.各种网页的优缺点及特点
2.1 动态网页
2.2 伪静态网页
2.3 静态网页
3.文件格式
4.工作原理
5.相关问题答案
5.1搜索引擎为何不读取?后的内容
5.2 为什么伪静态网页容易被收录
5.3 mod_rewrite存在意义
5.4 为什么爬虫会爬取伪动态网页
6.相关知识
6.1 AJAX
动态网页是一个对所有动态生成与动态更新的网页的统称。与传统的静态网页相反,它会因为变量的改变而产生不同的网页。这既可能是服务器端生成的网页,也可能是用户端生成的网页,或是两者的混合。
服务器端的动态网页是指服务器通过应用程序服务器处理服务器端脚本而生成的网页。服务器传递给脚本的参数决定了每一个网页的生成方式,有时包括如何生成更多的用户端脚本。常见的实现方式有PHP,Active Server Pages(Asp),通用网关接口(CGI)。在服务器端脚本执行完毕后,生成的网页是一个标准的HTML页面,所有的服务器端的脚本不会传给客户端。
用户端的动态网页在浏览器加载网页的时候进行处理。JavaScript和其他脚本语言决定了收到的HTML如何嵌入到文档对象模型(DOM)中。这些脚本语言也可以动态地更新或改变最初的文档对象模型。
总结:动态网页是随操作而改变的网页,由脚本生成,可能是服务器端和用户端混合体。
伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。伪静态技术是指展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。
总结:利用动态脚本处理静态页面后所生成的页面。
备注:伪静态只是改变了URL的表现形式,实际上还是动态页面
静态页面,即静态网页,是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。静态页面需要占一定的服务器空间,且不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外)。常见的静态页面举例:.html扩展名的、.htm扩展名的。
总结:我们下载中常看到以html结尾的就是静态网页,他们是自从出生就没有整过容,一直是那个样子。
优点:维护方便,易于查询数据,存储资源占用小
缺点:不利于搜索引擎收录,制作成本较高,需要人员维护
不利于收录:通常动态脚本需要某些信息来返回页面内容,最常见的如 Cookie 数据, SessionID 或一个环境变量。但对搜索引擎的 Spider 程序来说,它们压根不可能知道去使用你的搜索功能,或者该问什么问题。就是因为如此, Spider 对网站的检索往往会在一个动态站点前不得不止步。此外,在动态页的 URL 中包含了问号 (?) 和百分号 (%) 。还有一些符号诸如 & , % , + 和 $ 等在一个动态页的 URL 中也经常能看到。这样的 URL 被称作“环境变量” (querystring) 。不过大多数 SPIDER 都无法解读符号“ ? ”后的字符 。很显然,由于这个 URL 并不实际存在,所以它们一无所获。因此,如果你的整个网站或网站上有大部分网页都是采用动态来生成的,为了使 SPIDER 易于读取你网站上的内容,你需要对网站做一定的修改。还有一些搜索引擎在对页面进行检索时往往也会拒绝对 cgi-bin 目录下的静态页面 ( 即被保存成静态页面的动态页 )URL 进行检索 。
特点:把储存在数据库中内容以动态的形式展现在客户面前,并把客户的数据存储在数据库中留在以后使用。所以说网站中后台运行的数据库存储的信息更新的速度比较快。
优点:易于收录
缺点:占用CPU较大
特点:静态页面的地址是真实存在的,路径当中不含有? &% 之类的变量符号,所以对搜索引擎来说更友好更容易得到信任,为了追求动态页面和静态页面的优点又回避缺点产生了 “ 伪静态 ” ,在动态页面的基础上通过 url 重写技术把转移参数插入到 url 地址中达到迷惑蜘蛛的作用。
优点:速度快,可以跨平台,跨服务器,并且可以将数据库及后台系统与前台划分开,从而从提高站点的安全。
缺点:消耗资源大,交互性差,内容更新维护复杂
由于静态页面存放在服务器中药占据空间内存,可以想象如果某论坛有 10 万帖,每个帖的大小 100K ,如果全部作为静态页面存在于服务器中就要占据 10G 的大小,不包括存储计算中造成的空间浪费,所以相当消耗空间资源。
特点:静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”。
网页获取页面的格式:
静态网页的工作流程可以分为以下4个步骤:
① 编写一个静态文件,并在web服务器上发布;
② 用户在浏览器的地址栏中输入该静态网页的URL并按回车键,浏览器发送访问请求到web服务器;
③ web服务器找到此静态文件的位置,并将它转换为HTML流传到用户的浏览器;
④ 浏览器收到HTML流后,显示此网页的内容。
动态网页的工作流程分为以下4个步骤:
① 编写动态网页文件,其中包括程序代码,并在web服务器上发布;
② 用户在浏览器的地址栏中输入该动态网页的URL并按回车键,浏览器发送访问请求到web服务器;
③ web服务器找到此动态网页的位置,并根据其中的程序代码动态建立HTML流传到用户的浏览器;
④ 浏览器收到HTML流后,显示此网页的内容。
搜索引擎的 SPIDER 不愿意读取放在 cgi-bin 目录下的网页,或是 URL 中包含了符号“ ? ”的字符。其原因就在于,如果在 CGI 中提供了“无穷”数量的 URL ,那么 SPIDER 往往就会因为对这些“无穷”网页的检索而被牢牢套住,陷入死循环。这就是所谓的蜘蛛陷阱 (spidertraps) 。数据库程序对 SPIDER 亦有可能创建一个与此类似的情形。因而为避开可能的陷阱, Spider 对于那些带有符号“ ? ”的 URL 中的“ ? ”之后的字符一概不予读取。倘若 Spider 被你的服务器套住,不只是对 Spider 本身不妙, Spider 对你网站页面的重复访问请求也会导致你的服务器系统彻底瘫痪。
在文章列表中把文章的连接如/blog/articleInfo.do?userName=zy&&blogId=1&&articleId=1转换成blog/a/0101002526B90C548A833416.html这种URL,这样蜘蛛就可以进而爬进去看相应的内容了,因为文章列表中的每一篇文章都是不同的静态URL。
爬虫不喜欢爬取带问号的动态网页,无论参数怎么加,返回内容一成不变,例如http://alvincr.com/?2222222222222也会指向我的的首面。于是有了mod_rewrite,它可以重新映射地址。对页面的地址Web服务器收到请求后并重新映射,然后再执行那个PHP程序。(以上网址均为假设)这样,在内部不改变的情况下,对外呈现出来的网址变成了没有问号的象静态网页的网址一样。
搜索引擎会不收录带问号的网址是因为搜索引擎怕由于问号而进入死循环(以前动网就有这样一个漏洞,蜘蛛进去出不来了),所以很多时候带问号的地址是不会进去的,伪静态对于搜索引擎来说,其实就是静态,因为地址中没有带问号。
静态页面的地址是真实存在的,路径当中不含有? &% 之类的变量符号,所以对搜索引擎来说更友好更容易得到信任,为了追求动态页面和静态页面的优点又回避缺点产生了 “ 伪静态 ” ,在动态页面的基础上通过 url 重写技术把转移参数插入到 url 地址中达到迷惑蜘蛛的作用。
AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。
出现原因:
传统的Web应用允许用户端填写表单(form),当提交表单时就向网页服务器发送一个请求。服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML码往往是相同的。由于每次应用的沟通都需要向服务器发送请求,应用的回应时间依赖于服务器的回应时间。这导致了用户界面的回应比本机应用慢得多。
出现效果:
与此不同,AJAX应用可以仅向服务器发送并取回必须的数据,并在客户端采用JavaScript处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少,服务器回应更快了。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此Web服务器的负荷也减少了。
存在问题:
对应用Ajax最主要的批评就是,它可能破坏浏览器的后退与加入收藏书签功能[3]。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。
总结:AJAX能够实现对网页的部分更新,保留无需更新的部分,以使得Web应用程序更为迅捷地回应用户动作。
参考:
Wiki百科,百度百科
网站静态化——伪静态&SEO
https://blog.csdn.net/sunxianghuang/article/details/85938464
静态网页与动态网页的区别?
https://zhuanlan.zhihu.com/p/104151537
关于伪静态的特点和优点
https://blog.csdn.net/phphot/article/details/2208534