Web technology has become the foundation for all sorts of critical networked
applications and far-reaching methods of data exchange, and beneath it all is
a fundamental protocol that most of us take for granted but know very little
about: HyperText Transfer Protocol, or HTTP. While the average web user can
remain blissfully unaware of the dozens of HTTP transactions required to download
a web page, understanding HTTP is essential for practically all web-based programming
and administration. Whether you're writing CGI programs, developing web-based
software, or managing a web server, you need to have some knowledge of HTTP.
And with the increasing emphasis on web services, which depend heavily on HTTP
for interapplication communication, a strong understanding of HTTP is even more
essential.
Preface
Part I. HTTP: The Web's Foundation
1. Overview of HTTP
HTTP: The Internet's Multimedia Courier
Web Clients and Servers
Resources
Transactions
Messages
Connections
Protocol Versions
Architectural Components of the Web
The End of the Beginning
For More Information
2. URLs and Resources
Navigating the Internet's Resources
URL Syntax
URL Shortcuts
Shady Characters
A Sea of Schemes
The Future
For More Information
3. HTTP Messages
The Flow of Messages
The Parts of a Message
Methods
Status Codes
Headers
For More Information
4. Connection Management
TCP Connections
TCP Performance Considerations
HTTP Connection Handling
Parallel Connections
Persistent Connections
Pipelined Connections
The Mysteries of Connection Close
For More Information
Part II. HTTP Architecture
5. Web Servers
Web Servers Come in All Shapes and Sizes
A Minimal Perl Web Server
What Real Web Servers Do
Step 1: Accepting Client Connections
Step 2: Receiving Request Messages
Step 3: Processing Requests
Step 4: Mapping and Accessing Resources
Step 5: Building Responses
Step 6: Sending Responses
Step 7: Logging
For More Information
6. Proxies
Web Intermediaries
Why Use Proxies?
Where Do Proxies Go?
Client Proxy Settings
Tricky Things About Proxy Requests
Tracing Messages
Proxy Authentication
Proxy Interoperation
For More Information
7. Caching
Redundant Data Transfers
Bandwidth Bottlenecks
Flash Crowds
Distance Delays
Hits and Misses
Cache Topologies
Cache Processing Steps
Keeping Copies Fresh
Controlling Cachability
Setting Cache Controls
Detailed Algorithms
Caches and Advertising
For More Information
8. Integration Points: Gateways, Tunnels, and Relays
Gateways
Protocol Gateways
Resource Gateways
Application Interfaces and Web Services
Tunnels
Relays
For More Information
9. Web Robots
Crawlers and Crawling
Robotic HTTP
Misbehaving Robots
Excluding Robots
Robot Etiquette
Search Engines
For More Information
10. HTTP-NG
HTTP's Growing Pains
HTTP-NG Activity
Modularize and Enhance
Distributed Objects
Layer 1: Messaging
Layer 2: Remote Invocation
Layer 3: Web Application
WebMUX
Binary Wire Protocol
Current Status
For More Information
Part III. Identification, Authorization, and Security
11. Client Identification and Cookies
The Personal Touch
HTTP Headers
Client IP Address
User Login
Fat URLs
Cookies
For More Information
12. Basic Authentication
Authentication
Basic Authentication
The Security Flaws of Basic Authentication
For More Information
13. Digest Authentication
The Improvements of Digest Authentication
Digest Calculations
Quality of Protection Enhancements
Practical Considerations
Security Considerations
For More Information
14. Secure HTTP
Making HTTP Safe
Digital Cryptography
Symmetric-Key Cryptography
Public-Key Cryptography
Digital Signatures
Digital Certificates
HTTPS: The Details
A Real HTTPS Client
Tunneling Secure Traffic Through Proxies
For More Information
Part IV. Entities, Encodings, and Internationalization
15. Entities and Encodings
Messages Are Crates, Entities Are Cargo
Content-Length: The Entity's Size
Entity Digests
Media Type and Charset
Content Encoding
Transfer Encoding and Chunked Encoding
Time-Varying Instances
Validators and Freshness
Range Requests
Delta Encoding
For More Information
16. Internationalization
HTTP Support for International Content
Character Sets and HTTP
Multilingual Character Encoding Primer
Language Tags and HTTP
Internationalized URIs
Other Considerations
For More Information
17. Content Negotiation and Transcoding
Content-Negotiation Techniques
Client-Driven Negotiation
Server-Driven Negotiation
Transparent Negotiation
Transcoding
Next Steps
For More Information
Part V. Content Publishing and Distribution
18. Web Hosting
Hosting Services
Virtual Hosting
Making Web Sites Reliable
Making Web Sites Fast
For More Information
19. Publishing Systems
FrontPage Server Extensions for Publishing Support
WebDAV and Collaborative Authoring
For More Information
20. Redirection and Load Balancing
Why Redirect?
Where to Redirect
Overview of Redirection Protocols
General Redirection Methods
Proxy Redirection Methods
Cache Redirection Methods
Internet Cache Protocol
Cache Array Routing Protocol
Hyper Text Caching Protocol
For More Information
21. Logging and Usage Tracking
What to Log?
Log Formats
Hit Metering
A Word on Privacy
For More Information
Part VI. Appendixes
A. URI Schemes
B. HTTP Status Codes
C. HTTP Header Reference
D. MIME Types
E. Base-64 Encoding
F. Digest Authentication
G. Language Tags
H. MIME Charset Registry
Index