揭秘网站链接解析:深度解析搜索引擎运作机制的核心要素
搜索引擎基本工作原理的搜索引擎
搜索引擎的主要工作流程包括:搜集、储存、页面解析、索引、查找等几个主要步骤。每个步骤都非常繁复。这里简要分为搜集建库和索引排序两部分来阐述:
Spider搜集建库
互联网信息爆炸式增长,如何高效地获取并利用这些信息是搜索引擎工作中的首要任务。数据搜集系统作为整个搜索系统中的上游,主要负责互联网信息的搜集、保存、更新环节,它像蜘蛛一样在网络间爬行,因此通常被称为“spider”。例如我们常用的几家通用搜索引擎蜘蛛被称为:Baiduspider、Googlebot、Sogou Web Spider等。
Spider搜集系统是搜索引擎数据来源的重要保障,如果把web理解为一个有向图,那么spider的工作过程可以认为是对这个有向图的遍历。从一些重要的种子 URL开始,通过页面上的超链接关系,不断地发现新URL并搜集,尽可能搜集到更多的有价值网页。对于类似百度这样的大型spider系统,因为每时每刻都存在网页被修改、删除或出现新的超链接的可能,因此,还要对spider过去搜集过的页面保持更新,维护一个URL库和页面库。
下图为spider搜集系统的基本框架图,其中包括链接存储系统、链接选取系统、dns解析服务系统、搜集调度系统、网页分析系统、链接提取系统、链接分析系统、网页存储系统。Baiduspider即是通过这种系统的通力合作完成对互联网页面的搜集工作。
查找排序
在以亿为单位的网页库中查找特定的某些关键词犹如大海里面捞针,也许一定的时间内可以完成查找,但是用户等不起,从用户体验角度我们必须在毫秒级别给予用户满意的结果,否则用户只能流失。怎样才能达到这种要求呢?
如果能知道用户查找的关键词(query切词后)都出现在哪些页面中,那么用户查找的处理过程即可以想象为包含了query中切词后不同部分的页面集合求交的过程,而查找即变成了页面名称之间的比较、求交。这样,在毫秒内以亿为单位的查找成为了可能。这就是通常所说的倒排索引及求交查找的过程。如下为建立倒排索引的基本过程:
页面解析的过程实际上是将原始页面的不同部分进行识别并标记,例如:title、keywords、content、link、anchor、评论、其他非重要区域等等;
分词的过程实际上包括了切词分词同义词转换同义词替换等等,以对某页面title分词为例,得到的将是这样的数据:term文本、termid、词类、词性等等;
之前的准备工作完成后,接下来即是建立倒排索引,形成{termàdoc},下图即是索引系统中的倒排索引过程。
倒排索引是搜索引擎实现毫秒级查找非常重要的一个环节,下面我们要重点介绍一下索引系统建立倒排索引的重要过程——入库写库。
索引系统在建立倒排索引的最后还需要有一个入库写库的过程,而为了提高效率这个过程还需要将全部term以及偏移量保存在文件头部,并且对数据进行压缩,这涉及到的过于技术化在此就不多提了。在此简要给大家介绍一下索引之后的查找系统。
查找系统主要包含了五个部分,如下图所示:
(1)Query串切词分词即将用户的查询词进行分词,对之后的查找做准备,以“10号线地铁故障”为例,可能的分词如下(同义词问题暂时略过):
10 0x123abc
号 0x13445d
线 0x234d
地铁 0x145cf
故障 0x354df
(2)查出含每个term的文档集合,即找出待选集合,如下:
0x123abc 1 2 3 4 7 9…..
0x13445d 2 5 8 9 10 11……
……
……
(3)求交,上述求交,文档2和文档9可能是我们需要找的,整个求交过程实际上关系着整个系统的性能,这里面包含了使用缓存等等手段进行性能优化;(4)各种过滤,举例可能包含过滤掉死链、重复数据、色情、垃圾结果以及你懂的;(5)最终排序,将最能满足用户需求的结果排序在最前,可能包括的有用信息如:网站的整体评价、网页质量、内容质量、资源质量、匹配程度、分散度、时效性等等
网站被攻击有办法
网站攻击一般分为3类,分别为ARP欺骗攻击、CC攻击、DDOS流量攻击。
一、先说ARP欺骗攻击
如果要发起ARP欺骗攻击,首先要与网站为同一个机房、同一个IP段、同一个VLAN的服务器的控制权,采用入侵别的服务器的方式。拿到控制权后利用程序伪装被控制的机器为网关欺骗目标服务器。这种攻击一般在网页中潜入代码或者拦截一些用户名和密码。对付这类攻击比较容易,直接通知机房处理相应的被控制的机器就可以了。
二、CC攻击
相对来说,这种攻击的危害大一些。主机空间都有一个参数 IIS连接数,当被访问网站超出IIS连接数时,网站就会出现Service Unavailable。攻击者就是利用被控制的机器不断地向被攻击网站发送访问请求,迫使IIS连接数超出限制,当CPU资源或者带宽资源耗尽,那么网站也就被攻击垮了。对于达到百兆的攻击,防火墙就相当吃力,有时甚至造成防火墙的CPU资源耗尽造成防火墙死机。达到百兆以上,运营商一般都会在上层路由封这个被攻击的IP。
针对CC攻击,一般的租用有防CC攻击软件的空间、VPS或服务器就可以了,或者租用章鱼主机,这种机器对CC攻击防御效果更好。
三、流量攻击
就是DDOS攻击,这种攻击的危害是最大的。原理就是向目标服务器发送大量数据包,占用其带宽。对于流量攻击,单纯地加防火墙没用,必须要有足够的带宽和防火墙配合起来才能防御。如果想防御10G的流量攻击,那就必须用大约20G的硬件防火墙加上近20G的带宽资源。
就是分布式拒绝服务攻击,其破坏力极为显著。其运作机制在于向目标服务器倾泻海量数据包,从而耗尽其带宽资源。面对流量型攻击,仅增设防火墙是远远不够的,必须结合充足的带宽与防火墙共同构筑防御体系。若要抵御10G的流量攻击,则需要配备至少20G的硬件防火墙以及约20G的带宽资源。
网站遭受攻击时,我们应如何应对?
首先,检查网站的服务器
在发现网站遭受攻击时,切勿慌乱,应先检查服务器是否遭受黑客入侵,识别并清除网站中的黑链,随后加强网站的安全防护。具体操作可分为以下三步:
1、启用IP禁止Ping功能,以阻止扫描行为。
2、关闭不必要的端口。
3、激活网站的防火墙。
更多详情可参考: