Errata

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