HTTP/2 for the Web developer
summary
HTTP/2 reduces latency by using a single TCP connection with multiplexed streams, HPACK header compression and mandatory TLS1.2 in most browsers, demonstrated with Spring Boot + Jetty/Undertow and curl/nghttp2 clients. Practical hurdles include ALPN bootclasspath hack on JDK7/8 (Jetty ALPN jar), certificate distribution, and needing Wireshark keylog or Chrome net internals to inspect frames. Stream prioritization matters far more than blind server push; naive pushing wastes bandwidth and causes race conditions. Browser support ≈60%, ~25% of traffic is HTTP/2.
AI-written summary · about
chapters (40)
- 0:00Intro
- 1:28Too Long; Didn't Attend
- 4:48HTTP 1.1 issues - Head of line blocking
- 6:01HTTP 1.1 Workarounds
- 6:48HTTP usage: reality check
- 8:05Improving page load time
- 9:31Domain sharding
- 10:29Concatenation
- 11:45Sprites
- 12:30Protocol basics 1/6
- 16:55Protocol basics 4/6
- 18:05Header table
- 19:39Static + dynamic tables
- 20:48Protocol basics 6/6
- 22:04Security concerns...
- 31:17With undertow!
- 32:26SSL Keylog file content
- 32:52SSL Keylog file in Wireshark
- 33:22Server implementations (native)
- 34:57On the JVM
- 35:25Application Layer Protocol Negotiation
- 36:46ALPN and JDK support
- 37:50ALPN support with JDK7 and JDK8
- 39:42Servlet 4.0
- 41:10Reactive Streams
- 41:36Flow Control
- 43:10Differentiating features
- 44:46HTTP/2 browser support (market share)
- 45:16HTTP/2 responses in global traffic (Firefox 40)
- 46:57Step 1: Improve TCP support on servers
- 48:48Step 2: Enforce HTTP 1.1 best practices
- 49:20Assess your infrastructure
- 50:18Secure your application with TLS
- 51:31Undo HTTP1.1 workarounds?
- 52:37Update your development toolset
- 55:29HTTP/2 Server Push
- 55:58Push_Promise: already cached!
- 56:52Push_Promise: order of frames
- 58:18Server push; code example
- 58:57Jetty PushCacheFilter








