HTTP/2 Server Push: Difference between revisions

Content deleted Content added
Sblaplace (talk | contribs)
Add links for server and client
TimR22 (talk | contribs)
m I corrected minor errors
Line 17:
In November 2020, [[Google]] announced its intent to remove Server Push from Google Chrome implementation of HTTP/2 and [[QUIC|gQUIC]] (which later evolved into HTTP/3).<ref>{{Cite web |last=Lassey |first=Brad |date=2020-11-12 |title=Intent to Remove: HTTP/2 and gQUIC server push |url=https://groups.google.com/a/chromium.org/g/blink-dev/c/K3rYLvmQUBY/m/vOWBKZGoAQAJ |access-date=2023-11-20 |website=Blink mailing list}}</ref>
 
In October 2022, Google announced their intent to remove Server Push from Google Chrome, citing the poor performance of the extension in practice, lack of use and better alternatives. Chrome 106 became the first release disabling Server Push by default.<ref name=":2">{{Cite web |date=2022-08-18 |title=Removing HTTP/2 Server Push from Chrome |url=https://developer.chrome.com/blog/removing-push/ |access-date=2023-07-30 |website=Chrome Developers |language=en}}</ref>
 
== Protocol ==
 
Unlike [[HTTP|HTTP/1.1]], HTTP/2 can multiplex multiple streams on one TCP connection. Server Push allows the server to open new streams by sending PUSH_PROMISE frames, in order to send the client resources it expects will be needed. A PUSH_PROMISE frame is similar to a GET request, but sent by the server. A client may choose to reject the push by sending an RST_STREAM frame, for example, if it already has the resource cached; if it does not, it will store the pushed data in a cache associated with the connection which will be consulted before a request is sent down that connection. Clients can also request that servers not send server pushes using a SETTINGS frame. The specification itself does not specify how servers choose what to push: a webserverweb server might send pushes to clients only on their first visit, to avoid redundantly sending cached resources.<ref>{{Cite web |date=2022-03-17 |title=HTTP/1.1 vs HTTP/2: What's the Difference? |url=https://www.digitalocean.com/community/tutorials/http-1-1-vs-http-2-what-s-the-difference |access-date=2023-11-20 |website=DigitalOcean |language=en}}</ref><ref>{{Cite web |date=2018-02-20 |title=Introducing HTTP/2 Server Push with NGINX 1.13.9 |url=https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/ |access-date=2023-11-20 |website=Nginx |language=en}}</ref><ref>{{Cite web |date=2016-04-28 |title=Announcing Support for HTTP/2 Server Push |url=https://blog.cloudflare.com/announcing-support-for-http-2-server-push-2/ |access-date=2023-11-20}}</ref>
 
== Implementations ==