Live data from Hacker News

C++ Web Server on my custom hobby OS

oshub.org

1–10 of 17 posts

Re: C++ Web Server on my custom hobby OS

#3
post #2

Very cool! Why was and the entire networking stack straight forward, but not HTTP (and TCP)? Could you take inspiration form other projects for things like DNS?

Up to TCP most protocols are very straight forward, atleast getting them to work semi reliable. But then TCP explodes in complexity with all the state management and possible paths a connection can take.

HTTP is mostly annoying because of all the text parsing :D

Re: C++ Web Server on my custom hobby OS

#5
post #2

Very cool! Why was and the entire networking stack straight forward, but not HTTP (and TCP)? Could you take inspiration form other projects for things like DNS?

Up to TCP most protocols are very straight forward, atleast getting them to work semi reliable. But then TCP explodes in complexity with all the state management and possible paths a connection can take. HTTP is mostly annoying because of all the text parsing :D

Yeah...HTTP/1 is one of those weird cases where the older protocol is considerably more difficult to implement correctly than the newer ""more complex"" standard. This is especially true if you want your server to work with they myriad of questionably compliant clients out in the world.

HTTP/3 might have been easier, and using QUIC+HTTP/3 in your hobby OS is a fun flex :)

Re: C++ Web Server on my custom hobby OS

#6

Earlier quoted context omitted.

Up to TCP most protocols are very straight forward, atleast getting them to work semi reliable. But then TCP explodes in complexity with all the state management and possible paths a connection can take. HTTP is mostly annoying because of all the text parsing :D

Yeah...HTTP/1 is one of those weird cases where the older protocol is considerably more difficult to implement correctly than the newer ""more complex"" standard. This is especially true if you want your server to work with they myriad of questionably compliant clients out in the world. HTTP/3 might have been easier, and using QUIC+HTTP/3 in your hobby OS is a fun flex :)

I don’t think that http/3 is easier to implement than http/1.1 especially since h3 is stateful where http/1.1 is not. Especially not when everything should be working correctly and securely because the spec does not always tell about these things. Oh and multiplexing is quite a hard thing to do especially when you are also dealing with a state machine and each of your clients can be malicious.

Re: C++ Web Server on my custom hobby OS

#8

Earlier quoted context omitted.

Up to TCP most protocols are very straight forward, atleast getting them to work semi reliable. But then TCP explodes in complexity with all the state management and possible paths a connection can take. HTTP is mostly annoying because of all the text parsing :D

Yeah...HTTP/1 is one of those weird cases where the older protocol is considerably more difficult to implement correctly than the newer ""more complex"" standard. This is especially true if you want your server to work with they myriad of questionably compliant clients out in the world. HTTP/3 might have been easier, and using QUIC+HTTP/3 in your hobby OS is a fun flex :)

httpdito http://canonical.org/~kragen/sw/dev3/server.s implements HTTP/1.0 GET in about 320 machine instructions, and I haven't yet found a questionably compliant client that doesn't work with it. Writeup in http://canonical.org/~kragen/sw/dev3/httpdito-readme.
Post reply on HN