HTTP: The Definitive Guide

Errata for HTTP: The Definitive Guide

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted Date Corrected
Printed
Page 1
Rewrite the last two paragraphs of page 183 as follows

Caches may be configured to serve stale (expired) objects, in order to improve performance. If an origin server wishes caches to strictly adhere to expiration information, it can attach a Cache-Control: must-revalidate header to the original response. Cache-Control: must-revalidate The Cache-Control: must-revalidate response header tells caches they cannot serve a stale copy of this object without first revalidating with the origin server. Caches are still free to serve fresh copies. If the origin server is unavailable when a cache attempts a must-revalidate freshness check, the cache must return a 504 Gateway Timeout error.

Anonymous    Sep 01, 2007
Printed
Page 2
Reverse the 2nd and 3rd bulleted lines in the list on page 182.

Anonymous    Sep 01, 2007
Printed
Page 3
Rewrite the section "No-Cache and No-Store Headers" on page 182-183

as follows: HTTP/1.1 offers several ways to limit the caching of objects, or the serving of cached objects, to maintain freshness. The no-store and no-cache headers prevent caches from serving unverified cached objects: Cache-Control: no-store Cache-Control: no-cache Pragma: no-cache A response that is marked "no-store" forbids a cache from making a copy of the response. A cache would typically forward a no-store response to the client, and then delete the object, as would a non-caching proxy server. A response that is marked "no-cache" CAN actually be stored in the local cache storage. It just cannot be served from the cache to the client without first revalidating the freshness with the origin server. A better name for this header might be "do-not-serve-from-cache-without-revalidation". The Pragma: no-cache header is included in HTTP/1.1 for backward compatibility with HTTP/1.0+. HTTP 1.1 applications should use Cache-Control: no-cache, except when dealing with HTTP 1.0 applications, which understand only Pragma: no-cache. <FOOTNOTE> Pragma: no-cache is technically valid only for HTTP requests, yet it is widely used as an extension header for both HTTP requests and responses.</FOOTNOTE>

Anonymous    Sep 01, 2007
Printed
Page 4
Rename the section "No-Cache and No-Store Headers" on page 182 to

"No-Store and No-Cache Response Headers"

Anonymous    Sep 01, 2007
Printed
Page 12
bottom of fig. 1-8

/<p> should be </p>

Anonymous   
Printed
Page 16
3rd paragraph

The URL is no longer working. It redirects to a 'domain for sale' page. The URL should be changed to: http://netcat.sourceforge.net/

Anonymous    Sep 01, 2007
Printed
Page 34
middle

These "expandomatic" features come in a two flavors: NOW READS: These "expandomatic" features come in two flavors:

Anonymous    Sep 01, 2004
PDF
Page 46
2nd paragraph

<status> should be <status-code> because in the next paragraph to describe the part, it is referred to as 'status-code' not 'status'.

Note from the Author or Editor:
This text: <version> <status> <reason-phrase> should be changed to read: <version> <status-code> <reason-phrase> in order to be consistent with subsequent text.

Yi EungJun  Jun 02, 2012 
Printed
Page 48
1st para.

an HTTP version tells the server NOW READS: an HTTP version which tells the server

Anonymous    Sep 01, 2004
Printed
Page 53
near top

Let's talk in more detail about the some of the basic NOW READS: Let's talk in more detail about some of the basic

Anonymous    Sep 01, 2004
Printed
Page 57
Figure 3-11

The caption is incorrect. All of the traffic is HTTP 1.1 with no protocol upgrade taking place.

Note from the Author or Editor:
Delete the entire caption inside Figure 3-11 that reads "Examining the entity... additional request headers". The caption is out of date with the graphic and isn't valuable anyway.

Anonymous   
Printed
Page 72
Table 3-20, description of Set-Cookie

that the server can used to identify the client NOW READS: that the server can use to identify the client

Anonymous    Sep 01, 2004
Printed
Page 76
Figure 4-3b

