Closed johncming closed 6 years ago
在协议级别,HTTP / 2服务器推送由PUSH_PROMISE 帧驱动。A PUSH_PROMISE描述服务器预测浏览器将在不久的将来发出的请求。一旦浏览器收到PUSH_PROMISE,它就知道服务器将提供资源。如果浏览器稍后发现它需要此资源,它将等待推送完成而不是发送新请求。这减少了浏览器在网络上等待的时间。
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if pusher, ok := w.(http.Pusher); ok {
// Push is supported.
if err := pusher.Push("/app.js", nil); err != nil {
log.Printf("Failed to push: %v", err)
}
}
// ...
})
ref
充分利用网络资源