Preface
The Hypertext TransferProtocol (HTTP) is the protocol programs use to communicate over theWorld Wide Web. There are many applications of HTTP, but HTTP is mostfamous for two-way conversation between web browsers and web servers.
HTTP began as a simple protocol, so you might think there reallyisn't that much to say about it. And yet here youstand, with a two-pound book in your hands. Ifyou're wondering how we could have written 650 pageson HTTP, take a look at the Table of Contents. This bookisn't just an HTTP header reference manual;it's a veritable bible of web architecture.
In this book, we try to tease apart HTTP'sinterrelated and often misunderstood rules, and we offer you a seriesof topic-based chapters that explain all the aspects of HTTP.Throughout the book, we are careful to explain the"why" of HTTP, not just the"how." And to save you time chasingreferences, we explain many of the critical non-HTTP technologiesthat are required to make HTTP applications work. You can find thealphabetical header reference (which forms the basis of mostconventional HTTP texts) in a conveniently organized appendix. Wehope this conceptual design makes it easy for you to work with HTTP.
This book is written for anyone who wants to understand HTTP and theunderlying architecture of the Web. Software and hardware engineerscan use this book as a coherent reference for HTTP and related webtechnologies. Systems architects and network administrators can usethis book to better understand how to design, deploy, and managecomplicated web architectures. Performance engineers and analysts canbenefit from the sections on caching and performance optimization.Marketing and consulting professionals will be able to use theconceptual orientation to better understand the landscape of webtechnologies.
This book illustrates common misconceptions, advises on"tricks of the trade," providesconvenient reference material, and serves as a readable introductionto dry and confusing standards specifications. In a single book, wedetail the essential and interrelated technologies that make the Webwork.
This book is the result of a tremendous amount of work by many peoplewho share an enthusiasm for Internet technologies. We hope you findit useful.
Running Example: Joe's Hardware Store
Many of our chapters include a runningexample of a hypothetical online hardware and home-improvement storecalled "Joe'sHardware" to demonstrate technology concepts. Wehave set up a real web site for the store(http://www.joes-hardware.com) for you to testsome of the examples in the book. We will maintain this web sitewhile this book remains in print.
Chapter-by-Chapter Guide
This book contains 21 chapters, divided into 5 logical parts (eachwith a technology theme), and 8 useful appendixes containingreference data and surveys of related technologies:
, describes the core technology of HTTP, the foundation of the Web, infour chapters:
is a rapid-paced overview of HTTP.
details the formats of uniform resourcelocators (URLs) and the various types of resources that URLs nameacross the Internet. It also outlines the evolution to uniformresource names (URNs).
details how HTTP messages transport webcontent.
explains the commonly misunderstood andpoorly documented rules and behavior for managing HTTP connections.
contains the following six chapters:
gives an overview of web serverarchitectures.
explores HTTP proxy servers, which areintermediary servers that act as platforms for HTTP services andcontrols.
delves into the science of webcachesdevices that improve performance and reduce traffic bymaking local copies of popular documents.
explains gateways and applicationservers that allow HTTP to work with software that speaks differentprotocols, including Secure Sockets Layer (SSL) encrypted protocols.
describes the various types of clientsthat pervade the Web, including the ubiquitous browsers, robots andspiders, and search engines.
talks about HTTP developments still inthe works: the HTTP-NG protocol.
presents a suite of techniques andtechnologies to track identity, enforce security, and control accessto content. It contains the following four chapters:
talks about techniques to identifyusers so that content can be personalized to the user audience.
highlights the basic mechanisms toverify user identity. The chapter also examines how HTTPauthentication interfaces with databases.
explains digest authentication, acomplex proposed enhancement to HTTP that provides significantlyenhanced security.
is a detailed overview of Internetcryptography, digital certificates, and SSL.
focuses on the bodies of HTTP messages(which contain the actual web content) and on the web standards thatdescribe and manipulate content stored in the message bodies. Part IVcontains three chapters:
describes the structure of HTTP content.
surveys the web standards that allowusers around the globe to exchange content in different languages andcharacter sets.
explains mechanisms for negotiatingacceptable content.
discusses the technology forpublishing and disseminating web content. It contains four chapters:
discusses the ways people deployservers in modern web hosting environments and HTTP support forvirtual web hosting.
discusses the technologies for creatingweb content and installing it onto web servers.
surveys the tools and techniques fordistributing incoming web traffic among a collection of servers.
covers log formats and common questions.
contains helpful reference appendixesand tutorials in related technologies:
summarizes the protocols supportedthrough uniform resource identifier (URI) schemes.
conveniently lists the HTTP responsecodes.
provides a reference list of HTTPheader fields.
provides an extensive list of MIMEtypes and explains how MIME types are registered.
explains base-64 encoding, used by HTTPauthentication.
gives details on how to implementvarious authentication schemes in HTTP.
defines language tag values for HTTPlanguage headers.
provides a detailed list of characterencodings, used for HTTP internationalization support.
Each chapter contains many examples and pointers to additionalreference material.
Typographic Conventions
In this book, we use the following typographic conventions:
ItalicUsed for URLs, C functions, command names, MIME types, new termswhere they are defined, and emphasis
Constant width
Used for computer output, code, and any literal text
Constant width bold
Used for user input
Comments and Questions
Please address comments and questions concerning this book to thepublisher:
O'Reilly & Associates, Inc. |