从我所读到的(包括一篇杂乱无章的mag文章和一篇Akamai文章)来看,实现HTTP2服务器推送的方法是向我的网站上的页面添加一两个标题。例如:
Link: </css/styles.css>; rel=preload; as=style
Link: </js/common.js>; rel=preload; as=script这个准确吗?真的那么容易吗?
发布于 2017-09-30 08:34:25
这完全取决于您正在运行的web服务器以及它如何实现HTTP/2 Push (如果有的话)。
例如,使用Link对Apache有效。Nginx目前不支持服务器推送。一些CDN也用Link实现了它。
然而,即使它是那么容易启用,您可能不应该没有进一步的思考。问题是,虽然这可能会加快第一次加载,而且您的JavaScript和CSS随后将被缓存(您正在缓存您的资源客户端,不是吗?如果不是,那么,在正确掌握基本知识之前,甚至不要考虑HTTP/2这样的高级主题)。所以,如果你在它已经缓存的时候推它,那就是浪费。现在,浏览器可以停止推送,如果它不需要该资源,因为在本例中它已经有了它,但这仍然需要时间和精力,对于小型资源(如CSS或JavaScript),它很可能在停止时已经下载了很多。
因此,只有当客户很有可能需要资源时,您才应该进行推送。缓存摘要将是客户端告诉服务器它缓存了哪些资源的一种方式,因此可以帮助服务器决定是否推送,但是它仍然是一项正在进行的工作,如果任何浏览器支持它的话,它是不会消失的。同时,我在Apache中实现了一个简单的基于cookie的实现,您可能会对此感兴趣:https://www.tunetheweb.com/performance/http2/http2-push/。
https://stackoverflow.com/questions/46496378
复制相似问题