代码之家  ›  专栏  ›  技术社区  ›  Simon Ludwig

同一域多次发生ssl协商

ssl
  •  0
  • Simon Ludwig  · 技术社区  · 7 年前

    我用webgetest做了一个快速测试。我的网站是ssl安全的。出于某种原因,ssl协商会发生两次。

    enter image description here

    索引html有一个ssl协商似乎是正确的。第二个请求是通过fetch完成的。我认为第二次ssl协商是不必要的。

    fetch("/api/menu")
    

    对于同一域的其余请求,不再进行协商。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Steffen Ullrich    7 年前

    首先有一个TCP连接 menu 然后是ssl设置。这意味着它不使用先前建立的TCP连接来建立新连接,而是创建一个新连接。这个新的当然也需要ssl。

    当使用http/1.1时,浏览器有多个打开到同一站点的连接是很正常的,因为在一个连接中一次只能处理一个请求(这与http/2不同)。因为在您的情况下,第一个连接仍在用于其他请求,所以创建新连接可能会加快总传递时间。

    还可以看到,第二个ssl设置所需的时间比第一个少。这可能是因为它正在执行会话恢复,即使用与第一个连接中建立的ssl会话相同的ssl会话,从而加快tls握手。