class: center, middle # HTTP/2 Drew Kalina --- # Motivation and Goals Decrease latency to improve load times (specifically perceived user latency) 1. Use One TCP Connection 2. Multiplex requests and eliminate "Head of line blocking" 3. Minimize protocol overhead (compression) 4. Request prioritization and Server Push 5. Maintain semantics of HTTP/1.1 --- # In One Slide
Credit: Ilya Grigorik’s
presentation
: HTTP/2 is here, let’s optimize! Or, why (some) yesterday’s best-practices are today’s HTTP/2 anti-patterns. --- # One TCP Connection Connections are expensive * handshake latency * resource overhead --- # Multiplexing Multiple requests can be sent on the same TCP connection * Can be received out of order eliminating "head of line blocking". * Makes some performance strategies such as domain sharding and request inlining couterproductive. --- # Header Compression * Header size is greatly reduced * Some headers are fairly large. Cookies for example. --- # Request prioritization * Clients can specify which resources are more important * Servers don't have to honor it though --- # Server Push The server can send other assets based off a request BEFORE the client requests them. * Push other items for a web page (images, etc.) * Doesn't replace websockets but is complementary. --- # Questions?