html - 是否有 SSL 握手的 dns 预取等价物?

标签 html ssl web prefetch

我们从几个子域/第 3 方加载数据。这会导致每个域进行大约 100 毫秒的 SSL 握手。我想知道是否有一种类似于 dns-prefetching 工作方式的“pre-fetch-handshake”方法。 dns-prefetching 是否已经这样做了?

最佳答案

我怀疑是否存在预取握手,我怀疑它是否有意义。 DNS预取是针对页面中的链接进行的,这样当用户决定点击链接时,浏览器就已经知道了目标主机的IP地址。这可能在加载页面后立即发生,几分钟后,几小时后或永远不会发生。 DNS 预取也不绑定(bind)服务器上的任何资源。它只是通过询问上游 DNS 解析器来预热本地 DNS 缓存,上游 DNS 解析器可能已经有记录或将解析查询,因此缓存中有条目,也可供其他客户端使用。

与此相反,HTTPS 的预取握手需要直接创建到目标服务器的 TCP 连接,进行 SSL 握手,然后等待客户端点击。这会占用客户端和服务器的资源,因此在一段时间不活动后,服务器将关闭连接以释放这些资源。因此在很多情况下,这只会浪费双方的资源,因为链接永远不会被点击,或者只有在服务器已经关闭空闲连接后才会被点击。

如果链接指向一个已经存在连接的站点,情况会有所不同,例如从某个站点加载页面时的同站点链接。今天的浏览器使用持久的 HTTP 连接,并会尝试将与站点的连接保持打开状态一段时间,以防需要发送更多请求。如果用户随后单击同站点链接,则可能会使用现有连接,该连接在之前的请求中仍处于打开状态。当然,这些连接也会占用服务器上的资源,因此服务器也会在空闲时间后关闭连接。

关于html - 是否有 SSL 握手的 dns 预取等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887652/

相关文章:

php - Laravel:邮件连接错误

javascript - 如何使用 Javascript 计算元素的 XPath 位置?

java - TLS 将证书放在哪里

html - 如何在主页菜单中突出显示事件页面?

Java SSL 套接字无法从客户端连接

php - 从另一个设置为仅接受来自本地主机的连接的 php 文件加载 PHP 文件中的解密 key 是否更安全?

asp.net - 你调用的对象是空的。在 Guid.Parse 上

performance - Visual Studio Web 性能测试

html - 使用 CSS 隐藏链接上的工具提示

Java 小程序不显示任何内容