我注意到,仅在去年,许多主要网站有作出同样的改变的方式自己的网页的结构。每个人都有移动他们的Javascript文件从正在主办在同一领域作为页面本身(或有子的),正在举办一个名称不同的领域。

它不是简单的并行

现在,有一个众所周知的技术的传播组成部分的页面在多个领域并行下载。 雅虎建议 因为这样做的其他许多人。例如, www.example.com 是你HTML托管,然后你把图像 images.example.com 和javascript上 scripts.example.com.这得到周围事实上大多数浏览器的限制数量的同时连接每个服务器,以便以良好的净的公民。

上述是 我在说什么.

它不是简单地重新定向到的内容传送网络(或者也许这是--看看底部的问题)

我说的是托管Javascript具体地说在一个完全不同的领域。让我以具体化。仅在去年,或所以我注意到:

youtube.com 已经移动。JS的文件 ytimg.com

cnn.com 已经移动。JS的文件 cdn.turner.com

weather.com 已经移动。JS的文件 j.imwx.com

现在,我知道关于内容传送网络之类的 Akamai 专门从事外包,这对于大型网站。(名称为"cdn"在特纳的特殊域的线索我们的重要性这一概念)。

但注意到这些例子中,每个站点都有其自己具体的注册域,用于这一目的,及其不域的一个内容传送网络或其他基础设施的提供者。事实上,如果你尝试载的主页的多数的这些脚本域名,他们通常向回的主要领域的公司。如果你反查IPs参与,它们 有的时候 显指向一个公司,CDN的服务器,有时不是。

为什么我会在乎?

具有以前曾在两个不同的保安公司的,我已经偏执的恶意Javascript.

因此,我遵循的做法,白名单的网站,我将允许Javascript(和其他活动内容如Java)上运行。作为结果,使这样一个网站 cnn.com 正常工作,我必须手动把 cnn.com 进入一个清单。这是一个疼痛在后面,但我喜欢它的选择。

当人们使用的东西喜欢 scripts.cnn.com 并行的,这工作的现有适当的通配.而当人们用子关的公司,CDN域,我可能只是许可证的公司,CDN的主要领域使用通配符面前以及和杀死许多鸟类的一个石头(如*.edgesuite.net 和*。akamai.com).

现在,我们发现,(为2008年),这是不够的。现在我要戳周围的源代码的一页,我要白名单,并找出什么样的"秘密"域(或域名),网站是用来储存他们的Javascript。在某些情况下,我发现我必须允许三个不同的领域,使一个网站的工作。

为什么所有的这些主要地点开始这样做?

编辑:"确定" 作为"。参见样式",指出, 它不会出现有关CDN的递送的内容。因此,让我修改的问题稍微基于他的研究...

为什么 weather.com 使用 j.imwx.com 而不是的 twc.vo.llnwd.net?

为什么 youtube.com 使用 s.ytimg.com 而不是的 static.cache.l.google.com?

还有一个理由这一点。

有帮助吗?

解决方案

你的后续行动的问题基本上是:假设一个受欢迎的网站使用的是网络,为什么他们使用他们自己的顶级域名的喜欢imwx.com 而不是一个子(static.weather.com)或CDN的领域?

好了,因为使用的一个领域,他们控制与CDN的领域是,他们保留的控制-他们可能甚至变化Cdn的完全并仅必须改变DNS记录,而具有更新链接在1000pages/应用程序。

那么,为什么使用废话域名字?嗯,一个很大的事情有帮助的文件等。js和。css是,你希望他们能够缓存下游代理和人们的浏览器尽可能多的。如果一个人的命gmail.com 和所有的.js是装出来的他们的浏览器高速缓存,该网站将出现更迅捷到它们,它也可以节省带宽上的服务器(每个人都是赢家).问题是,一旦你发送HTTP headers真正积极的缓存(即缓我一个星期或一年或永远),这些文件是不是永远可靠地加载服务器的任何更多的和可以不作改动/修正,以他们,因为事会打破人们的浏览器。

那么,什么公司要做的就是阶段,这些变化和实际上改变网址的所有这些文件迫使人们的浏览器以重载它们。骑自行车穿越域喜欢"a.imwx.com","b.imwx.com"等等。是如何得到执行。

通过使用一个无稽之谈域名,Javascript开发人员和他们的Javascript系统管理员/加联络的对口可以有自己的域名/DNS,他们是推动这些修改通过,即他们是负责任的/自主的。

然后,如果任何种类的饼干-阻止或脚本阻挡开始发生的顶级域名,他们只是改变从一个无稽之谈到顶级域名kyxmlek.com 或什么的。他们不必担心不小心做邪恶的东西,已经对策的副作用上的所有*.google.com.

其他提示

限制Cookie流量?

在特定域上设置cookie后,对该域的每个请求都会将cookie发送回服务器。每一个请求!

这可以很快加起来。

很多原因:

CDN - 一个不同的DNS名称可以更容易地将静态资产转移到内容分发网络

并行性 - 图像,样式表和静态javascript正在使用另外两个不会阻止其他请求的连接,例如ajax回调或动态图像

Cookie流量 - 完全正确 - 尤其是那些习惯于在Cookie中存储远远超过简单会话ID的网站

