了解下CDN和爬虫
先导语
写这篇文章,主要是因为我对CDN和爬虫不是特别了解,之前在工作中只是听说过,大概知道它们是用来干什么的,但是叫我讲我却讲不出来。所以,今天特意做下笔记。
CDN
CDN,全称是“Content Delivery Network”,翻译过来就是“内容分发网络”。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。
CDN 有什么好处呢?
简单来说,它可以缓存源站的数据,让浏览器的请求不用“千里迢迢”地到达源站服务器,直接在“半路”就可以获取响应。如果 CDN 的调度算法很优秀,更可以找到离用户最近的节点,大幅度缩短响应时间。
爬虫
之前学习过,浏览器是一种用户代理,它可以代替我们来访问服务器。但是这个HTTP协议并没有规定用户代理后面必须是真正的人类,它也可以是机器人,这些机器人的名称就叫做爬虫。爬虫实际上以是一种可以自动访问web资源的应用程序。
据估计,互联网上至少有 50% 的流量都是由爬虫产生的,某些特定领域的比例还会更高,也就是说,如果你的网站今天的访问量是十万,那么里面至少有五六万是爬虫机器人,而不是真实的用户。
爬虫是那里来的呢?
绝大多数是各个搜索引擎放出来的,用来抓取网页存入数据库,再建立关键字索引,这样我们才能再搜索引擎中快速搜索到网络中的页面。
爬虫也有不好的一面,它会过度消耗网络资源,占用服务器和带宽,影响网站对真实数据的分析,甚至导致敏感信息泄漏。所以,又出现了“反爬虫”技术,通过各种手段来限制爬虫。其中一项就是“君子协定”robots.txt,约定哪些该爬,哪些不该爬。
不管是爬虫还是反爬虫,都用到了两个技术,分别是HTTP和HTML。
你觉得 CDN 在对待浏览器和爬虫时会有差异吗?为什么?
区分爬虫这个,完全在于cdn想不想做,因为cdn本质上也是web服务器,如果它认为爬虫影响了服务,就可以反爬虫。如果它决定爬虫也算源站的正常流量,就不反。