ASP.NET站点构建之减少不必要的请求

前言: 本篇的一些内容比较的有意思,总结了可能平时大家可以注意到的一些优化点,而且非常的实用。
        
    网络刮刀
   
    服务端的要处理的请求越多,无疑服务端的压力也就越大,尤其是有些请求需要访问一些比较昂贵的资源,例如数据库,服务端的文件等。但是我们必须知道,在到 达服务端的请求中,有些请求时我们希望的,例如网站的用户的请求,有些请求其实是不必要,甚至是我们不想要的,为此,我们要避免这样的请求,节省服务端的 资源,从而提高性能。
   
    搜索引擎
   
    首先来看看有关搜索引擎的问题。
   
    然后搜索引擎爬到我们的站点是一件好的事情,很多的SEO可以进行,推广站点。同时,在站点中,有些文件或者资源比较的私密,或者我们不希望被搜索引擎请求和收录的,因为每次搜索引擎在请求这些资源的时候,就是发送请求到我们的站点服务器,势必会加重服务器的负载。
   
    不需要被搜索引擎请求的文件一般如下:
   
    1. 图片资源
   
    2. Js脚本,css等
   
    3. 一些需要身份验证或者授权才能看的页面(如果页面需要验证之后才能看,搜索引擎收录了也作用不大)
   
    我们可以设置一下,告诉搜索引擎的蜘蛛程序如何爬我们的站点。
   
    步骤如下:
   
    1. 在站点的根目录下面,创建一个robots.txt的文件。
   
    2. 写入文件。如果我们希望阻止所有的搜索引擎来爬我们的站点的页面,那么就可以在文件中写入下面的配置:
   
    User-agent: *
   
    Disallow: /
   
    如果希望阻止搜索引擎爬某个文件夹,可以配置如下:
   
    User-agent: *
   
    Disallow: /images/
   
    Disallow: /js/
   
    Disallow: /css/
   
    Disallow: /private/
   
    更有趣的是:对于某些搜索引擎,我们还可以改变他们的蜘蛛程序爬我们站点的频率,设置如下:
   
    User-agent: *
   
    Crawl-delay: 10
   
    大家可以去上网找下一些如何影响Google,百度等蜘蛛程序的设置。
   
    热链接问题
   
    就是在A网站上面显示一个来自B网站的图片链接。例如我们在自己的站点上面有一个链接如下:<img src=“http://dotnet.chinaitlab.com/UploadFiles_6597/201209 /20120905103606281.gif”/>,那么在别人在浏览我们的站点的时候,就回去别人的那个站点(http://dotnet.chinaitlab.com/UploadFiles_6597/201209/20120905103606281.gif)去请求这个图片,那么势必会消耗他们的服务器的资源。发过来,如果别人在他们的站点上采用了我们的图片或者其他的链接资料,那么用户在浏览别人的站点的时候就会消耗我们站点的服务端资源和带宽。
   
    为一个组件就可以阻止这种情况的发生:http://www.iis.net/community/default.
   
    aspx?tabid=34&i=1288&g=6.大家去看看。
   
    验证码(CAPTCHA)
   
    我们常常在站点中加入一些验证码的功能来防止网络注册机。一般是生成一张有文字的图片,然后根据验证用户输入的文字和图片中的文字是否一样来判断此时的用户是人还是注册机。
   
    通过验证码阻止了注册机随意的消耗站点资源(如果没有验证码,注册机可以不断的注册信息,大小服务器和数据库资源,而且产生很多的垃圾数据)。