HTTP/2 Server Push: Difference between revisions

Content deleted Content added
m grammar fluency
Sblaplace (talk | contribs)
Add links for server and client
Line 6:
}}
 
'''HTTP/2 Server Push''' is an optional<ref>{{Cite journal |date=May 2015 |title=Hypertext Transfer Protocol Version 2 (HTTP/2) |doi=10.17487/RFC7540 |url=https://www.rfc-editor.org/rfc/rfc7540 |quote=A client can request that server push be disabled|last1=Belshe |first1=M. |last2=Peon |first2=R. |last3=Thomson |first3=M. |editor-first1=M |editor-last1=Thomson |doi-access=free }}</ref> feature of the [[HTTP/2]] and [[HTTP/3]] [[Communication protocol|network protocols]] that allows [[Server-side|servers]] to send resources to a [[Client–server model|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.<ref>{{Cite web |last=Staff |first=Ars |date=2015-02-18 |title=HTTP/2 finished, coming to browsers within weeks |url=https://arstechnica.com/information-technology/2015/02/http2-finished-coming-to-browsers-within-weeks/ |access-date=2023-01-12 |website=Ars Technica |language=en-us}}</ref> 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.<ref name=":0">{{Cite web |date=2020-11-11 |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?pli=1 |url-status=live |archive-url=https://web.archive.org/web/20211128080039/https://groups.google.com/a/chromium.org/g/blink-dev/c/K3rYLvmQUBY/m/vOWBKZGoAQAJ?pli=1 |archive-date=2021-11-28 |access-date=2022-04-12 |website=[[Google Groups]] |language=en}}</ref>
 
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.<ref>{{Cite web |title=HTTP/2 server configurations |url=https://http2.co/http2-with-apache/ |url-status=live |archive-url=https://web.archive.org/web/20220327085843/https://http2.co/http2-with-apache/ |archive-date=2022-03-27 |access-date=2019-03-30 |website=HTTP/2 Space |language=en-US}}</ref><ref>{{cite IETF |title=Hypertext Transfer Protocol Version 2 (HTTP/2) |rfc=7540 |section=8.2 |sectionname=Server Push |page=60 |date=May 2015 |publisher=[[Internet Engineering Task Force]] |access-date=2015-05-06 |language=en-US |archive-url=https://web.archive.org/web/20220404104429/https://datatracker.ietf.org/doc/html/rfc7540 |archive-date=2022-04-04 |url-status=live}}</ref>