Book description
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.
Publisher resources
Table of contents
- HTTP: The Definitive Guide
- Preface
-
I. HTTP: The Web’s Foundation
- 1. Overview of HTTP
- 2. URLs and Resources
-
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
-
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.5.1. Persistent Versus Parallel Connections
- 4.5.2. HTTP/1.0+ Keep-Alive Connections
- 4.5.3. Keep-Alive Operation
- 4.5.4. Keep-Alive Options
- 4.5.5. Keep-Alive Connection Restrictions and Rules
- 4.5.6. Keep-Alive and Dumb Proxies
- 4.5.7. The Proxy-Connection Hack
- 4.5.8. HTTP/1.1 Persistent Connections
- 4.5.9. Persistent Connection Restrictions and Rules
- 4.6. Pipelined Connections
- 4.7. The Mysteries of Connection Close
- 4.8. For More Information
-
II. HTTP Architecture
-
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
-
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.5.1. Proxy URIs Differ from Server URIs
- 6.5.2. The Same Problem with Virtual Hosting
- 6.5.3. Intercepting Proxies Get Partial URIs
- 6.5.4. Proxies Can Handle Both Proxy and Server Requests
- 6.5.5. In-Flight URI Modification
- 6.5.6. URI Client Auto-Expansion and Hostname Resolution
- 6.5.7. URI Resolution Without a Proxy
- 6.5.8. URI Resolution with an Explicit Proxy
- 6.5.9. URI Resolution with an Intercepting Proxy
- 6.6. Tracing Messages
- 6.7. Proxy Authentication
- 6.8. Proxy Interoperation
- 6.9. For More Information
-
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.8.1. Document Expiration
- 7.8.2. Expiration Dates and Ages
- 7.8.3. Server Revalidation
- 7.8.4. Revalidation with Conditional Methods
- 7.8.5. If-Modified-Since: Date Revalidation
- 7.8.6. If-None-Match: Entity Tag Revalidation
- 7.8.7. Weak and Strong Validators
- 7.8.8. When to Use Entity Tags and Last-Modified Dates
- 7.9. Controlling Cachability
- 7.10. Setting Cache Controls
- 7.11. Detailed Algorithms
- 7.12. Caches and Advertising
- 7.13. For More Information
- 8. Integration Points: Gateways, Tunnels, and Relays
-
9. Web Robots
-
9.1. Crawlers and Crawling
- 9.1.1. Where to Start: The “Root Set”
- 9.1.2. Extracting Links and Normalizing Relative Links
- 9.1.3. Cycle Avoidance
- 9.1.4. Loops and Dups
- 9.1.5. Trails of Breadcrumbs
- 9.1.6. Aliases and Robot Cycles
- 9.1.7. Canonicalizing URLs
- 9.1.8. Filesystem Link Cycles
- 9.1.9. Dynamic Virtual Web Spaces
- 9.1.10. Avoiding Loops and Dups
- 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
-
9.1. Crawlers and Crawling
- 10. HTTP-NG
-
5. Web Servers
-
III. Identification, Authorization, and Security
-
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.6.1. Types of Cookies
- 11.6.2. How Cookies Work
- 11.6.3. Cookie Jar: Client-Side State
- 11.6.4. Different Cookies for Different Sites
- 11.6.5. Cookie Ingredients
- 11.6.6. Version 0 (Netscape) Cookies
- 11.6.7. Version 1 (RFC 2965) Cookies
- 11.6.8. Cookies and Session Tracking
- 11.6.9. Cookies and Caching
- 11.6.10. Cookies, Security, and Privacy
- 11.7. For More Information
- 12. Basic Authentication
-
13. Digest Authentication
- 13.1. The Improvements of Digest Authentication
-
13.2. Digest Calculations
- 13.2.1. Digest Algorithm Input Data
- 13.2.2. The Algorithms H(d) and KD(s,d)
- 13.2.3. The Security-Related Data (A1)
- 13.2.4. The Message-Related Data (A2)
- 13.2.5. Overall Digest Algorithm
- 13.2.6. Digest Authentication Session
- 13.2.7. Preemptive Authorization
- 13.2.8. Nonce Selection
- 13.2.9. Symmetric Authentication
- 13.3. Quality of Protection Enhancements
- 13.4. Practical Considerations
- 13.5. Security Considerations
- 13.6. For More Information
- 14. Secure HTTP
-
11. Client Identification and Cookies
-
IV. Entities, Encodings, and Internationalization
-
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
-
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.4.1. The Content-Language Header
- 16.4.2. The Accept-Language Header
- 16.4.3. Types of Language Tags
- 16.4.4. Subtags
- 16.4.5. Capitalization
- 16.4.6. IANA Language Tag Registrations
- 16.4.7. First Subtag: Namespace
- 16.4.8. Second Subtag: Namespace
- 16.4.9. Remaining Subtags: Namespace
- 16.4.10. Configuring Language Preferences
- 16.4.11. Language Tag Reference Tables
- 16.5. Internationalized URIs
- 16.6. Other Considerations
- 16.7. For More Information
- 17. Content Negotiation and Transcoding
-
15. Entities and Encodings
-
V. Content Publishing and Distribution
- 18. Web Hosting
-
19. Publishing Systems
- 19.1. FrontPage Server Extensions for Publishing Support
-
19.2. WebDAV and Collaborative Authoring
- 19.2.1. WebDAV Methods
- 19.2.2. WebDAV and XML
- 19.2.3. WebDAV Headers
- 19.2.4. WebDAV Locking and Overwrite Prevention
- 19.2.5. The LOCK Method
- 19.2.6. The UNLOCK Method
- 19.2.7. Properties and META Data
- 19.2.8. The PROPFIND Method
- 19.2.9. The PROPPATCH Method
- 19.2.10. Collections and Namespace Management
- 19.2.11. The MKCOL Method
- 19.2.12. The DELETE Method
- 19.2.13. The COPY and MOVE Methods
- 19.2.14. Enhanced HTTP/1.1 Methods
- 19.2.15. Version Management in WebDAV
- 19.2.16. Future of WebDAV
- 19.3. For More Information
-
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
- 21. Logging and Usage Tracking
-
VI. Appendixes
- A. URI Schemes
- B. HTTP Status Codes
-
C. HTTP Header Reference
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
- Accept-Ranges
- Age
- Allow
- Authorization
- Cache-Control
- Client-ip
- Connection
- Content-Base
- Content-Encoding
- Content-Language
- Content-Length
- Content-Location
- Content-MD5
- Content-Range
- Content-Type
- Cookie
- Cookie2
- Date
- ETag
- Expect
- Expires
- From
- Host
- If-Modified-Since
- If-Match
- If-None-Match
- If-Range
- If-Unmodified-Since
- Last-Modified
- Location
- Max-Forwards
- MIME-Version
- Pragma
- Proxy-Authenticate
- Proxy-Authorization
- Proxy-Connection
- Public
- Range
- Referer
- Retry-After
- Server
- Set-Cookie
- Set-Cookie2
- TE
- Trailer
- Title
- Transfer-Encoding
- UA-(CPU, Disp, OS, Color, Pixels)
- Upgrade
- User-Agent
- Vary
- Via
- Warning
- WWW-Authenticate
- X-Cache
- X-Forwarded-For
- X-Pad
- X-Serial-Number
- D. MIME Types
- E. Base-64 Encoding
- F. Digest Authentication
- G. Language Tags
- H. MIME Charset Registry
- Index
- About the Authors
- Colophon
- Copyright
Product information
- Title: HTTP: The Definitive Guide
- Author(s):
- Release date: September 2002
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781565925090
You might also like
video
React - The Complete Guide (Includes Hooks, React Router, and Redux) - Second Edition
**This course is now updated for React 18** Starting with an introduction to React concepts, you …
video
Ultimate Go Programming, Second Edition
An updated edition of this video title is available. Please go to Ultimate Go: Advanced Concepts …
book
REST API Design Rulebook
In todayâ??s market, where rival web services compete for attention, a well-designed REST API is a …
book
gRPC: Up and Running
Get a comprehensive understanding of gRPC fundamentals through real-world examples. With this practical guide, you’ll learn …