Nodejs - "Sending https request to the same domain multiple times"每次都无法获取 SSL 证书



我正在尝试获取URL的SSL详细信息,并且在请求多个唯一主机时有效。

然而,当请求同一主机时,由于某种原因,只有第一个请求的证书返回,而没有返回其他证书。

感觉就像有一个缓存/会话保持SSL握手并且不执行。

下面是复制它的代码:

var request       = require('request')
var r = request({
  url: 'https://google.com/',
  method: 'HEAD',
  gzip: true,
  followRedirect: false,
    followAllRedirects: false
});
r.on('response', function(res) {
  certDetails = (res.req.connection.getPeerCertificate())
  console.log('*********1st Request**********');
  console.log(certDetails);
})

setTimeout (function() {
  var r = request({
    url: 'https://google.com/',
    method: 'HEAD',
    gzip: true,
    followRedirect: false,
    followAllRedirects: false
  });
  r.on('response', function(res) {
    certDetails = (res.req.connection.getPeerCertificate()) // works
    console.log('*********2nd Request**********');
    console.log(certDetails);
  })
}, 5000)

第二个请求在 5 秒后发送到同一主机,并且无法获取证书详细信息。

但是,如果我们将第一个主机保留为 google.com,将第二个主机保留为 yahoo.com,则两者都会被检索(因为它们是唯一的并且可能没有缓存(。

好的,找到了答案。

请求可以通过以下方式发送:

agent: new Agent({
   maxCachedSessions: 0
}),

这样它们就不会被缓存。

相关内容

  • 没有找到相关文章

最新更新