2015-06-09 27 views

回答

5

是的,他们可以使用referer头字段:

HTTP引用(最初引荐的错误拼写)是标识网页的(地址的HTTP 头字段即URI 或IRI )链接到被请求的资源。通过检查引荐来源 ,新的网页可以看到请求来自何处。

领域是请求报头的一部分,其可能看起来像这样,例如,重新加载该页面将显示此链接googleapis(见控制台F12和网络选项卡):

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js 

发送此请求头:

Host: ajax.googleapis.com 
User-Agent: Mozilla/5.0 (...) 
Accept: */* 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
DNT: 1 
Referer: http://stackoverflow.com/questions/30743915/does-cdn-know-which-website-the-client-is-visiting-when-fetching-jquery-min-js-o 
Connection: keep-alive 
Pragma: no-cache 
Cache-Control: no-cache 

报告其使用引荐来到哪个站点:

Referer: http://stackoverflow.com/questions/30743915/does-cdn-know-which-website-the-client-is-visiting-when-fetching-jquery-min-js-o 
+0

你确定吗? 当您点击时,您发送引荐人。 如果我在我的网站上放置了一张照片(热链接),那么jpg不会发送任何有关我的网站的数据...... – knm

+1

是的,所有页面的资源都加载了正确的Referer标题。我刷新了这个页面,并且下面的文件'http:// ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'加载了以下头文件'Referer:http:// stackoverflow .com/questions/30743915/did-cdn-know-which-website-the-client-is-visiting-when-fetching -jquery-min-js-o' –

+0

你是如何检查它的? 以及如果我已经有从我的浏览器中缓存的谷歌CDN jquery.min.js,谷歌可以跟踪我的所有活动在stackoverflow.com或只是通知一次,我第一次访问该网站? – knm

5

是的,他们知道请求资源的页面的URL(例如,通过查看Referer标题)。所以他们可以跟踪哪些网站要求某个资源。唯一的例外是HTTPS页面通过非安全连接请求资源。在这种情况下,Referer将不会被设置,但Origin标题可能有一些帮助。

跟踪个人用户可以做得到的,但它是不切实际的一些原因:

  1. CDN资源是为了通过浏览器被大量缓存,所以他们将被要求对许多不同的下载一次页面浏览量,使“被动”统计虚假。

  2. 强制用户下载访问的每个页面的资源会使CDN无意义,导致无故导航速度变慢,并导致CDN带宽过载。这是90年代GeoCities页面上长时间观看柜台使用的技术(叹息)。

  3. 跟踪用户至少需要设置识别cookie。这增加了Web服务的复杂性(因为它不再是一个简单的文件服务器)并且延迟了响应时间,因为必须以某种形式的DB或新生成的UID查找UID。 Etags也可能被滥用,同样存在cookies问题。

  4. 作为一种替代方案,使用查询字符串参数可以工作,但需要目标页面的协作,该目标页面必须包含UID作为每个请求的参数,这意味着URL不能被硬编码。我想这不是你说的。

综上所述,一个CDN 可以跟踪访问者,但这样做的缺点是实际上比假设的增益越大,承担的性能,以及相关的盈利能力是运行CDN的主要目标。如果分析比性能或操作的经济性更有价值,比如它可能是免费的CDN,那么可以通过应用点2和3来牺牲性能以获得洞察力。

在那一点上,必须证明收集的统计信息的可靠性,以便能够出售任何营销目的。此外,通常由CDN提供的文件的性质使它们相当无趣。例如,我不知道有多少人在那里使用某个特定版本的jQuery,从而获得了很多盈利。

+0

那么为什么CDN是免费的?他们的利润在哪里?带宽成本,对吧? – knm

+1

@knm几乎没有免费CDN是企业的核心部分。有些是作为一个侧面项目运行的,“因为它们可以”,或者因为它首先使它们受益(比如谷歌CDN,谷歌的所有网站都使用它),另一些则由捐赠赞助(如jQuery CDN)。微软和Amazon Cloudfront都提供对某些形式的CDN的付费访问,这意味着某个网站/ webapp的所有者支付更高的可用性和交付速度。我对这种业务的经济部分并不十分熟悉,所以确实可能有盈利的空间。矿是技术原因:) –

+0

另请参阅编辑,@ knm。 –