法律状态公告日
法律状态信息
法律状态
2016-09-21
未缴年费专利权终止 IPC(主分类):H04L12/24 授权公告日:20140820 终止日期:20150729 申请日:20120729
专利权的终止
2014-08-20
授权
授权
2012-12-19
实质审查的生效 IPC(主分类):H04L12/24 申请日:20120729
实质审查的生效
2012-10-24
公开
公开
技术领域
本发明涉及一种Web网站检测方法,特别是涉及一种Web网站死链检测方法。
背景技术
死链是指Web网站中处于路径不可达状态的Web链接,它是导致网站性能下降 的重要原因。随着互联网的快速发展,网站中的各种信息在急速增长,维护网站的内 容完整性以及性能变得十分复杂。Web网页的一个重要特点是动态性,即网页内容可 以任意增加、删除和更新。这一特点使Web服务成为具有吸引力的信息传播媒介,同 时也面临着死链问题的挑战,Web链接相互引用加剧了死链的产生,损害了网站内容 完整性,导致网站性能严重下降。
死链的影响是多方面的。佐治亚理工学院的GVU中心曾做过一项调查发现,大 约60%的用户反映死链问题是使用网络时最反感的问题。此外,为了提高搜索效率和 搜索结果的质量,搜索引擎很少会将带有大量死链的站点放在前面,因此死链会导致 网站被搜索引擎降权。
研究发现,一般Web网页的平均预期寿命是44天,URL的随机测试集合在四年 的时间里损失了大约67%的URL才达到稳定状态。Spinellies对发表在ACM和IEEE 上的论文链接的可访问性做了大量调查实验之后,发现28%的URL在五年之后不可 用,41%在七年之后不可用,并且在所有不可用的网络链接中,大约60%是404错误 (国际组织规定的一类客户端错误,当Web服务器不希望精确指出请求为何被拒绝或 者没有找到任何可以匹配的URL资源时使用该状态码)。因此,有效地检测出网站里 的各种死链,对于维护网站性能、保持网站内容完整性变得十分重要。由于一个大型 网站上的Web链接数以万计,链接有效性检验是一个非常耗时的任务。因此,如何快 速、准确和自动地检测Web网站中的死链值得深入研究。
文献1“B.Haslhofer,N.Popitsch.DSNotify-detecting and fixing broken links in linked data sets[c]//DEXA09.20th International Colocated with DEXA.Austria,Linz, 2009:89-93”设计了一个LOD数据源的加载项,通过比较两个链接的相似值来判断404 错误链接是否发生转移或者被删除,并在客户端浏览器显示不同的检测信息,从而部 分保证LOD数据源的链接完整性。该方法只面对客户端用户,因此只能保证用户体验, 不能根本解决死链问题。其次,该方法需要浏览器频繁询问加载项,造成浏览器性能 下降,并且检测效率低。
文献2“N.Popitsch,B.Haslhofer.Dsnotify:handling broken links in the web of data[c]//Proc of WWW.New york,NY,USA:ACM,2010:761-770”首先定义了两种链接 错误类型,结构错误链接和语义错误链接,接着定义了引起结构错误的链接出现的事 件,最后根据改进前人设计的11种不同解决方案,提出了DSNotify策略。该策略提 取出每个链接的特征向量,根据对链接的元数据和内容的判断,把链接分别放到3个 索引队列,最后由索引来判断产生死链的事件。该方法的目的是修改发送404错误的 页面,所以只提取和检测与重定向和删除的状态码相关的链接,但所查找到的死链覆 盖面不全面。
发明内容
为了克服现有的Web网站死链检测方法覆盖率低的不足,本发明提供一种Web 网站死链检测方法。该方法首先根据Web链接的调度过程修改遍历策略,自动获取网 站链接信息,得到较全面的网站链接信息。然后对新生成的URL库进行精简,去除重 复的网页并且筛选出满足条件的链接,提高数据采集效率。最后根据死链产生的原因 和分类,给出了对应的检测方案,可以提高Web网站死链检测的覆盖率。
本发明解决其技术问题所采用的技术方案是:一种Web网站死链检测方法,其 特点是包括以下步骤:
(1)判断种子列表seedURLs中的URL的合法性,如果合法放到URL库A中, 否则把该URL和错误原因记录到死链的errorSite队列中,进入步骤(6)。
(2)死链分析和判断操作:
①如果A非空,取出一个URLX放入缓存的NamedSite队列中,如果X的域名 不是数字形式,把X放到队列dnsSite队列中,进入步骤②,否则进入步骤④;如果A 为空,算法结束,死链判断完毕,进入步骤(6);
②向DNS服务器发送链接X的域名查询请求;
③DNS服务器通过递归查询返回链接X的IP地址X.IP,如果递归查询失败,则 deadlink(X)=1,发生DNS解析错误,把X和错误原因记录到死链的errorSite文件 中,返回步骤①;
④与X.IP建立一个TCP连接后,向Web服务器发送消息请求,请求资源X.R, 请求消息中包括GET方法、资源指示符、请求头域以及实体头域;
⑤Web服务器接收和解析一个请求消息后,发出一个HTTP响应消息R,响应消 息中包含状态行S、响应头域以及实体E;
⑥取S的第一个数字S.N,如果S.N=4或者S.N=5,则deadlink(X)=1,把X 和错误原因记录到死链的errorSite文件中,返回步骤①;如果S.N=3,查看响应头域 的Location字段,如果内容为空或者是不合语法的URL,则deadlink(X)=1,发生 重定向错误,把X和错误原因记录到死链的errorSite文件中,返回步骤①;
⑦取实体E进行分析,如果实体的长度E.Length=0,则deadlink(X)=1,把X 和错误原因记录到死链文件中,返回步骤①;
⑧deadlink(X)=0,进入步骤(3)。
(3)提取实体E中的所有超链接。
(4)对提取出的超链接进行预处理,首先是链接筛选,把网页深度>5的URL 或者不合语法的URL过滤掉,然后进行去重处理,使用Bloom filter算法删除掉与URL 库A中MD5值相同的URL。
(5)把精简后的链接加入到URL库A中,进入步骤(2)。
(6)输出死链文件中的死链及其原因,并向网络管理员发送邮件通知。
本发明的有益效果是:由于通过动态遍历策略,自动获取较全面的网站链接信息, 得到较全面的网站链接信息;通过重复网页去除、链接筛选等预处理,对新生成的URL 库进行精简,去除重复的网页并且筛选出满足条件的链接,提高了数据采集效率;最 后根据死链产生的原因和分类,给出了对应的检测方案,从而提高了检测覆盖率和处 理效率。通过实验验证和实际测试表明,本发明达到了93.86%的覆盖率。本发明为 Web网站开发者和维护人员高效地检测Web网站死链,维护Web网站性能提供了有 效技术手段。
下面结合附图和实施例对本发明作详细说明。
附图说明
图1是本发明Web网站死链检测方法遍历过程中的URL队列管理图。
图2是本发明Web网站死链检测方法的流程图。
具体实施方式
1.初始化。
首先初始化一个种子列表seedURLs和五个URL队列。五个URL队列分别用于 存放DNS缓存的NamedSite队列、已取得DNS解析的URLs的队列IPSite、没有进行 DNS解析的站点dnsSite、即将抓取的URL的okSite队列及死链的errorSite队列。然 后判断种子列表seedURLs中的URL的合法性,如果合法放到URL库A中,否则把 该URL和错误原因记录到死链的errorSite队列中,进入步骤6。只分析传输协议为 HTTP的链接,直到所有线程都阻塞时停止。
2.死链分析和判断。
模拟客户端代理向DNS服务器以及Web服务器发送询问请求,根据死链的产生 的原因,分类以及HTTP协议的定义,分析返回的信息,若消息满足死链特征,则检 测到死链,做相应处理。具体步骤如下:
(1)如果A非空,取出一个URL X放入缓存的NamedSite队列中,如果X的 域名不是数字形式,把X放到站点dnsSite队列中,进入步骤(2),否则进入步骤(4); 如果A为空,算法结束,死链判断完毕,进入步骤6。
(2)向DNS服务器发送链接X的域名查询请求;
(3)DNS服务器通过递归查询返回链接X的IP地址X.IP,如果递归查询失败, 则deadlink(X)=1,发生DNS解析错误,把X和错误原因记录到死链的errorSite文 件中,返回步骤(1);
(4)与X.IP建立一个TCP连接后,向Web服务器发送消息请求,请求资源X.R, 请求消息中包括GET方法、资源指示符、请求头域以及实体头域;
(5)Web服务器接收和解析一个请求消息后,发出一个HTTP响应消息R,响 应消息中包含状态行S、响应头域以及实体E;
(6)取S的第一个数字S.N,如果S.N=4(X发生客户端错误)或者S.N=5(X 发生服务器端错误),则deadlink(X)=1,把X和错误原因记录到死链的errorSite文 件中,返回步骤(1);如果S.N=3,查看响应头域的Location字段,如果内容为空或 者是不合语法的URL,则deadlink(X)=1,发生重定向错误,把X和错误原因记录 到死链的errorSite文件中,返回步骤(1);
(7)取实体E进行分析,如果实体的长度E.Length=0,则deadlink(X)=1,说 明X没有返回有效信息,把X和错误原因写入errorSite队列,返回步骤(1);
(8)deadlink(X)=0,进入步骤3。
3.网络链接采集。
根据上步分析,X为有效链接,直接提取实体E中的所有超链接。
4.预处理。
对上步得到的新链接进行预处理,主要包括网页去重和链接筛选,首先是链接筛 选,把网页深度>5的URL或者不符合语法的URL过滤掉,从而达到效率和链接完整 性的平衡,然后进行去重处理,使用Bloom filter算法删除掉与URL库A中MD5值 相同的URL。
5.把精简后的链接加入到URL库A中,进入步骤2。
6.输出结果。
输出死链文件中的死链及其原因,并向网络管理员发送邮件通知。
机译: 繁殖场中的死动物检测装置以及使用该装置的死动物检测方法
机译: 繁殖场中的死动物检测装置以及使用该装置的死动物检测方法
机译: G-四链体检测方法,端粒酶活性测定方法和G-四链体形成DNA检测方法