Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

HTTP is an unmitigated mess. It's in the same state as C++; tries to be everything but has lots of historical baggage that can't/won't be removed.


Similar thoughts. As I read through the “why HTTP took off” explanations, I was surprised that the more obvious “it was the first thing that a plurality of players networked on and after that it was all just bandwagoning, because it’s much easier to meet people at other people’s parties than try to host your own” wasn’t enumerated.


"Ease of use" is mentioned, and I suppose this refers to HTTP being text-based, pretty readable and intuitively understandable. HTTP/2 and later aren't like this anymore, for the sake of efficiency. It's a trade-off, but at this point I don't see much value in using it for APIs anymore. If you value efficiency and clean design, there are clearly better alternatives that aren't more complicated than what HTTP has become.


By "ease of use" they probably mean that the ecosystem is so advanced, one can easily write a HTTP handler in the language/framework of their choice.

In reality through, now days it's a nightmare to implement a HTTP server/client (at least for individual developer like myself). HTTP/1 is already a struggle by itself, HTTP/2 is much worse with all the new concepts & HPACK etc it added, and then you have HTTP/3 which introduces an entire UDP transport for you to implement. There is no easy part in HTTP if you choose this route.


I'm curious, what other protocols do you have in mind?


WebSocket has a lot less fluff, but you could as well use a raw TCP socket and send JSON payloads over it with your own "protocol", e.g. with an op attribute for the action and an error attribute in responses. Another protocol that comes to mind is Apache Thrift.


Grpc + protobufs?


Lol, GRPC uses HTTP as its transport :'). Try again.


HTTP will never go away. The reason it's so widely used is that browsers are universal -and universally available- clients for arbitrary applications. And on top of that, you can mash multiple sources of content. The latter is also the reason that the web's security model is so awful.


Interesting, I'd say the legacy parts are the actual good things and most of the corporate giga-scale add-ons are what's bad about it, but then again, I'm sure that we get the same for C++, too…


Well, if it were in the same state as C++, that means it manages to let you get things right despite the historical baggage by embracing newer features in the standard.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: