| Preface | p. xiii |
| HTTP: The Web's Foundation | |
| Overview of HTTP | p. 3 |
| HTTP: The Internet's Multimedia Courier | p. 3 |
| Web Clients and Servers | p. 4 |
| Resources | p. 4 |
| Transactions | p. 8 |
| Messages | p. 10 |
| Connections | p. 11 |
| Protocol Versions | p. 16 |
| Architectural Components of the Web | p. 17 |
| The End of the Beginning | p. 21 |
| For More Information | p. 21 |
| URLs and Resources | p. 23 |
| Navigating the Internet's Resources | p. 24 |
| URL Syntax | p. 26 |
| URL Shortcuts | p. 30 |
| Shady Characters | p. 35 |
| A Sea of Schemes | p. 38 |
| The Future | p. 40 |
| For More Information | p. 41 |
| HTTP Messages | p. 43 |
| The Flow of Messages | p. 43 |
| The Parts of a Message | p. 44 |
| Methods | p. 53 |
| Status Codes | p. 59 |
| Headers | p. 67 |
| For More Information | p. 73 |
| Connection Management | p. 74 |
| TCP Connections | p. 74 |
| TCP Performance Considerations | p. 80 |
| HTTP Connection Handling | p. 86 |
| Parallel Connections | p. 88 |
| Persistent Connections | p. 90 |
| Pipelined Connections | p. 99 |
| The Mysteries of Connection Close | p. 101 |
| For More Information | p. 104 |
| HTTP Architecture | |
| Web Servers | p. 109 |
| Web Servers Come in All Shapes and Sizes | p. 109 |
| A Minimal Perl Web Server | p. 111 |
| What Real Web Servers Do | p. 113 |
| Accepting Client Connections | p. 115 |
| Receiving Request Messages | p. 116 |
| Processing Requests | p. 120 |
| Mapping and Accessing Resources | p. 120 |
| Building Responses | p. 125 |
| Sending Responses | p. 127 |
| Logging | p. 127 |
| For More Information | p. 127 |
| Proxies | p. 129 |
| Web Intermediaries | p. 129 |
| Why Use Proxies? | p. 131 |
| Where Do Proxies Go? | p. 137 |
| Client Proxy Settings | p. 141 |
| Tricky Things About Proxy Requests | p. 144 |
| Tracing Messages | p. 150 |
| Proxy Authentication | p. 156 |
| Proxy Interoperation | p. 157 |
| For More Information | p. 160 |
| Caching | p. 161 |
| Redundant Data Transfers | p. 161 |
| Bandwidth Bottlenecks | p. 161 |
| Flash Crowds | p. 163 |
| Distance Delays | p. 163 |
| Hits and Misses | p. 164 |
| Cache Topologies | p. 168 |
| Cache Processing Steps | p. 171 |
| Keeping Copies Fresh | p. 175 |
| Controlling Cachability | p. 182 |
| Setting Cache Controls | p. 186 |
| Detailed Algorithms | p. 187 |
| Caches and Advertising | p. 194 |
| For More Information | p. 196 |
| Integration Points: Gateways, Tunnels, and Relays | p. 197 |
| Gateways | p. 197 |
| Protocol Gateways | p. 200 |
| Resource Gateways | p. 203 |
| Application Interfaces and Web Services | p. 205 |
| Tunnels | p. 206 |
| Relays | p. 212 |
| For More Information | p. 213 |
| Web Robots | p. 215 |
| Crawlers and Crawling | p. 215 |
| Robotic HTTP | p. 225 |
| Misbehaving Robots | p. 228 |
| Excluding Robots | p. 229 |
| Robot Etiquette | p. 239 |
| Search Engines | p. 242 |
| For More Information | p. 246 |
| HTTP-NG | p. 247 |
| HTTP's Growing Pains | p. 247 |
| HTTP-NG Activity | p. 248 |
| Modularize and Enhance | p. 248 |
| Distributed Objects | p. 249 |
| Messaging | p. 250 |
| Remote Invocation | p. 250 |
| Web Application | p. 251 |
| WebMUX | p. 251 |
| Binary Wire Protocol | p. 252 |
| Current Status | p. 252 |
| For More Information | p. 253 |
| Identification, Authorization, and Security | |
| Client Identification and Cookies | p. 257 |
| The Personal Touch | p. 257 |
| HTTP Headers | p. 258 |
| Client IP Address | p. 259 |
| User Login | p. 260 |
| Fat URLs | p. 262 |
| Cookies | p. 263 |
| For More Information | p. 276 |
| Basic Authentication | p. 277 |
| Authentication | p. 277 |
| Basic Authentication | p. 281 |
| The Security Flaws of Basic Authentication | p. 283 |
| For More Information | p. 285 |
| Digest Authentication | p. 286 |
| The Improvements of Digest Authentication | p. 286 |
| Digest Calculations | p. 291 |
| Quality of Protection Enhancements | p. 299 |
| Practical Considerations | p. 300 |
| Security Considerations | p. 303 |
| For More Information | p. 306 |
| Secure HTTP | p. 307 |
| Making HTTP Safe | p. 307 |
| Digital Cryptography | p. 309 |
| Symmetric-Key Cryptography | p. 313 |
| Public-Key Cryptography | p. 315 |
| Digital Signatures | p. 317 |
| Digital Certificates | p. 319 |
| HTTPS: The Details | p. 322 |
| A Real HTTPS Client | p. 328 |
| Tunneling Secure Traffic Through Proxies | p. 335 |
| For More Information | p. 336 |
| Entities, Encodings, and Internationalization | |
| Entities and Encodings | p. 341 |
| Messages Are Crates, Entities Are Cargo | p. 342 |
| Content-Length: The Entity's Size | p. 344 |
| Entity Digests | p. 347 |
| Media Type and Charset | p. 348 |
| Content Encoding | p. 351 |
| Transfer Encoding and Chunked Encoding | p. 354 |
| Time-Varying Instances | p. 359 |
| Validators and Freshness | p. 360 |
| Range Requests | p. 363 |
| Delta Encoding | p. 365 |
| For More Information | p. 369 |
| Internationalization | p. 370 |
| HTTP Support for International Content | p. 370 |
| Character Sets and HTTP | p. 371 |
| Multilingual Character Encoding Primer | p. 376 |
| Language Tags and HTTP | p. 384 |
| Internationalized URIs | p. 389 |
| Other Considerations | p. 392 |
| For More Information | p. 392 |
| Content Negotiation and Transcoding | p. 395 |
| Content-Negotiation Techniques | p. 395 |
| Client-Driven Negotiation | p. 396 |
| Server-Driven Negotiation | p. 397 |
| Transparent Negotiation | p. 400 |
| Transcoding | p. 403 |
| Next Steps | p. 405 |
| For More Information | p. 406 |
| Content Publishing and Distribution | |
| Web Hosting | p. 411 |
| Hosting Services | p. 411 |
| Virtual Hosting | p. 413 |
| Making Web Sites Reliable | p. 419 |
| Making Web Sites Fast | p. 422 |
| For More Information | p. 423 |
| Publishing Systems | p. 424 |
| FrontPage Server Extensions for Publishing Support | p. 424 |
| WebDAV and Collaborative Authoring | p. 429 |
| For More Information | p. 446 |
| Redirection and Load Balancing | p. 448 |
| Why Redirect? | p. 449 |
| Where to Redirect | p. 449 |
| Overview of Redirection Protocols | p. 450 |
| General Redirection Methods | p. 452 |
| Proxy Redirection Methods | p. 462 |
| Cache Redirection Methods | p. 469 |
| Internet Cache Protocol | p. 473 |
| Cache Array Routing Protocol | p. 475 |
| Hyper Text Caching Protocol | p. 478 |
| For More Information | p. 481 |
| Logging and Usage Tracking | p. 483 |
| What to Log? | p. 483 |
| Log Formats | p. 484 |
| Hit Metering | p. 492 |
| A Word on Privacy | p. 495 |
| For More Information | p. 495 |
| Appendixes | |
| URI Schemes | p. 499 |
| HTTP Status Codes | p. 505 |
| HTTP Header Reference | p. 508 |
| MIME Types | p. 533 |
| Base-64 Encoding | p. 570 |
| Digest Authentication | p. 574 |
| Language Tags | p. 581 |
| MIME Charset Registry | p. 602 |
| Index | p. 617 |
| Table of Contents provided by Syndetics. All Rights Reserved. |