根据我所阅读的内容(包括Smashing mag文章和Akamai文章),实施HTTP2服务器推送只需在我的网站上添加一个或两个页眉。例如:
Link: </css/styles.css>; rel=preload; as=style
Link: </js/common.js>; rel=preload; as=script
这准确吗?真的那么容易吗?
答案 0 :(得分:1)
这完全取决于您正在运行的Web服务器以及它如何实现HTTP / 2推送(如果它确实存在)。
使用Link Headers适用于Apache。 Nginx目前不支持服务器推送。一些CDN也使用链接头实现它。
然而,即使它很容易启用,你也许不应该进一步思考。问题是,虽然这可能会加快第一次加载,然后你的JavaScript和CSS将被缓存(你正在缓存你的资源客户端不是吗?如果没有,那么甚至不要看看高级主题,如HTTP / 2,直到你掌握正确的基础知识)。因此,如果你在已经缓存的情况下推动它就会浪费。现在浏览器可以停止推送,如果它不需要该资源,因为它已经像这个例子那样拥有它,但是这仍然需要时间和精力,对于小资源(如CSS或JavaScript),它可能会有在你停止它的时候已经下载了很多。
因此,只有在客户需要资源的机会很大时才应该推送。 Cache-Digests将是客户端告诉服务器它已缓存了哪些资源的一种方式,因此帮助服务器决定是否推送,但是它仍然是正在进行的工作而不是任何支持它的浏览器。与此同时,我在Apache中完成了一个基于cookie的简单实现,您可能对此感兴趣:https://www.tunetheweb.com/performance/http2/http2-push/