In Figure 4-3b, the 2nd level from the top should be "TLS or SSL", not "TSL or SSL".

Note from the Author or Editor:
The second box from the top in Figure 4-3b should say "TLS" not "TSL"

Jon  May 07, 2011 
Printed
Page 83
5th paragraph

"Frequently, the disabled acknowledgement algorithms introduce significant delays." should read: Frequently, the delayed acknowledgement algorithms introduce significant delays."

Note from the Author or Editor:
The 5th pp of p.83 has a typo. The phrase "Frequently, the disabled acknowledgement" should read "Frequently, the delayed acknowledgement"

Anonymous   
Printed
Page 84
6th paragraph

The third line of paragraph six has the following: "Second, Nagle's algorithm interacts poorly with disabled acknowledgments.." "disabled" should be replaced with "delayed"

Note from the Author or Editor:
In pp 6 of p. 84, need to change: "poorly with disabled" to "poorly with delayed"

Anonymous   
Printed
Page 85
top, 2nd line

uncommon is real deployments NOW READS: uncommon in real deployments

Anonymous    Sep 01, 2004
Printed
Page 118
last paragraph

The phrase "or even tens or thousands of simultaneous connections" should be "or even tens of thousands of simultaneous connections".

Anonymous    Sep 01, 2007
Printed
Page 149
figure 6-17

While reviewing the sample chapter 6 in PDF, which is available online, l have found a mistake in figure 6-17, maybe due to the fact that it seems to be a retouch of figure 6-16 that appears in the previous section. The mistake is as follows: point (3a) is repeated twice in the figure, but the one on the lower left corner is mistaken, and should be removed. In fact, its legend "The browser does auto-expansion, converting 'oreilly' into 'www.oreilly.com'" is also incorrect, as the starting paragraph of this section states that "[...] the browser no longer performs any of these convenience expansions [...]". Nevertheless, there is no point in correcting the legend, because both the point (3a) and its legend should be removed from figure 6-17. Another possibility which might also work would be to change the number of this point to (1b) and modify its legend as follows (copied from the paragraph immediately above the figure): "The browser adds the default scheme and path but leaves the hostname as entered, thus converting 'oreilly' into 'http://oreilly/'".

Note from the Author or Editor:
In Figure 6-17, the graphic and caption associated with (3a) in the lower left is a mistake - copied from the previous figure. Delete the graphic in the lower left, and it's caption that says "(3a) The browser does..."

Anonymous   
Printed
Page 151
second paragraph under "The Via Header"

"that he second" NOW READS: "that the second"

Anonymous    Nov 01, 2003
Printed
Page 154
Privacy and security implications of Via

There are some cases where we want don't want exact hostnames should be: There are some cases where we don't want exact hostnames

Note from the Author or Editor:
In last pp of p.154, replace "we want don't" with "we don't"

Anonymous   
Printed
Page 166
end of 2nd paragraph

when the server is deleted NOW READS: when the object on the server is deleted

Anonymous    Sep 01, 2004
Printed
Page 181
near top, 3rd instance of If-None-Match

If-None-March: NOW READS: If-None-Match:

Anonymous    Sep 01, 2004
PDF
Page 183
the first footnote

From "Pragma no-cache is technically valid only for HTTP requests, yet it is widely used as an extension header for both HTTP erquests and responses.", "erquests" should be "requests".

Note from the Author or Editor:
If it really says "erquests", then yes, it should say "requests".

Yi EungJun  Sep 15, 2013 
Printed
Page 183
Last paragraph

This text claims that the "Freshness calculation is bypassed." This is incorrect. AUTHOR: The reader is most likely correct. There is a conflict between section 13.2.1 and section 14.9.4 of the standards document RFC 2616 that leads to this confusion. I recommend we make 4 changes to pages 182 and 183:

Anonymous    Sep 01, 2007
Printed
Page 185
Table 7-4, last line

Duplicated period "cache.." HAS BEEN CHANGED to "cache."

Anonymous    Sep 01, 2004
Printed
Page 191
2nd footnote

