3月阅读周·HTTP权威指南:Web机器人之行为不当的机器人篇
引言
HTTP(Hypertext Transfer Protocol,超文本传输协议[插图])是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。
这本书主要包括以下内容:
- 第一部分描述了Web的基础构件与HTTP的核心技术
- 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
- 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
- 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
- 第五部分介绍了发布和传播Web内容的技巧。
- 第六部分是一些很有用的参考附录,以及相关技术的教程。
Web机器人
Web机器人是能够在无需人类干预的情况下自动进行一系列Web事务处理的软件程序。很多机器人会从一个Web站点逛到另一个Web站点,获取内容,跟踪超链,并对它们找到的数据进行处理。根据这些机器人自动探查Web站点的方式,人们为它们起了一些各具特色的名字,比如“爬虫”、“蜘蛛”、“蠕虫”以及“机器人”等,就好像它们都有自己的头脑一样。
行为不当的机器人
这里列出了一些机器人可能会犯的错误,及其恶劣行为所带来的后果。
- 失控机器人:机器人发起HTTP请求的速度要比在Web上冲浪的人类快得多,它们通常都运行在具有快速网络链路的高速计算机上。如果机器人存在编程逻辑错误,或者陷入了环路之中,就可能会向Web服务器发出大量的负载——很可能会使服务器过载,并拒绝为任何其他人提供服务。所有的机器人编写者都必须特别小心地设计一些保护措施,以避免失控机器人带来的危害。
- 失效的URL:有些机器人会去访问URL列表。这些列表可能很老了。如果一个Web站点对其内容进行了大量的修改,机器人可能会对大量不存在的URL发起请求。这会激怒某些Web站点的管理员,他们不喜欢他们的错误日志中充满了对不存在文档的访问请求,也不希望提供出错页面的开销降低其Web服务器的处理能力。
- 很长的错误UR L:由于环路和编程错误的存在,机器人可能会向Web站点请求一些很大的、无意义的URL。如果URL足够长的话,就会降低Web服务器的性能,使Web服务器的访问日志杂乱不堪,甚至会使一些比较脆弱的Web服务器崩溃。
- 爱打听的机器人:有些机器人可能会得到一些指向私有数据的URL,这样,通过因特网搜索引擎和其他应用程序就可以很方便地访问这些数据了。如果数据的所有者没有主动宣传这些Web页面,那么在最好的情况下,他只是会认为机器人的发布行为惹人讨厌,而在最坏的情况下,则会认为这种行为是对隐私的侵犯。[插图]通常,发生这种情况是由于机器人所跟踪的、指向“私有”内容的超链已经存在了(也就是说,这些内容并不像其所有者认为的那么隐密,或者其所有者忘记删除先前存在的超链了)。偶尔也会因为机器人非常热衷于寻找某站点上的文档而出现这种情况,很可能就是在没有显式超链的情况下去获取某个目录的内容造成的。
从Web上获取大量数据的机器人的实现者们应该清楚,他们的机器人很可能会在某些地方获得敏感的数据——站点的实现者不希望通过因特网能够访问到这些数据。这些敏感数据可能包含密码文件,甚至是信用卡信息。很显然,一旦被指出,就应该有某种机制可以将这些数据丢弃(并从所有搜索索引或归档文件中将其删除),这是非常重要的。现在已知一些恶意使用搜索引擎和归档的用户会利用大型Web爬虫来查找内容——有些搜索引擎,比如Google,[插图]实际上会对它们爬行过的页面进行归档,这样,即使内容被删除了,在一段时间内还是可以找到并访问它。
- 动态网关访问机:器人并不总是知道它们访问的是什么内容。机器人可能会获取一个内容来自网关应用程序的URL。在这种情况下,获取的数据可能会有特殊的目的,计算的开销可能很高。很多Web站点管理员并不喜欢那些去请求网关文档的幼稚机器人。
总结
不守规矩的机器人会造成很多严重问题。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)