使用纯 HTTP,无 cookie 域是一种优化,可避免为页面资源发送不必要的 cookie 标头。
但是,SPDY 协议会压缩 HTTP 标头,并且在某些情况下会消除不必要的标头。那么我的问题是,SPDY 是否使无 cookie 域无关紧要?
此外,是否应该将页面源及其所有资源托管在同一域中以优化 SPDY 实现?
使用纯 HTTP,无 cookie 域是一种优化,可避免为页面资源发送不必要的 cookie 标头。
但是,SPDY 协议会压缩 HTTP 标头,并且在某些情况下会消除不必要的标头。那么我的问题是,SPDY 是否使无 cookie 域无关紧要?
此外,是否应该将页面源及其所有资源托管在同一域中以优化 SPDY 实现?
SPDY 是否使无 cookie 域无关紧要?
有点,主要是……但不完全是。
首先,使用“无cookie域”至少有两个很好的理由:一是避免额外的标头并减小请求的大小,二是避免泄露任何有关用户的私人或安全信息。每个都是有效的,彼此独立。因此,显然仍然有理由在 HTTP 2.0 下拥有一个“无 cookie 域”以确保安全和隐私。
此外,压缩也不是灵丹妙药。建立压缩/解压缩上下文不是免费的,并且根据使用的压缩方案、分配的缓冲区大小等,大 cookie 可能会完全破坏压缩器的性能。在 spdy/v3 之前,使用了 gzip 压缩器(滑动窗口),并且给定足够大的 cookie,您将对压缩器的性能产生负面影响(程度因浏览器而异,基于实现)。在 spdy/v4 中,gzip 压缩器已经过时,并且正在从头开始实施一种全新的算法——由于 v4 还没有出现,现在推测性能细节还为时过早。话虽如此,在大多数情况下,你应该没问题。我只是强调边缘情况。
此外,是否应该将页面源及其所有资源托管在同一域中以优化 SPDY 实现?
是的,在可能的范围内——这会给你最好的表现。这里也有一些警告:原始服务器的高数据包丢失,或者没有窗口缩放的高 BDP 产品。但是很有可能,如果您使用的是具有良好连接性的合理托管服务提供商,那么这些都不是问题。