为什么浏览器不使用 SRV 记录?
这似乎是最少的工作量,它将使可靠网站的服务器端实现更加简单。
例如,您可以指定层级,以便 www.example.com 解析为 1.2.3.4 和 2.3.4.5,并且只有当这两个都不可用时,才尝试 4.5.6.7。
SRV 记录已经存在多年...
我在这里缺少什么吗?
SRV 记录的 RFC 指定它可能不会被预先存在的协议使用,这些协议尚未在其规范中指定使用 SRV 记录。即 HTTP 规范中没有 SRV - 根据 SRV 标准,浏览器禁止使用它。
不过,这并不禁止新的 HTTP 1.2 标准指定使用 SRV 记录。然而,Mark Andrews在 2007 年 4 月向 IETF HTTP 工作组提出了这个建议,但没有得到回应。
据我所知,有两种努力来介绍这一点:
草稿安德鲁斯 http-srv (2002)
草稿-詹宁斯-http-srv (2009)
后一草案的“未决问题”段落说明了:
The big open issue seems to be if one should just update the HTTP scheme to do this SRV lookup and not create a new scheme. The 00 version of this draft did that. A new scheme makes this somewhat unusable for general web surfing while using the old scheme results in a very long transition times where different clients resolve URLs in different ways.
这就是问题的症结所在。如果您的站点依赖于查找记录,那么在每个浏览器都支持SRV
之前,它对某些用户不起作用。
如果没有某种过渡机制,你会冒这个风险吗?
Jonathan de Boyne Pollard 提供了以下常见答案。
你来到这个页面是因为你说了类似下面的话:
SRV 记录支持甚至还没有进入 Web 浏览器,更不用说不常用协议的客户端了。
这是对此类陈述的常见回答。
因为:
将 SRV 记录添加到 HTTP 的最新草案是2014 年的 andrews-http-srv-02,其中包括安全性和过渡性注意事项。它比 2009 年的jennings-http-srv-05草案更完整。例如,它指定了用于选择端口的安全相关算法,当它在 URL 中给出并且有 SRV 记录时(其中还包括一个端口字段) - 詹宁斯草案没有考虑这个问题。
我希望他们能将 SRV 标准化多年,但没有运气。对于大多数人来说,这将是必不可少的,只有可扩展性大于缺点,他们所说的关于速度和兼容性的一切都只是一个糟糕的借口。如果服务器想要分析和应用 SRV 记录,为什么不向用户提供这个选项呢?关于兼容性和其他问题——我们生活在 DoH、DoQ、DoT 的时代,它们不是超级兼容,速度很快,但非常有用,趁热打铁,不找借口,就去做。