fbpx
Wikipedia

HTTP/2 Server Push

HTTP/2 Server Push is an optional[1] feature of the HTTP/2 and HTTP/3 network protocols that allows servers to send resources to a client before the client requests them. Server Push is a performance technique aimed at reducing latency by sending resources to a client preemptively before it knows they will be needed.[2] In practice, Server Push frequently results in wasted bandwidth because the server rarely knows which resources are already loaded by the client and transmits the same resource multiple times, resulting in slowdowns if the resources being pushed compete for bandwidth with resources that were requested.[3]

HTTP/2 Server Push is not a notification mechanism from server to client. Instead, pushed resources are used by the client when it may have otherwise produced a request to get the resource anyway.[4][5]

History edit

On May 14, 2015, HTTP/2 was standardized by RFC 7540, ratified as a Proposed Standard. The document includes section 8.2 entitled "Server Push" which introduced the concept to the protocol as an optional extension. Google Chrome 40 became the first browser supporting the final standardized HTTP/2 version, including the optional Server Push.[6]

In February 2018, Nginx 1.13.9 was released with optional support for HTTP/2 Server Push.[7]

In November 2020, Google announced its intent to remove Server Push from Google Chrome implementation of HTTP/2 and gQUIC (which later evolved into HTTP/3).[8]

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.[9]

Protocol edit

Unlike 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 webserver might send pushes to clients only on their first visit, to avoid redundantly sending cached resources.[10][11][12]

Implementations edit

Software First supporting version Last supporting version
Nginx Server 1.13.9 (February 2018)[7] 1.25.1 (June 2023)[13]
LiteSpeed Server 5.2 Still supported, but deprecated[14][better source needed]
Google Chrome Client 40 (May 2015) 106 (September 2022)[3][9][15]
Firefox Client ? Still supported[citation needed]

References edit

  1. ^ Belshe, M.; Peon, R.; Thomson, M. (May 2015). Thomson, M (ed.). "Hypertext Transfer Protocol Version 2 (HTTP/2)". doi:10.17487/RFC7540. A client can request that server push be disabled {{cite journal}}: Cite journal requires |journal= (help)
  2. ^ Staff, Ars (2015-02-18). "HTTP/2 finished, coming to browsers within weeks". Ars Technica. Retrieved 2023-01-12.
  3. ^ a b "Intent to Remove: HTTP/2 and gQUIC server push". Google Groups. 2020-11-11. from the original on 2021-11-28. Retrieved 2022-04-12.
  4. ^ "HTTP/2 server configurations". HTTP/2 Space. from the original on 2022-03-27. Retrieved 2019-03-30.
  5. ^ "Server Push". Hypertext Transfer Protocol Version 2 (HTTP/2). Internet Engineering Task Force. May 2015. p. 60. sec. 8.2. doi:10.17487/RFC7540. RFC 7540. from the original on 2022-04-04. Retrieved 2015-05-06.
  6. ^ "Google announces SPDY's coming demise as HTTP/2 approaches". Ars Technica. 2015-02-10. Retrieved 2023-07-30.
  7. ^ a b "Changes with nginx 1.14.2". Nginx. 2018-12-04. from the original on 2022-04-07.
  8. ^ Lassey, Brad (2020-11-12). "Intent to Remove: HTTP/2 and gQUIC server push". Blink mailing list. Retrieved 2023-11-20.
  9. ^ a b "Removing HTTP/2 Server Push from Chrome". Chrome Developers. 2022-08-18. Retrieved 2023-07-30.
  10. ^ "HTTP/1.1 vs HTTP/2: What's the Difference?". DigitalOcean. 2022-03-17. Retrieved 2023-11-20.
  11. ^ "Introducing HTTP/2 Server Push with NGINX 1.13.9". Nginx. 2018-02-20. Retrieved 2023-11-20.
  12. ^ "Announcing Support for HTTP/2 Server Push". 2016-04-28. Retrieved 2023-11-20.
  13. ^ "Changes with nginx 1.25.1". Nginx. 2023-06-13. Retrieved 2023-07-12.
  14. ^ "Page Optimization". LiteSpeed Documentation. Retrieved 2023-07-21.
  15. ^ "Remove HTTP/2 push". chromestatus.com. 2022-10-31. Retrieved 2023-07-12.