负载整形 - 即使没有CDN,仍然有充分的理由将静态资产托管在更少的Web服务器上,这些Web服务器经过优化,可以极快地响应大量的文件URL请求,而网站的其余部分则托管在更大的数量上服务器响应更多处理器密集型动态请求


更新 - 您不使用CDN的DNS名称的两个原因。客户端DNS名称充当正确的“hive”的关键字。 CDN正在缓存的资产。此外,由于您的CDN是商品服务,您可以通过更改DNS记录来更改提供商 - 这样您就可以避免在您的网站上进行任何页面更改,重新配置或重新部署。

我认为CDN理论中有一些东西:

例如:

$ host j.imwx.com
j.imwx.com              CNAME   twc.vo.llnwd.net
twc.vo.llnwd.net        A       87.248.211.218
twc.vo.llnwd.net        A       87.248.211.219
$ whois llnwd.net
<snip ...>
Registrant:
  Limelight Networks Inc.
  2220 W. 14th Street
  Tempe, Arizona 85281-6945
  United States

Limelight是CDN。

同时

$ host s.ytimg.com
s.ytimg.com             CNAME   static.cache.l.google.com
static.cache.l.google.com       A       74.125.100.97

我猜这是由Google内部运行的静态内容的CDN。

$ host cdn.turner.com
cdn.turner.com A record currently not present

啊,好吧,不能赢得所有人。

顺便说一句,如果你使用带有NoScript附加组件的Firefox,那么它将自动化搜索源的过程,并且GUI-fy白名单的过程。基本上,单击状态栏中的NoScript图标,您将获得一个域列表,其中包含临时或永久白名单的选项,包括“此页面上的所有内容”。

我大约两到三年前在前一个雇主处实施了这个解决方案,当时网站由于遗留的Web服务器实施而开始变得过载。通过将CSS和布局图像移到Apache服务器上,我们减少了主服务器上的负载,并提高了速度。

但是,我一直认为Javascript函数只能在与页面本身相同的域中访问。较新的网站似乎没有此限制:正如您所提到的,许多网站在单独的子域甚至完全分离的域中都有Javascript文件。

有人可以给我一个指针,说明为什么现在可以这样做,而不是几年前?

不仅javascript可以移动到不同的域,但尽可能多的资产会带来性能提升。

大多数浏览器对可以对单个域进行的同步连接数量有限制(我认为它大约为4)所以当你有很多图像,js,css等时,通常会在下载每个文件时停滞不前

您可以使用YSlow和FireBug之类的内容来查看从服务器下载每个文件的时间。

通过在不同的域上拥有资源,可以减轻主服务器上的负载,并且可以在任何给定时间拥有更多同步连接并下载更多文件。

我们最近推出了一个房地产网站,其中有许多图像(房屋,duh:P),这些图像使用了这个原理,所以列出数据要快得多。

我们也在许多其他资产量很高的网站上使用过它。

我认为你回答了自己的问题。

我认为您的问题与安全相关,而不是为什么。

也许新的META标签是为了描述相关页面的有效CDN,然后我们需要的是一个浏览器插件来读取它们并相应地表现。

是否因为垃圾邮件和内容过滤器阻止了?如果他们使用奇怪的域名,那么就很难弄清楚和/或你最终会阻止你想要的东西。

Dunno,只是一个想法。

如果我是一个很大的姓名,多品牌公司,我认为这种做法将是有意义的,因为你想让javascript code可作为一个图书馆。我会希望使尽可能多的网页,以尽可能一致处理事情如地址、国名、邮政编码。阿贾克斯可能使这一关切突出。

在目前的互联网的商业模式,域名的品牌,未网络的名称。如果你购买或转品牌,你结束了很多领域的变化。这是一个问题,即使是最突出的网站。

还有链接,这一点至为有用的文件*.netscape.com 和*。mcom.com 都已经一去不复返了。

维基百科 Netscape 说:

"在十月12日,2004年,流行开发的网站Netscape DevEdge被关闭AOL。DevEdge是一个重要的资源用于互联网有关的技术,保持明确的文件证浏览器文件相关技术,如HTML JavaScript和流行的文章写的工业和技术领导人,例如丹尼*古德曼。一些内容从DevEdge已经重新发布在Safari的网站。"

因此,这将是在不到10年期限:

  • 镶嵌通信公司
  • Netscape Communications Corporation
  • AOL
  • AOL Time Warner
  • 时代华纳

如果你把代码域中是不是一个品牌名称,则保留了很大的灵活性和你没有重构所有入境点访问控制,并引用代码时,网站的重新命名。

我曾与一家公司合作过。他们在数据中心中具有相当好的对等性,因此CDN的推理对他们而言并不那么大(可能会有所帮助,但他们并不是出于这个原因)。他们的原因是他们并行运行多个web服务器,共同处理他们的动态页面(PHP脚本),并且他们使用快速,轻量级的网络服务器(如lighttpd或thttpd)为单独的域提供图像和一些javascript。图像和静态javascript。

PHP需要PHP。静态Javascript和图像没有。当你需要做的只是绝对最低限度时,很多东西都可以从一个功能齐全的网络服务器中删除。

当然,他们可能会使用代理将请求重定向到特定的子目录到不同的服务器,但是使用不同的服务器处理所有静态内容会更容易。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top