【问题标题】:Using an IP-Address in URL to HTML Linked Resources (CSS, ...)在指向 HTML 链接资源(CSS,...)的 URL 中使用 IP 地址
【发布时间】:2012-07-01 18:36:01
【问题描述】:

一种众所周知的技术是出于各种原因将资源(CSS、JavaScript 等)与单独的 DNS 名称相关联。像这样:

GET http://stackoverflow.com/
GET http://cdn.sstatic.net/stackoverflow/all.css

(两个不同的域名)

改为:

GET ...
GET http://92.60.242.2/stackoverflow/all.css

(一次 DNS 查找)

这意味着需要两次 DNS 查找。难道我们不能只使用 IP 地址而不是 cdn.sstatic.net 来保存一次 DNS 查找吗?

请假设从服务器的角度来看可以使用 IP 主机。假设有一个具有专用 IP 的专用资源服务服务器。

【问题讨论】:

  • 如果你愿意,你可以这样做。然而,一次 DNS 查找并不昂贵,但使用 IP 地址的成本可能相当大。您失去了虚拟主机(每个 IP 多个站点)、DNS 负载平衡(每个站点多个 IP),并且当您的 IP 地址更改时(因为 100% 正常运行时间是虚构的),您将不得不做额外的工作。有更好的方法可以将加载时间缩短几毫秒。
  • 总的来说我同意,但要注意 DNS 查找可能很昂贵

标签: html performance http dns


【解决方案1】:

内容交付网络通常采用某种负载平衡,通常在 DNS 级别实现(例如,名称 cdn.sstatic.net 会根据请求者的地理位置解析为不同的 IP 地址)。对 IP 地址进行硬编码会适得其反,因为请求总是会发送到同一台服务器(它可能仍然是多个后端服务器前面的负载平衡器,但它们都将位于同一位置)。

【讨论】:

  • 好的,如果不涉及外部 CDN 怎么办?如果您有备用的,只需将 IP 添加到您自己服务器的 NIC。
  • 当然,如果您以这种方式控制服务器,您可以为所欲为。请记住,您主要是在为每个访问者节省 单个 DNS 请求的时间,因为大多数(可能是所有)浏览器都保留了内部 DNS 缓存。
猜你喜欢
  • 2014-02-20
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
相关资源
最近更新 更多