
Let’s Build a Web Server, Part 3 - mycodebreaks
http://ruslanspivak.com/lsbaws-part3/
======
falcolas
This is actually something that breaks my heart a bit, because this might not
work (or be heavily deprecated) at some point in the near future.

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.

------
sanjeetsuhag
I have really learnt a lot from this and the 'Let's Build an Interpreter'
series. They're all very well done.

------
danso
This is criminally under-upvoted...one of the best tutorials I've read in a
long time.

~~~
odonnellryan
Agreed! Awesome post.

------
az0xff
Incredibly well written and I definitely didn't expect to learn so much.

------
Obi_Juan_Kenobi
This is fantastic; I'm just learning about TCP/IP and websockets and find the
whole subject very difficult to get through. There's a lot of magic-looking
numbers and weird standards that don't make sense without context. I'd find
myself spending a lot of time hunting things down, which while effective, is
difficult to do while maintaining focus.

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.

------
jlees
I used Part 1 of this tutorial as the basis for a lecture in a full stack web
development class. Fantastic resource, and while my students praised the
content for helping them figure the "why" as well as the "how", the praise
really belongs to Ruslan.

~~~
rspivak
Thank you for the kind words.

------
mgachka
A good and well written article with pictures. I hope I could read more
articles like this one.

------
mrits
Great job

