HTTP/2 in Action cover Errata: June 12, 2020

Thank you for purchasing HTTP/2 in Action. Please list errors not listed below in LiveBooks errata thread. We'll update this list as necessary.




In Acknowledgements, page xviii:

This correction has been made to mobile and livebook formats. The print book will be corrected at its second printing.

Steve Souders and Patrick Meenan both had their names misspelled. Huge apologies to both!

Chapter 1, page 7:

"The web browser processed the returned request." should read "The web browser processed the returned response."

Chapter 1, page 23:

"...and this update is expected to be published early in 2019..." should read "...and this update is expected to be published in late 2019 or 2020..." because the latest update to HTTP/1.1 and HTTP semantics has been delayed.

Chapter 1, page 62:

"The images take progressively longer in figure 2.20 (from 282 ms in request line 4 to 301 ms in request line 25). Figure 2.21 shows the same results at lines 88–120" should read "The images take progressively longer in figure 2.20 (from 275 ms in request line 3 to 503 ms in request line 21). Figure 2.21 shows the same results at lines 88–112".

Chapter 2, page 63:

"...vey impressive..." should read "...very impressive...".

Chapter 1, page 67:

"...and this update is expected to be published early in 2019..." should read "...and this update is expected to be published in late 2020 or 2021..." because the latest update to HTTP/1.1 and HTTP semantics has been delayed.

Chapter 2, page 68:

The summary has two instances of SPDY, one of which is spelled incorrectly as SDPY.

Chapter 4, Page 125:

Table 4.2 should be labelled "SETTINGS frame format" and not "HEADERS frame format".

Chapter 4, Page 132:

"This flag means that the first 8 bits of the DATA frame indicate" should read "This flag means that the first 8 bits of the HEADER frame indicate".

Chapter 4, Page 137:

"For this reason, HEADER and CONTINUATION frames " should read "For this reason, HEADERS and CONTINUATION frames ".

Chapter 5, Page 153 - Listing 5.1, Page 157 - Listing 5.2

Add ;as=style to Link header to prevent warnings in Chrome console: </assets/css/common.css>rel=preload;as=style.

Chapter 5, Page 162 - Listing 5.3:

Remove unnecessary }) from last line.

Chapter 6, page 187:

"You saw in chapter 5 that although SETTINGS_MAX_CONCURRENT_STREAMS defaults to unlimited" should read "You saw in chapter 4 that although SETTINGS_MAX_CONCURRENT_STREAMS defaults to unlimited".

Chapter 6, page 208:

"There's no point in doing a dns-prefetch before referencing the resource, as that reference will do the DNS lookup anyway" should read "There's no point in doing a dns-prefetch just before referencing the resource, because the browser will do the DNS lookup anyway as part of fetching the resource when it sees the reference" to make it more readable.

"so there are good gains to be had by using this header" should read "so there are good gains to be had by using this hint" as the hint can be used as HTML or a header.

Chapter 7, Page 117:

"Obviously, you should turn this tool off when you’re using it for debugging." should read "Obviously, you should only turn this option on when you’re using it for debugging."

Chapter 7, page 225:

Replace the phrase "and help with debugging, if you're looking to implement your own HTTP/2 server." with "and help with debugging issues."

Chapter 7, page 226:

Replace the phrase "An HTTP/2 stream is created for a single download and then discarded." with "An HTTP/2 stream is created for a single download and then cannot be reused."

Chapter 7, page 228:

Replace the phrase "(such as when the RST_STREAM frame is used to end a connection prematurely)," with "(such as when the RST_STREAM frame is used to end a stream prematurely)."

Chapter 7, page 233:

"so nghttpd doesn’t need to use any" should read "so nghttp doesn’t need to use any"

Chapter 8, page 255:

"The server picks one of these algorithms and compresses the header, and in the response, it informs the browser which algorithm it used to compress the resource." should read "The server picks one of these algorithms and compresses the body, and in the response, it informs the browser which algorithm it used to compress the resource."

Chapter 8, page 259:

"HEADER and CONTINUATION frames" should read "HEADERS and CONTINUATION frames"

Chapter 8, page 267:

"#For each inoput character," should read "#For each input character,"

"#Pad out the binary string to ensure that it's divisble by 8 while" should read "#Pad out the binary string to ensure that it's divisible by 8 while"

Chapter 8, page 269:

"Header compression even for this first frame is great, with a 45% saving (273/498 = 55%)" should read "Header compression even for this first frame is great, with a 45% saving (273/498 = 55% used and therefore 45% saved)" to make it more readable.

Chapter 8, page 274:

"c5 = 1100 0010" should read "c2 = 1100 0010"

Part 4 Intro, page 279

"Back up the protocol layer, in chapter 10, I also look at HTTP and where..." should read "Moving away from the transport layer, back up to the application layer, in chapter 10, I also look at HTTP and where..."

Chapter 9, page 299:

"Traditionally, TCP allows a maximum CWND window size" should read "Traditionally, TCP allows a maximum CWND size" to avoid repeating window in both acronym and in full.

Chapter 9, pages 303:

"Multiplexing without HOL line blocking" should read "Multiplexing without HOL blocking" to avoid repetition of the word line in the HOL acronym and again outside.

Chapter 9, pages 306, 308 and index pages 381, 383:

Multiple instances of UPD instead of UDP as an acronym for User Datagram Protocol.

Chapter 9, page 309:

"...expected to happen in early 2019..." should read "...expected to happen in 2020 or 2021..." as the standardization of iQUIC has been delayed.

Chapter 9, page 311:

"The IEFT Working Group " should read "The IETF Working Group".

Chapter 9, page 312:

Figure 9.20 has a number of errors:

Chapter 9, page 313:

In the "Other differences" section, add the following to the end of the section. "One other area that looks like it might change is in HTTP/3 prioritization. There is a growing desire to simplify the complex HTTP/2 prioritization scheme, though how exactly to do this hasn't been agreed upon at this writing."

Chapter 10, page 320:

"IEFT" should read "IETF".

Appendix A, page 346:

"you should refer to the documentation for your own web browser." should read "you should refer to the documentation for your own web server.".

Appendix A, page 346:

"Visual C++ Distributable" should read "Visual C++ Redistributable".