http, server, push, this, article, multiple, issues, please, help, improve, discuss, these, issues, talk, page, learn, when, remove, these, template, messages, this, article, needs, additional, citations, verification, please, help, improve, this, article, add. This article has multiple issues Please help improve it or discuss these issues on the talk page Learn how and when to remove these template messages This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources HTTP 2 Server Push news newspapers books scholar JSTOR May 2016 Learn how and when to remove this message This article s tone or style may not reflect the encyclopedic tone used on Wikipedia See Wikipedia s guide to writing better articles for suggestions September 2017 Learn how and when to remove this message Learn how and when to remove this message HTTP 2 Server Push is an optional 1 feature of the HTTP 2 and HTTP 3 network protocols that allows servers to send resources to a client before the client requests them Server Push is a performance technique aimed at reducing latency by sending resources to a client preemptively before it knows they will be needed 2 In practice Server Push frequently results in wasted bandwidth because the server rarely knows which resources are already loaded by the client and transmits the same resource multiple times resulting in slowdowns if the resources being pushed compete for bandwidth with resources that were requested 3 HTTP 2 Server Push is not a notification mechanism from server to client Instead pushed resources are used by the client when it may have otherwise produced a request to get the resource anyway 4 5 Contents 1 History 2 Protocol 3 Implementations 4 ReferencesHistory editOn May 14 2015 HTTP 2 was standardized by RFC 7540 ratified as a Proposed Standard The document includes section 8 2 entitled Server Push which introduced the concept to the protocol as an optional extension Google Chrome 40 became the first browser supporting the final standardized HTTP 2 version including the optional Server Push 6 In February 2018 Nginx 1 13 9 was released with optional support for HTTP 2 Server Push 7 In November 2020 Google announced its intent to remove Server Push from Google Chrome implementation of HTTP 2 and gQUIC which later evolved into HTTP 3 8 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 9 Protocol editUnlike 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 webserver might send pushes to clients only on their first visit to avoid redundantly sending cached resources 10 11 12 Implementations editSoftware First supporting version Last supporting version Nginx Server 1 13 9 February 2018 7 1 25 1 June 2023 13 LiteSpeed Server 5 2 Still supported but deprecated 14 better source needed Google Chrome Client 40 May 2015 106 September 2022 3 9 15 Firefox Client Still supported citation needed References edit Belshe M Peon R Thomson M May 2015 Thomson M ed Hypertext Transfer Protocol Version 2 HTTP 2 doi 10 17487 RFC7540 A client can request that server push be disabled a href Template Cite journal html title Template Cite journal cite journal a Cite journal requires journal help Staff Ars 2015 02 18 HTTP 2 finished coming to browsers within weeks Ars Technica Retrieved 2023 01 12 a b Intent to Remove HTTP 2 and gQUIC server push Google Groups 2020 11 11 Archived from the original on 2021 11 28 Retrieved 2022 04 12 HTTP 2 server configurations HTTP 2 Space Archived from the original on 2022 03 27 Retrieved 2019 03 30 Server Push Hypertext Transfer Protocol Version 2 HTTP 2 Internet Engineering Task Force May 2015 p 60 sec 8 2 doi 10 17487 RFC7540 RFC 7540 Archived from the original on 2022 04 04 Retrieved 2015 05 06 Google announces SPDY s coming demise as HTTP 2 approaches Ars Technica 2015 02 10 Retrieved 2023 07 30 a b Changes with nginx 1 14 2 Nginx 2018 12 04 Archived from the original on 2022 04 07 Lassey Brad 2020 11 12 Intent to Remove HTTP 2 and gQUIC server push Blink mailing list Retrieved 2023 11 20 a b Removing HTTP 2 Server Push from Chrome Chrome Developers 2022 08 18 Retrieved 2023 07 30 HTTP 1 1 vs HTTP 2 What s the Difference DigitalOcean 2022 03 17 Retrieved 2023 11 20 Introducing HTTP 2 Server Push with NGINX 1 13 9 Nginx 2018 02 20 Retrieved 2023 11 20 Announcing Support for HTTP 2 Server Push 2016 04 28 Retrieved 2023 11 20 Changes with nginx 1 25 1 Nginx 2023 06 13 Retrieved 2023 07 12 Page Optimization LiteSpeed Documentation Retrieved 2023 07 21 Remove HTTP 2 push chromestatus com 2022 10 31 Retrieved 2023 07 12 Retrieved from https en wikipedia org w index php title HTTP 2 Server Push amp oldid 1211297537, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.