2022年8月18日,Chrome开发团队博客发表文章《从Chrome中移除HTTP/2ServerPush》,表示Chrome106及以后版本将禁用HTTP/2ServerPush功能默认。为什么?会被删除吗?ServerPush允许网站主动推送页面需??要的资源,而不是被动等待。但实际上,这个特性很难达到性能的提升,所以用这个特性的人并不多。在使用HTTP/2的站点中,只有1.25%使用ServerPush。许多HTTP/3服务器和客户端没有实现Push功能,即使它在规范中有规定。对于许多已经使用HTTP/3的Web服务来说,PUSH实际上已经过时了。HTTP/2ServerPush的替代者103EarlyHints是一个不错的选择,它有很多和Push一样的优点。与服务器端推送资源不同,103EarlyHints只向浏览器发送可能立即请求的资源提示,并将所请求资源的控制权交给浏览器——例如,如果这些资源已经存在于HTTP缓存中,则不还有一个选项可以向服务器发起请求以预加载(Preload)关键资源。它允许页面和浏览器一起工作,以便在页面加载的早期优先加载关键资源。虽然这个解决方案需要先加载页面本身,但它不会延迟关键资源的加载。早期提示当今的网站变得越来越复杂,服务器可能需要执行一些重要的工作(例如连接到数据库)以生成请求的页面。但是这个服务器“思考时间”会在浏览器开始呈现页面之前造成延迟。当服务器准备响应时,连接实际上处于空闲状态(图中灰色部分是服务器的“思考时间”)EarlyHints是用于在最终响应之前发送预请求的HTTP状态码。在服务器忙于生成主要资源(html文档)的同时,允许服务器向浏览器发送提示当前页面可能使用的关键子资源(css、js)。浏览器可以根据这些提示在等待主要资源的同时进行预连接。请求子资源。简单地说,EarlyHints通过提前做一些工作来帮助浏览器利用上述服务器的“思考时间”来加快页面加载速度。PreloadPreload是一种新的Web标准,用于控制特定资源的加载方式。与
