CDN的概念最早于1995年由美国麻省理工大学提出,是一套能够实现用户就近访问的网络解决方案。具体方法是:采用智能路由和流量管理技术,将用户的访问请求指向 CDN网络中健康且响应最快的CDN节点,用户通过直接对此CDN节点的访问,获得所需要的内容和数据,就近访问加速了访问速度。
利用内容分发与复制机制,客户不需要改动原来的网站结构,只需修改少量的DNS配置,就可以加速网络的响应速度。 当用户访问使用CDN服务的网站时,解析请求将最终由CDN服务商提供的DNS域名解析服务器来处理。它通过将当时能够最快响应用户的节点地址提供给用户,使用户可以有效准确的得到快速的服务。同时,它还与分布在不同地点的所有CDN节点保持是实时通信,搜集各节点的健康状态,确保用户访问的成功率。
上面的说明有些专业,用户访问网站实际上就是用户的电脑寻找网站服务器的一个过程。先让我们看一下使用CDN服务之前,用户访问网站的流程:
1.用户在自己的浏览器中输入要访问的网站的域名,浏览器首先查看本机系统目录下的一个hosts文件。该文件位于WINDOWSsystem32driversetc下,没有扩展名,但是可以用记事本打开。里面一行对应着域名和IP值。如果有域名对应的IP,浏览器直接就用该IP访问网站。
2.如果没有域名对应的IP地址,浏览器向本地DNS服务器请求对该域名的解析; 本地DNS服务器就是由当地电信或者联通给分配的DNS.
3.本地DNS服务器到根DNS服务器上找所授权的DNS记录,记录返回到本地DNS服务器;
4.本地DNS服务器按照记录到网站授权的域名解析服务器请求解析主机名,域名解析服务器将IP地址作为解析结果送给本地DNS服务器。
5.本地DNS服务器将IP返还给用户;
6.用户在得到IP地址后,向该网站服务器进行访问,网站服务器将相应的内容和数据提供给用户。
使用CDN服务之后,用户访问流程:
前三步流程相同,从第四步开始:
1.域名的解析请求在被发往CDN解析服务器后,服务器将此域名响应速度最快的节点IP发送给本地DNS服务器,本地DNS服务器将此IP发给用户。上图的第四、五步。
2.用户在得到IP地址后向CDN节点发出访问请求第一次的访问。
3.CDN节点将回源网站服务器取回内容数据发给用户。
4.CDN节点会缓存大量数据,若有其他用户访问相同内容时,直接将内容数据返回用户,完成从请求到服务的全过程。
目前CDN服务的厂家大部分是收费的,提供免费CDN服务厂家不多,随着这类产品的增多,厂家之间相互竞争也将逐渐激烈,服务内容、服务项目、服务质量也会随之更上层楼!所以,相信会有更多、更好的免费CDN的出现。
OK,上面说完了CDN的原理,现在我们再分析一下采用CDN服务对SEO(搜索引擎优化)有没有影响,因为对CDN技术实现并不是完全了解,所以只是猜测一下几种情况:
1.首先要了解蜘蛛是怎样爬过来的,抓取源服务器数据的。
对于已经收录的网站,蜘蛛肯定是直接抓取源服务器IP地址的数据,不大可能每次抓取前再重新通过DNS服务器解析一次,所以我们不用担心更新的数据会不会被抓取到。
2.CDN节点缓存的更新频率。
如果蜘蛛抓取的是CDN节点里面的数据,这里面数据都是存放在CDN缓存里面的,CDN既然是一种缓存技术,那么它的实时性肯定是无法实现的,因此它的更新频率就很重要了。在写这篇文章的时候,我打电话咨询了国内大CDN服务商网宿科技的客服,客服的说法是会根据访问量及访问行为自动的设定更新频率,也可以在后台根据网站不同的栏目设定灵活多样的缓存策略和主、被动的数据更新方式;并进行智能调控和缓存。所以,这里对于SEO的影响也是可以忽略的。
3.IP的变化对SEO的权重。
万一蜘蛛抓取到各个节点的数据呢?会不会造成一个网站好像有不同的IP地址,搜索引擎会不会对这种情况有所惩罚呢?查看百度官方SEO指南 可以看到这样的话:“Baiduspider对站点的抓取方式和普通用户访问一样,只要普通用户能访问到的内容,我们就能抓取到。不管是用什么技术,只要能保证用户能流畅的访问网站,对搜索引擎就没有影响。” 既然百度都这样说,谷歌对于抓取和收录更没有问题。同时,百度也提到“建议尽量选择有实力的服务商和成熟的技术,不成熟的技术容易导致访问不稳定,这就有可能影响搜索引擎的抓取了”,所以选择一个安全,稳定的CDN服务提供商仍然是很重要的。
CDN对SEO的影响是很多朋友都关心的问题,从网友的一些实验来看,无论是从抓取速度和频率来说都没有什么问题,甚至是有益的。另外即使存在一些问题,搜索引擎以及CDN提供商应该会想到解决的办法。