rmarx / holblocking-blogpost

Blogpost on Head-of-Line blocking from HTTP/1 to HTTP/3
GNU General Public License v3.0
125 stars 10 forks source link

Dear reviewer #1

Open rmarx opened 4 years ago

rmarx commented 4 years ago

Thank you so much for volunteering to beta-read yet another one of my way too long blogposts. Remind me to buy you a beverage of your choice the next time we meet!

This time, I'm taking the approach of having the README.md in this repository just contain the entire text. I hope this allows full flexibility for you to leave your comments. Feel free to just post them in this issue thread, create new issues for larger parts or create a PR for the README file and leave comments in-line like that (however, please do not create a new issue for each individual typo 😛).

The post is not 100% done yet, though the core content is ready for review. I mainly need to write the TLS and "why multiplexing matters" bonus sections on the bottom (though I have added outlines for them) and need to add some references. I also need to do a full editorial pass for grammar and spelling, so don't worry about those too much just yet (unless they're particularly glaring).

Feedback that I'm mainly looking for in order of importance:

Let out your inner pedant! Bad feedback is also feedback! I have a tough skin! I'd rather go cry in a corner than make false claims!

The blogpost doesn't really have a publishing deadline, but it would be great to have all comments by next week Friday (May 5) so it can be posted sometime the week of May 8.

I'm looking forward to hearing what you think!

andydavies commented 4 years ago

HTTP/3 is promising major performance improvements compared to HTTP/2, mainly because it changes its underlying transport protocol from TCP to QUIC

Should this say UDP rather than QUIC?

andydavies commented 4 years ago

Typo in HOL blocking in HTTP/3 over QUIC secrion

qutie -> quite

djc commented 4 years ago

even a single issue at he "head of the line" can "block" <- "he" -> "the"

djc commented 4 years ago

I would abbreviate Head of Line as HoL rather than HOL, might be a stylistic nit (not a native speaker, so maybe ask someone who is).

djc commented 4 years ago

"is another layer in between HTTP and TCP for security with the TLS protocol." seems like a bit of an awkward sentence, maybe reword/re-order?

I would probably spend much less text (and potentially no pictures at all) on how HTTP/1.1 doesn't support multiplexing. This seems to follow very straightforwardly from how the protocol works, if you have any understanding of HTTP (which you probably need to have anyway in order to make sense of this post?). (Potentially interesting meta-question which could also be helpful to have in the article's introduction: who is this article for?)

djc commented 4 years ago

I also wonder about the choice to explain HoL with file/response size issues. I think the packet loss angle makes things quite a bit clearer. See the animation I made:

hol

(GIF encoding of a MOV made from a screen recording of the original.)

Okay, I see this was perhaps intentional in that you discuss the notion of HTTP vs TCP HoL blocking separately. Still wondering if HTTP-level HoL isn't largely a distraction from talking about the HTTP/2-HTTP/3 (or TCP vs QUIC) differences.

djc commented 4 years ago

Isn't 0-RTT also available on HTTP/2 over TLS 1.3?

Unlike HTTP/1.1, HTTP/2 puts a so-called DATA frame in front of each chunk. reads weird to me because to me conceptually the chunk is part of the DATA frame -- isn't that kind of what a frame is?

LPardue commented 4 years ago

The blogpost doesn't really have a publishing deadline, but it would be great to have all comments by next week Friday (May 5) so it can be posted sometime the week of May 8.

Meta review comment, your dates are wrong :P

djc commented 4 years ago

While the pipelining appendix seems useful/on-topic, I feel like the Congestion Control one is much less so. In particular, the last section on relative performance of HTTP/2 vs HTTP/1.1 is kind off on a tangent.

djc commented 4 years ago

(Also meta-review comment: perhaps structure this as a PR where people can put feedback? That would make it easier to point directly into the text, add suggestions for typos etc, and comment on issues throughout the text in one go while keeping the feedback attached to particular places.)

andydavies commented 4 years ago

"A good real-life metaphore" -> "A good real-life metaphor"