http2的小示例
控制台npm start起服务
通过修改src文件夹下面的index.js部分开启http2/http服务
Http2 服务访问https://localhost:3000 (虽然http2协议本身不要求https,但几大浏览器厂商都默认http2只支持https)
Http 服务访问http://localhost:3000
bundle1和bundle2由document解析完服务器发起的请求
在请求很多个图片时,创建了多个Tcp请求
http2主动推送静态资源存在的问题:
有server端的工程师手动的添加每一个页面依赖的静态资源是十分困难和难以维护的。
浏览器本身会对静态资源做缓存处理。在http浏览器主动发起请求的环境下,浏览器发现有一张图片我可以直接使用缓存,会直接使用缓存而不是再发起一个请求图片的http。而在http2服务器端主动推送的环境下,服务器是一定会把这张图片通过http2推动给浏览器的,即使浏览器拥有这张图片的缓存。这样会造成网络的浪费。
解决的办法:h2-auto-push