As someone who once attempted implementing a http library, I can assure you that the protocol itself is at least equally tough as being aware of all the TLS / L4 edge cases.
I’d argue that implementing both TCP and IP from scratch is easier than implementing an HTTP library.