我们从几个子域/第三方加载数据。这会导致每个域大约100毫秒的SSL握手。我想知道是否有一种方式“预取-握手”类似于dns预取的工作方式。dns预取已经完成了吗?
发布于 2017-08-25 19:10:41
我怀疑是否有预取握手,我怀疑这是否有意义。对页面中的链接进行DNS预取,以便当用户决定单击链接时浏览器已经知道目标主机的IP地址。这可能是在加载页面之后,几分钟后,几个小时后,或者永远不会。DNS预取也不绑定服务器上的任何资源。它只是通过请求上游DNS解析器来预热本地DNS缓存,该解析器可能已经有记录,或者将解析查询,因此缓存中的条目也可供其他客户端使用。
与此相反,HTTPS的预取握手需要直接创建到目标服务器的TCP连接,执行SSL握手,然后等待客户端单击。这会将客户端和服务器上的资源绑定起来,因此在不活动一段时间后,服务器将关闭连接以释放这些资源。因此,在许多情况下,这只会浪费双方的资源,因为链接永远不会被单击,或者只有在服务器已经关闭空闲连接之后才会单击。
如果链接指向已经存在连接的站点,则情况会有所不同,就像从某个站点加载页面时的相同站点链接一样。今天,浏览器使用持久HTTP连接,并将尝试将连接保留一段时间,以防需要发送更多请求。如果用户然后单击相同的站点链接,可能会使用现有的连接,该连接仍然是从以前的请求中打开的。当然,这些连接也会将服务器上的资源捆绑在一起,这样服务器也会在空闲时间后关闭连接。
https://stackoverflow.com/questions/45887652
复制相似问题