Synopses & Reviews
Behind every web transaction lies the Hypertext Transfer Protocol (HTTP) --- the language of web browsers and servers, of portals and search engines, of e-commerce and web services. Understanding HTTP is essential for practically all web-based programming, design, analysis, and administration.While the basics of HTTP are elegantly simple, the protocol's advanced features are notoriously confusing, because they knit together complex technologies and terminology from many disciplines. This book clearly explains HTTP and these interrelated core technologies, in twenty-one logically organized chapters, backed up by hundreds of detailed illustrations and examples, and convenient reference appendices. HTTP: The Definitive Guide explains everything people need to use HTTP efficiently -- including the "black arts" and "tricks of the trade" -- in a concise and readable manner.In addition to explaining the basic HTTP features, syntax and guidelines, this book clarifies related, but often misunderstood topics, such as: TCP connection management, web proxy and cache architectures, web robots and robots.txt files, Basic and Digest authentication, secure HTTP transactions, entity body processing, internationalized content, and traffic redirection.Many technical professionals will benefit from this book. Internet architects and developers who need to design and develop software, IT professionals who need to understand Internet architectural components and interactions, multimedia designers who need to publish and host multimedia, performance engineers who need to optimize web performance, technical marketing professionals who need a clear picture of core web architectures and protocols, as well as untold numbers of students and hobbyists will all benefit from the knowledge packed in this volume.There are many books that explain how to use the Web, but this is the one that explains how the Web works. Written by experts with years of design and implementation experience, this book is the definitive technical bible that describes the "why" and the "how" of HTTP and web core technologies. HTTP: The Definitive Guide is an essential reference that no technically-inclined member of the Internet community should be without.
This guide gives a complete and detailed description of the HTTP protocol and how it shapes the landscape of the Web by the technologies that it supports.
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: HyperText Transfer Protocol, or HTTP. "HTTP: The Definitive Guide documents everything that technical people need for using HTTP efficiently-including the "black arts" and "tricks of the trade"-and does so in a clear and readable manner. Written by experts with years of practical and teaching experience, this book is the definitive technical bible on HTTP and related core web technologies because it clearly explains the "why" as well as the "how." A reader can understand how web applications work, how the core Internet protocols and architectural building blocks interact, and how to correctly implement Internet clients and servers. It's an essential toolkit that no technically-inclined member of the Internet community should be without.
About the Author
is the Chief Technology Officer of Endeca, where he leads the research and development of Endeca's knowledge navigation products. Prior to working at Endeca, David designed and developed core components of Inktomi's Internet-scale search database and was a senior developer of Inktomi's web caching products. David earned a B.A.in Computer Science from the University of California at Berkeley.
was a member of Inktomi Corporation's founding engineering team, and served as Inktomi's Vice President of R&D where he co-developed Inktomi's search engine database, and led the development of Inktomi's web caching and streaming media technologies. Formerly, he was a scientist at Silicon Graphics and at Apple Computer's Advanced Technology Group. Brian Totty has received several awards for research and teaching excellence, and holds a Ph.D. in Computer Science from the University of Illinois, Urbana-Champaign, and a B.S. in Computer Science from M.I.T.
Table of Contents
Preface; Running Example: Joe's Hardware Store; Chapter-by-Chapter Guide; Typographic Conventions; Comments and Questions; Acknowledgments; Part I: HTTP: The Web's Foundation; Chapter 1: Overview of HTTP; 1.1 HTTP: The Internet's Multimedia Courier; 1.2 Web Clients and Servers; 1.3 Resources; 1.4 Transactions; 1.5 Messages; 1.6 Connections; 1.7 Protocol Versions; 1.8 Architectural Components of the Web; 1.9 The End of the Beginning; 1.10 For More Information; Chapter 2: URLs and Resources; 2.1 Navigating the Internet's Resources; 2.2 URL Syntax; 2.3 URL Shortcuts; 2.4 Shady Characters; 2.5 A Sea of Schemes; 2.6 The Future; 2.7 For More Information; Chapter 3: HTTP Messages; 3.1 The Flow of Messages; 3.2 The Parts of a Message; 3.3 Methods; 3.4 Status Codes; 3.5 Headers; 3.6 For More Information; Chapter 4: Connection Management; 4.1 TCP Connections; 4.2 TCP Performance Considerations; 4.3 HTTP Connection Handling; 4.4 Parallel Connections; 4.5 Persistent Connections; 4.6 Pipelined Connections; 4.7 The Mysteries of Connection Close; 4.8 For More Information; Part II: HTTP Architecture; Chapter 5: Web Servers; 5.1 Web Servers Come in All Shapes and Sizes; 5.2 A Minimal Perl Web Server; 5.3 What Real Web Servers Do; 5.4 Step 1: Accepting Client Connections; 5.5 Step 2: Receiving Request Messages; 5.6 Step 3: Processing Requests; 5.7 Step 4: Mapping and Accessing Resources; 5.8 Step 5: Building Responses; 5.9 Step 6: Sending Responses; 5.10 Step 7: Logging; 5.11 For More Information; Chapter 6: Proxies; 6.1 Web Intermediaries; 6.2 Why Use Proxies?; 6.3 Where Do Proxies Go?; 6.4 Client Proxy Settings; 6.5 Tricky Things About Proxy Requests; 6.6 Tracing Messages; 6.7 Proxy Authentication; 6.8 Proxy Interoperation; 6.9 For More Information; Chapter 7: Caching; 7.1 Redundant Data Transfers; 7.2 Bandwidth Bottlenecks; 7.3 Flash Crowds; 7.4 Distance Delays; 7.5 Hits and Misses; 7.6 Cache Topologies; 7.7 Cache Processing Steps; 7.8 Keeping Copies Fresh; 7.9 Controlling Cachability; 7.10 Setting Cache Controls; 7.11 Detailed Algorithms; 7.12 Caches and Advertising; 7.13 For More Information; Chapter 8: Integration Points: Gateways, Tunnels, and Relays; 8.1 Gateways; 8.2 Protocol Gateways; 8.3 Resource Gateways; 8.4 Application Interfaces and Web Services; 8.5 Tunnels; 8.6 Relays; 8.7 For More Information; Chapter 9: Web Robots; 9.1 Crawlers and Crawling; 9.2 Robotic HTTP; 9.3 Misbehaving Robots; 9.4 Excluding Robots; 9.5 Robot Etiquette; 9.6 Search Engines; 9.7 For More Information; Chapter 10: HTTP-NG; 10.1 HTTP's Growing Pains; 10.2 HTTP-NG Activity; 10.3 Modularize and Enhance; 10.4 Distributed Objects; 10.5 Layer 1: Messaging; 10.6 Layer 2: Remote Invocation; 10.7 Layer 3: Web Application; 10.8 WebMUX; 10.9 Binary Wire Protocol; 10.10 Current Status; 10.11 For More Information; Part III: Identification, Authorization, and Security; Chapter 11: Client Identification and Cookies; 11.1 The Personal Touch; 11.2 HTTP Headers; 11.3 Client IP Address; 11.4 User Login; 11.5 Fat URLs; 11.6 Cookies; 11.7 For More Information; Chapter 12: Basic Authentication; 12.1 Authentication; 12.2 Basic Authentication; 12.3 The Security Flaws of Basic Authentication; 12.4 For More Information; Chapter 13: Digest Authentication; 13.1 The Improvements of Digest Authentication; 13.2 Digest Calculations; 13.3 Quality of Protection Enhancements; 13.4 Practical Considerations; 13.5 Security Considerations; 13.6 For More Information; Chapter 14: Secure HTTP; 14.1 Making HTTP Safe; 14.2 Digital Cryptography; 14.3 Symmetric-Key Cryptography; 14.4 Public-Key Cryptography; 14.5 Digital Signatures; 14.6 Digital Certificates; 14.7 HTTPS: The Details; 14.8 A Real HTTPS Client; 14.9 Tunneling Secure Traffic Through Proxies; 14.10 For More Information; Part IV: Entities, Encodings, and Internationalization; Chapter 15: Entities and Encodings; 15.1 Messages Are Crates, Entities Are Cargo; 15.2 Content-Length: The Entity's Size; 15.3 Entity Digests; 15.4 Media Type and Charset; 15.5 Content Encoding; 15.6 Transfer Encoding and Chunked Encoding; 15.7 Time-Varying Instances; 15.8 Validators and Freshness; 15.9 Range Requests; 15.10 Delta Encoding; 15.11 For More Information; Chapter 16: Internationalization; 16.1 HTTP Support for International Content; 16.2 Character Sets and HTTP; 16.3 Multilingual Character Encoding Primer; 16.4 Language Tags and HTTP; 16.5 Internationalized URIs; 16.6 Other Considerations; 16.7 For More Information; Chapter 17: Content Negotiation and Transcoding; 17.1 Content-Negotiation Techniques; 17.2 Client-Driven Negotiation; 17.3 Server-Driven Negotiation; 17.4 Transparent Negotiation; 17.5 Transcoding; 17.6 Next Steps; 17.7 For More Information; Part V: Content Publishing and Distribution; Chapter 18: Web Hosting; 18.1 Hosting Services; 18.2 Virtual Hosting; 18.3 Making Web Sites Reliable; 18.4 Making Web Sites Fast; 18.5 For More Information; Chapter 19: Publishing Systems; 19.1 FrontPage Server Extensions for Publishing Support; 19.2 WebDAV and Collaborative Authoring; 19.3 For More Information; Chapter 20: Redirection and Load Balancing; 20.1 Why Redirect?; 20.2 Where to Redirect; 20.3 Overview of Redirection Protocols; 20.4 General Redirection Methods; 20.5 Proxy Redirection Methods; 20.6 Cache Redirection Methods; 20.7 Internet Cache Protocol; 20.8 Cache Array Routing Protocol; 20.9 Hyper Text Caching Protocol; 20.10 For More Information; Chapter 21: Logging and Usage Tracking; 21.1 What to Log?; 21.2 Log Formats; 21.3 Hit Metering; 21.4 A Word on Privacy; 21.5 For More Information; Part VI: Appendixes; Appendix A: URI Schemes; Appendix B: HTTP Status Codes; B.1 Status Code Classifications; B.2 Status Codes; Appendix C: HTTP Header Reference; Appendix D: MIME Types; D.1 Background; D.2 MIME Type Structure; D.3 MIME Type IANA Registration; D.4 MIME Type Tables; Appendix E: Base-64 Encoding; E.1 Base-64 Encoding Makes Binary Data Safe; E.2 Eight Bits to Six Bits; E.3 Base-64 Padding; E.4 Perl Implementation; E.5 For More Information; Appendix F: Digest Authentication; F.1 Digest WWW-Authenticate Directives; F.2 Digest Authorization Directives; F.3 Digest Authentication-Info Directives; F.4 Reference Code; Appendix G: Language Tags; G.1 First Subtag Rules; G.2 Second Subtag Rules; G.3 IANA-Registered Language Tags; G.4 ISO 639 Language Codes; G.5 ISO 3166 Country Codes; G.6 Language Administrative Organizations; Appendix H: MIME Charset Registry; H.1 MIME Charset Registry; H.2 Preferred MIME Names; H.3 Registered Charsets; Colophon;