of even of short-lifetime objects. should be: of even short-lifetime objects.

Anonymous   
Printed
Page 192
Figure 7-18

The label 'time_got_response' should be moved one node to the right, and the currently labelled node should be removed from the Cache timeline.

Note from the Author or Editor:
In the middle of Figure 7-18 there is a circle with the text time_got_response. These need to be moved to the right where the next dashed line crosses the circle.

Anonymous   
Printed
Page 195
Log Migration

some large cache providers have been know should be: some large cache providers have been known

Anonymous   
Printed
Page 196
near middle

allows servers to control the how much NOW READS: allows servers to control how much

Anonymous    Sep 01, 2004
Printed
Page 220
First paragraph in section "Filesystem Link Cycles"

"Symbolic link cycles usually are the result of an accidental mistake by the server administrator, ..." NOW READS: "Symbolic link cycles usually are the result of an unintentional error by the server administrator, ..."

Anonymous    Sep 01, 2004
Printed
Page 221
Figure 8-13

Normal SLL connection should be: Normal SSL connection

Anonymous   
Printed
Page 225
4th paragraph on the page

"indentifying" NOW READS: "identifying"

Anonymous    Nov 01, 2003
Printed
Page 225
top

A robot is making should be: A robot that is making

Anonymous    Sep 01, 2007
Printed
Page 231
footnote

resource could by dynamically should be: resource could be dynamically

Anonymous    Sep 01, 2007
Printed
Page 232
near bottom

Each robots record starts with one or more User-Agent lines... should be: Each robot's record starts with one or more User-Agent lines...

Anonymous    Sep 01, 2007
Printed
Page 244
Figure 9-8, Text in message B

The text in document B in Figure 9-8 is missing the word "a", which is important, because the examples use this word to demonstrate how a full-text index works. Need to insert the word "a" between "into" and "tragedy" in Figure 9-8, in the graphic for document B.

Anonymous   
Printed
Page 246
has the URL: www.robots.txt.org

NOW READS: www.robotstxt.org

Anonymous    Nov 01, 2003
Printed
Page 247
Beginning of 2nd paragraph

The comma after "But" should be removed

Anonymous    Sep 01, 2007
Printed
Page 253
Second sentence of first bulleted paragraph

The comma after "But" should be removed (same error as on p247)

Anonymous    Sep 01, 2007
Printed
Page 272
First paragraph, 2nd sentence

"Each matching cookie much include any Domain,..." NOW READS: "Each matching cookie must include any Domain,..."

Anonymous    Nov 01, 2003
Printed
Page 279
Fig. 12-2

Need a (d) in front of the last box in the figure.

Anonymous   
Printed
Page 284
2nd line of first non-numbered paragraph

"...documents in an friendly..." NOW READS: "...documents in a friendly..."

Anonymous    Nov 01, 2003
Printed
Page 287
near middle

the digest provided a correct match for the password.

Anonymous    Sep 01, 2007
Printed
Page 300
Table 13-8

<base64-user:pass> NOW READS: <base64(user:pass)>

Anonymous    Nov 01, 2003
Printed
Page 313
Fig. 14-7

Plaintext P --> Ciphertext C Ciphertext C --> Plaintext P

Anonymous   
Printed
Page 314
1st para.

2^128 = 262 x 10^36 NOW READS: 2^128 = 340 x 10^36

Anonymous    Sep 01, 2004
Printed
Page 344
First bullet item

"Hi! I'm a message." NOW READS: "Hi! I'm a message!"

Anonymous    Nov 01, 2003
Printed
Page 347
Second and third paragraphs

The second paragraph (pt 6) and third paragraph contain exactly the same information, very trivially reworded. For clarity, one or the other should be deleted.

Anonymous    Sep 01, 2007
Printed
Page 357
Figure 15-6.

