就目前网站建设行业开发使用的语言来讲,更多的还是集中于两个语言上面,一个 php,一个就是 ASP.NET 了。而目前 WordPress 网站建设市场也同样有着这样的情况,而对于有建站需求的企业来讲,更何况可能对于这些不太了解的企业,在选择上就出现了一些小小的矛盾。那今天 WordPress 网站建设-SEO 站群就关于网站后台开发的语言和大家具体的分析下,但是这里小编不打算多讲,只说下 ASP.NET 的语言使用的情况,原因没有别的只因为我们 SEO 站群一直使用这个,可能比较有话语权,而且在 WordPress 网站建设市场来看 ASP.NET 还是有很大的比列的。
搜索引擎优化的角度考虑
根据网上的资料来看,网站静态化考虑多的就是 SEO 站群了,事实上静态页面确实十分有利于搜索引擎蜘蛛的抓取,另外早期的 ASP.NET Web Form 网站对于 SEO 站群则不是太友好。
那么为什么静态化会有利于 SEO 站群呢? 这里主要从 URL 进行分析,对于搜索引擎蜘蛛来说,动态的 URL 往往是十分不友好的,虽然现在搜素引擎的技术已经可以抓取到动态页面的内容,但是相比静态 URL 简短、美观、稳定的性质,动态 URL 地址中过多且复杂的引数会使蜘蛛难以理解和区分。
动态页面本身是依靠传入的引数来查询显示资料库的内容,对于引擎蜘蛛来说,相同名称的.aspx 页面都是同一个页面,不同的只是引数,搜索引擎只能根据这些复杂的引数来判断 URL 是否为不同的页面,所以动态 URL 对于搜素引擎来说是十分不友好的。
而静态页面则不同,由于静态页面的 URL 对应的是服务器上页面所在的磁碟路径,搜索引擎很容易区分和理解页面的地址,而且静态 URL 一般也不会带有复杂的引数。
对于 ASP.NET Web Form 网站来说,如果只是想优化 URL,那么倒是可以考虑使用伪静态的方法。幸运的是,对于使用 ASP.NET MVC 开发的网站来说,就没有这个烦恼了,ASP.NET MVC 的路由机制就为我们提供了对 SEO 站群十分友好的 URL,甚至可以考虑不对网站进行静态化操作。
另外静态页面访问的速度比动态页面快,从 SEO 站群的角度来看是十分有利的。毕竟对于搜索引擎蜘蛛,如果一个页面响应速度慢并且经常打不开,那么就等于释放出两个讯号:1 、网站多用户体验不好。 2 、网站内容很难抓取。这样会对网站排名造成极大的负面影响。
从网站服务器压力和访问速度考虑
这里先从访问速度进行对比,静态页面的访问速度确实比动态页面快,毕竟静态页面只需从硬碟读取页面档案就可以将内容呈现给多用户,而动态页面比如 asp.net 网站一般还需要经过程序处理相关的业务逻辑,以及从资料库中读取资料才能渲染页面并呈现出来,一定程度上会拖慢页面的访问速度。在遇到高强度访问压力的时候,静态页面快速和稳定的优势将会完全体现出来。
这里再从服务器资源角度来看,对于站群站长来说服务器配置越好所需的费用越高,那么静态化的网站在服务器资源方面又是如何呢? 这么说吧,静态页面消耗硬碟的资源较多,一般在磁碟空间容量方面,主要是大量的页面档案和分级资料夹。另外静态页面在生成时候,对于硬碟的 IO 读写操作和 CPU 消耗也是十分巨大的,特别是遇到有大量的页面要进行静态化的时候,CPU 运算和 IO 操作将会更加显着的降低服务器效能。
而 ASP.NET 这类的动态网站一般比较消耗服务器的记忆体资源,这里需要开发人员注意对网站进行优化,尽量避免将大量资料储存至会话中,以及在使用快取方面也需要额外注意。另外有些动态网站对 CPU 使用率也是十分高的,比如一些提供图片处理的服务网站。此外需要对资料库进行大量增删改操作的动态网站,对服务器压力非常的大,例如常见的论坛类网站 (WEB2.0),甚至有的服务器商在出租服务器时,会有额外的提示服务器可承受的压力资料。
总体来说,静态化后的网站确实有利于降低服务器压力。在生成静态页面时所造成的服务器效能影响,是可以通过一定的手段进行优化。另外大家也可以了解下 CDN 技术,即内容分发网络,对于静态页面来说,一旦使用了这个技术,外加上浏览器快取,那么多用户访问网站的响应速度就像火箭一样快! 访问速度快了,从另一个角度来看又是有利于搜索引擎对网站内容的抓取。
从技术角度分析
作为一个 ASP.NET 开发人员,曾经在对网站进行静态化的时候遇到过许多问题。先从网站程序的复杂度进行分析,一个具有静态化功能的网站必是非常复杂的,因为静态化一个网站要考虑的技术性问题十分多 (这里不包括伪静态) 。
进行静态操作的时候,不仅要考虑到单个页面的操作,还需要注意整体与单个之间的复杂关联,有种牵一发而动全身的压迫。就拿常见的上一页和下一页来说,如果当前网站的某一篇文章删除了,那么这篇文章对应的上下页就必须要重新进行静态化,否则连结的地址将会出现 404 。简单的页面尚且如此,更别说那些大型的网站了,每个页面中超级复杂的关系就够喝一壶了。
再从进行静态操作的时机来看,一般开发人员要实现相应的触发开关功能,用于判断是否要进行静态化操作,以及要进行什么样的静态化操作。是区域性还是整体? 静态页面档案是否存在? 静态页面的资料是否过期? 这些问题都说明了生成的时机是很重要的,否则会造成多用户看到的资料不是新的内容。
此外静态化操作对服务器效能的影响也是煎熬开发人员的难题之一,我们不可能频繁的进行静态化操作,对磁碟的 IO 操作以及大量的逻辑处理都会消耗大量 CPU 的资源,服务器效能随之受到影响。在进行批量操作时,一定要考虑使用执行绪进行处理,千万不能阻塞网站的整体程序。
老实话,对于网站开发者来说,静态功能也许是一个头疼的问题,开发难度加大了,同时维护难度和管理难度也通用加大,在网站备份的时候还得考虑是否要备份这些静态档案! 特别是大型的网站,静态化往往需要进行复杂的架构设计!
总结 ASP.NET 静态化的利弊
是否是需要静态化,还是得看整体的需求,俗话说只有适合自己的才是知名的 (有点废话的赶脚 ^^) 。
一般来说一些不经常更新内容的页面就可以考虑进行静态操作,比如新闻页面,小说的章节页面,毕竟这些内容一旦发布了,就很少会进行改动。而且可以使用 CDN 技术进行加速。
优点:
1 、利于 SEO 站群,体现在友好的 URL 路径和快速的访问速度,asp.net mvc 网站可以忽略 URL 的影响。
2 、一个字:就是快!!! 静态页面访问速度快,多用户体验好,结合 CDN 技术、快取和相应的架构,提速效果更加明显!
3 、相比动态页面一定程度上减轻服务器压力
缺点:
1 、可能需要使用大量硬碟空间
2 、增加网站开发复杂度,不利于程序维护和管理。
3 、不太灵活,静态化操作是需要触发开关的,不可能频繁的进行操作,可能导致资料更新慢,需要进行相应的设计。