High Performance Browser Networking

High Performance Browser Networking

High Performance
Browser Networking
Performance is a feature. This book provides a hands-on overview of what every web developer needs to know about the various types of networks (WiFi, 3G/4G), transport protocols (UDP, TCP, and TLS), application protocols (HTTP/1.1, HTTP/2), and APIs available in the browser (XHR, WebSocket, WebRTC, and more) to deliver the best—fast, reliable, and resilient—user experience.

★★★★½ (263): GoodReadsAmazonO’Reilly

This book is required reading for anyone who cares about web performance; it’s already established as the go-to reference on the topic.

—Mark Nottingham (IETF HTTPBis Chair)
§Table of Contents
Networking 101
Primer on Latency and Bandwidth
Speed Is a Feature
The Many Components of Latency
Speed of Light and Propagation Latency
Last-Mile Latency
Bandwidth in Core Networks
Bandwidth at the Network Edge
Delivering Higher Bandwidth and Lower Latencies
Building Blocks of TCP
Three-Way Handshake
Congestion Avoidance and Control
Bandwidth-Delay Product
Head-of-Line Blocking
Optimizing for TCP
Building Blocks of UDP
Null Protocol Services
UDP and Network Address Translators
Optimizing for UDP
Transport Layer Security (TLS)
Encryption, Authentication, and Integrity
HTTPS Everywhere
TLS Handshake
TLS Session Resumption
Chain of Trust and Certificate Authorities
Certificate Revocation
TLS Record Protocol
Optimizing for TLS
Testing and Verification
Performance of Wireless Networks
Introduction to Wireless Networks
Ubiquitous Connectivity
Types of Wireless Networks
Performance Fundamentals of Wireless Networks
Measuring Real-World Wireless Performance
From Ethernet to a Wireless LAN
WiFi Standards and Features
Measuring and Optimizing WiFi Performance
Optimizing for WiFi Networks
Mobile Networks
Brief History of the G’s
Device Features and Capabilities
Radio Resource Controller (RRC)
End-to-End Carrier Architecture
Packet Flow in a Mobile Network
Heterogeneous Networks (HetNets)
Real-World 3G, 4G, and WiFi Performance
Optimizing for Mobile Networks
Preserve Battery Power
Eliminate Periodic and Inefficient Data Transfers
Anticipate Network Latency Overhead
Design for Variable Network Interface Availability
Burst Your Data and Return to Idle
Offload to WiFi Networks
Apply Protocol and Application Best Practices
Brief History of HTTP
HTTP 0.9: The One-Line Protocol
HTTP/1.0: Rapid Growth and Informational RFC
HTTP/1.1: Internet Standard
HTTP/2: Improving Transport Performance
Primer on Web Performance
Hypertext, Web Pages, and Web Applications
Anatomy of a Modern Web Application
Performance Pillars: Computing, Rendering, Networking
Synthetic and Real-User Performance Measurement
Browser Optimization
Benefits of Keepalive Connections
HTTP Pipelining
Using Multiple TCP Connections
Domain Sharding
Measuring and Controlling Protocol Overhead
Concatenation and Spriting
Resource Inlining
Brief History of SPDY and HTTP/2
Design and Technical Goals
Binary Framing Layer
Streams, Messages, and Frames
Request and Response Multiplexing
Stream Prioritization
One Connection Per Origin
Flow Control
Server Push
Header Compression
Upgrading to HTTP/2
Brief Introduction to Binary Framing
Optimizing Application Delivery
Optimizing Physical and Transport Layers
Evergreen Performance Best Practices
Optimizing for HTTP/1.x
Optimizing for HTTP/2
Browser APIs and Protocols
Primer on Browser Networking
Connection Management and Optimization
Network Security and Sandboxing
Resource and Client State Caching
Application APIs and Protocols
Brief History of XHR
Cross-Origin Resource Sharing (CORS)
Downloading Data with XHR
Uploading Data with XHR
Monitoring Download and Upload Progress
Streaming Data with XHR
Real-Time Notifications and Delivery
XHR Use Cases and Performance
Server-Sent Events (SSE)
EventSource API
Event Stream Protocol
SSE Use Cases and Performance
WebSocket API
WebSocket Protocol
WebSocket Use Cases and Performance
Performance Checklist
Standards and Development of WebRTC
Audio and Video Engines
Real-Time Network Transports
Establishing a Peer-to-Peer Connection
Delivering Media and Application Data
WebRTC Use Cases and Performance
Performance Checklist
§About the author
Ilya Grigorik is a web performance engineer at Google and co-chair of the W3C Web Performance Working Group. Follow him on his blog and Twitter for the latest web performance news, tips, and talks.

Copyright © 2013 Ilya Grigorik. Published by O’Reilly Media, Inc. Licensed under CC BY-NC-ND 4.0.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.