Page 357 Figure 15-6. Anatomy of a chunked message. According to the http RFC point 3.6.1 [http://www.ietf.org/rfc/rfc2616.txt] there should be an extra CRLF at the end of the figure. Chunked-Body = *chunk last-chunk trailer CRLF

Note from the Author or Editor:
In Figure 15-6, we should add at the very bottom of the figure, vertically below everything on the current figure, a rectangle containing only "<CR><LF>" in it. It should be left aligned with the other rectangles.

Anonymous  Mar 10, 2009 
Printed
Page 363
1st paragraph

even thought the should be: even though the

Note from the Author or Editor:
In 4th sentence of 1st pp of p.363, "even thought" should be replaced with "even though".

Anonymous   
Printed
Page 365
Figure 15-9, top of page

1) The response should not be 200 OK, it should be 206 Partial Content. 2) The response should not have a Range header, but a Content-Range header.

Anonymous   
Printed
Page 371
near bottom

the url http://www.isi.edu/in-notes/iana/assignments/character-sets has been changed to http://www.iana.org/assignments/character-sets

Anonymous    Sep 01, 2007
Printed
Page 402
5th paragraph

varaint should be: variant

Note from the Author or Editor:
In last pp of p. 402, the typo "varaint" should be replaced with "variant"

Anonymous   
Printed
Page 402
3rd paragraph, 3rd line

does should be: do

Anonymous    Sep 01, 2007
Printed
Page 409
1st bullet item

and how to replicating content across NOW READS: and how to replicate content across

Anonymous    Sep 01, 2004
Printed
Page 429
6th line of 1st paragraph in "WebDAV and Collaborative Authoring" section

"Its" NOW READS: "It's"

Anonymous    Nov 01, 2003
Printed
Page 430
5th line from bottom of page

"unique" NOW READS: "uniquely"

Anonymous    Nov 01, 2003
Printed
Page 449
3rd paragraph

incoming messages must somehow be somehow among the servers should be: incoming messages must somehow be distributed amongst the servers

Note from the Author or Editor:
Last sentence of pp 3 on p. 449 needs to replace "somehow be somehow" with "somehow be distributed"

Anonymous   
Printed
Page 453
1st paragraph

combination with some of the other redirection technique. should be: combination with one or more of the other redirection techniques.

Note from the Author or Editor:
Accept the reader's suggestion.

Anonymous   
PDF
Page 456
the second sentence on the first paragraph

In the sentence "If DNS did not rotate the addresses, most clients would always send load to the first client.", "first client" should be "first server."

Note from the Author or Editor:
Please replace the sentence starting with "If DNS did not rotate..." with this new sentence: "If DNS did not rotate the list of server addresses, the first server in the list would be selected by most clients and would receive most of the load".

EungJun Yi  Jun 20, 2013 
PDF
Page 458
Figure 20-4

(c) Sends IP address of authoritive server should be (c) Sends IP address of authoritative server

Note from the Author or Editor:
There is a small typo in Figure 20-4(c). The text "authoritive" should say "authoritative".

EungJun Yi  May 06, 2013 
Printed
Page 459
last sentence

likewise, HTTP traffic NOW READS: Likewise, HTTP traffic

Anonymous    Sep 01, 2004
Printed
Page 466
2nd paragraph

Dynamic Host Discovery Protocol AFAIK this does not exist as described, and should be: Dynamic Host Configuration Protocol

Note from the Author or Editor:
In bulleted list in pp 2, "Dynamic Host Discovery Protocol" should read "Dynamic Host Configuration Protocol".

Anonymous   
Printed
Page 571
Figure E-1

There is a layout problem in Figure E-1 that creates an error. It's due to a misunderstanding that occurred during final artwork construction. On the top right of Figure E-1 there is a vertical line followed by an "!" and "$21". The vertical line and the associated text needs to move to the right two bit positions. The vertical line is supposed to partition the bit string into 8 bit pieces. It is supposed to delineate the partition between the octets 01110111 and 00100001. As it stands now, it incorrectly splits 0111011100 and 100001. The hexadecimal value "21" is equivalent to binary "00100001".

Anonymous