Good coverage on topics and very well explained.
The Hypertext Transfer Protocol, or HTTP, defines how data travels on the web, including the billions of web page requests happening each day. HTTP/2 is the most significant upgrade to the protocol in 20 years. The new standard is more efficient, which means faster, safer web traffic. HTTP/2 in Action introduces HTTP/2 and teaches you everything you need to use it effectively!
Part 1: Moving to HTTP/2
1. Web Technologies and HTTP
1.1. How the web works
1.1.1. The Internet versus the World Wide Web
1.1.2. What happens when you browse the web?
1.2. What is HTTP?
1.2.1. Introduction to HTTP
1.2.2. Basic HTTP Request Syntax
1.3. The Syntax and History of HTTP
1.4. Introduction to HTTPS
1.4.1. HTTPS and HTTP
1.5. Tools for viewing, sending and receiving HTTP messages
1.5.1. Using Developer tools in Web Browsers
1.5.2. Using Browsers to Send HTTP Requests
1.5.3. Other tools for view HTTP Requests
2. Road to HTTP/2
2.1. HTTP/1.1 and the current World Wide Web
2.1.1. HTTP/1.1 has a fundamental performance problem.
2.1.2. Pipelining for HTTP/1.1
2.1.3. Waterfall Diagrams for Web Performance Measurement
2.2. Workarounds for HTTP/1.1 Performance issues
2.2.1. Use Multiple HTTP Connections
2.2.2. Make Fewer Requests
2.2.3. HTTP/1 Performance Optimizations Summary
2.3. Other issues with HTTP/1.1
2.4. Real World Examples
2.4.1. Example Website 1 - Amazon.com
2.4.2. Example Website 2 - Imgur.com
2.4.3. How much of a problem is this really?
2.5. Moving on from HTTP/1.1 to HTTP/2
2.6. What HTTP/2 means for Web Performance
2.6.1. Extreme Example of the Power of HTTP/2
2.6.2. Setting Expectations of HTTP/2 Performance Gains
2.6.3. Performance Workarounds for HTTP/1.1 are Becoming Anti-Patterns.
3. Upgrading to HTTP/2
3.1. HTTP/2 Support
3.1.1. HTTP/2 Support on Browser Side.
3.1.2. HTTP/2 Support for Servers
3.1.3. Fallback when HTTP/2 is not supported
3.2. How to enable HTTP/2 for your website
3.2.1. HTTP/2 on your Web Server
3.2.2. HTTP/2 with a Reverse Proxy
3.2.3. HTTP/2 through a CDN
3.2.4. Implementing HTTP/2 Summary
3.3. Troubleshooting HTTP/2 setup
Part 2: Using HTTP/2
4. HTTP/2 Protocol Basics
4.1. Why HTTP/2 instead of HTTP/1.2?
4.1.1. Binary rather than textual
4.1.2. Multiplexed, rather than synchronous
4.1.3. Stream Prioritization and Flow Control
4.1.4. Header Compression
4.1.5. Server Push
4.1.6. HTTP/2.0 or HTTP/2?
4.2. How a HTTP/2 Connection is Established
4.2.1. Using HTTPS Negotiation
4.2.2. Using the HTTP Upgrade header
4.2.3. Using prior knowledge
4.2.4. The HTTP/2 Preface Message
4.3. HTTP/2 Frames
4.3.1. Viewing HTTP/2 frames.
4.3.2. HTTP/2 Frame Format
4.3.3. Examining HTTP/2 Message Flow by Example
4.3.4. Other Frames
5. Implementing HTTP/2 Push
5.1. What is HTTP/2 Server Push?
5.2. How to Push
5.2.1. Using HTTP Link Header to Push
5.2.2. Viewing HTTP/2 Pushes
5.2.3. Pushing from downstream systems using Link header
5.2.4. Pushing earlier
5.2.5. Other ways to Push
5.3. How HTTP/2 Push works in the browser
5.3.1. More details on how the Push Cache works
5.3.2. Refusing Pushes with RST_STREAM
5.4. How to Push Conditionally
5.4.1. Tracking pushes on the server side
5.4.2. Use of HTTP Conditional Requests
5.4.3. Cookie-based pushes
5.4.4. Cache Digests
5.5. What to Push?
5.5.1. What can you Push?
5.5.2. What should you Push?
5.5.3. Automating Push
5.6. The Performance Impact of HTTP/2 Push
5.7. Troubleshooting HTTP/2 Push
5.8. Push versus Preload
5.9. Other use cases for HTTP/2 Push
6. Optimizing for HTTP/2
6.1. What HTTP/2 means for Web Developers
6.2. Are some HTTP/1.1 optimizations now anti-patterns?
6.2.1. HTTP/2 requests still have a cost
6.2.2. HTTP/2 is not limitless
6.2.3. Compression is more efficient for larger resources
6.2.4. Bandwidth limitations and resource contention.
6.2.7. Conclusion on whether some HTTP/1.1 optimizations are anti-patterns.
6.3. Web Performance Techniques still relevant under HTTP/2
6.3.1. Minimizing the amount of Data Transferred
6.3.2. Use Caching to prevent resending data
6.3.3. Service Workers can further reduce load on the Network
6.3.4. Don’t send what you don’t need
6.3.5. HTTP Resource Hints
6.3.6. Reduce last mile latency
6.3.7. Optimize HTTPS
6.3.8. Non-HTTP related Web Performance Techniques
6.4. Optimizing for both HTTP/1.1 and HTTP/2
6.4.1. Measuring HTTP/2 traffic
6.4.2. Detecting HTTP/2 support on the server side
6.4.3. Detecting HTTP/2 Support on the client side
6.4.4. Connection Coalescing
6.4.5. How long to optimize for HTTP/1.1 users?
Part 3: Advanced HTTP/2
7. Advanced HTTP/2 concepts
8. TCP and QUIC
Part 4: What next for HTTP?
9. The future of HTTP
Appendix A: Upgrading common web servers to HTTP/2
A.1. Upgrading your web server to support HTTP/2
A.1.3. Microsoft Internet Information Services (IIS)
A.1.4. Other Servers
A.2. Setting up HTTP/2 via a Reverse Proxy Server
About the Technology
The Hypertext Transfer Protocol—HTTP—defines how data travels on the web and allows websites and browsers to send instructions, and hints to each other. It's the foundation of how we interact with the world wide web, and after 20 years it's finally gotten a major upgrade. HTTP/2 introduces request multiplexing and request prioritization, which allows the web to to handle the ever increasing traffic that makes up modern websites better and header compression, which reduces the overall volume of data in transit with each web request. The new protocol also offers better support for modern techniques not anticipated by the original standard, such as server push.
About the book
HTTP/2 in Action is a complete guide to HTTP/2, one of the core protocols of the web. Because HTTP/2 has been designed to be easy to transition to, including keeping it backwards compatible, so adoption is already rapid and only expected to increase over the next few years. Concentrating on practical matters, this interesting book presents key HTTP/2 concepts such as frames, streams, and multiplexing and explores how they affect the performance and behavior of your web sites. You'll learn what you need to change and how to deal with a web-in-transition as more sites begin to use the new protocol. With the ready-to-implement tips and best practices on everything from server push to debugging, this book is sure to get you—and your websites—up to speed with HTTP/2!
- Upgrading to HTTP/2
- Understanding the HTTP/2 protocol - frames, streams and multiplexing
- HTTP/2 Server Push - what it is, who you can use it and if you should
- What HTTP/2 means for Web Developers
- QUIC and HTTP/2
A fantastic overview of HTTP/2, giving a solid foundation for those who are less familiar with it, and builds up from there.
The detail and well thought explanations were great.