Let’s Build a Web Server, Part 3
ruslanspivak.com
ruslanspivak.com
If, or when, HTTP/2 is the only protocol available suddenly you can't just return a string with a few newlines and have it mean something. Instead, you have to send a connection preface, then start building and sending frames of data in specific orders with specific binary packing formats.
Length, 24 bits. Type, 8. Flags, 8, an ignored reserved bit, an identifier which must be odd (except when it must be even), padding lengths, and finally a payload (don't forget that padding!)
I know there's value in moving to HTTP/2, but it's yet another stumbling block in the path to understanding how our environments work. The straw hasn't fractured the camel's back yet, but I imagine the camel is wishing it would all just end.
Maybe this tutorial just needs a part 4, how to respond properly to HTTP/2 requests.
There's so much wonderful context and 'why' to this series; it's honestly a bit of a revelation. Even if I don't care to learn about e.g. UNIX details, that little peak behind the scenes at the right time really helps create a coherent mental model.