现有连接上的 HTTP2 DNS 查找

Posted

技术标签:

【中文标题】现有连接上的 HTTP2 DNS 查找【英文标题】:HTTP2 DNS lookup on existing connection 【发布时间】:2019-10-02 17:06:47 【问题描述】:

我有一个来自 node.js api 文档的代码示例:

const http2 = require('http2');
const fs = require('fs');

const client = http2.connect('https://localhost:8443', 
  ca: fs.readFileSync('localhost-cert.pem')
);

client.on('error', (err) => console.error(err));

建立连接后,我想知道它是否会通过现有连接对每个下一个请求进行 DNS 查找。

【问题讨论】:

【参考方案1】:

通过现有的连接,无需再次查找 DNS。这只发生在连接开始时。重用连接时与 HTTP/1.1 下的方式相同。

但是,正如在 HTTP/1.1 下一样,不能保证连接会保持打开状态,并且可以随时由客户端、服务器或仅因两者之间的网络故障而关闭。因此,如果您的代码在这种情况下自动重新连接,那么它可能会进行另一次 DNS 查找。

【讨论】:

以上是关于现有连接上的 HTTP2 DNS 查找的主要内容,如果未能解决你的问题,请参考以下文章

离线时 dns 查找不起作用

SRV 查找请求不返回 IP 地址

http2学习

DNS服务的配置与管理---配置正向查找区域

了解 DNS 查找机制

http2多路复用