Live data from Hacker News

HTTP/3 is everywhere but nowhere

httptoolkit.com

131–140 of 504 posts

Re: HTTP/3 is everywhere but nowhere

#131

Earlier quoted context omitted.

A "few extra ms" is up to 3 roundtrips difference, that's easily noticeable by humans on cellular. For all the CPU optimisations we're doing, cutting out a 50ms roundtrip for establishing a HTTP connection feels like a great area to optimize performance.

Isn't 5G supposed to solve the mobile latency issue?

The connection to your local tower can have a negligible latency. The connection all the way to the datacenter may take longer. Then, there is congestion sometimes, e.g. around large gatherings of people; it manifests as latency, too.

Re: HTTP/3 is everywhere but nowhere

#132
The slow adoption of QUIC is the result of OpenSSL's refusal to expose the primitives needed by QUIC implementations that already existed in the wild. Instead, they decided to build their own NIH QUIC stack, which after all these years is still not complete.

Fortunately, this recently changed and OpenSSL 3.5 will finally provide an API for third party QUIC stacks.[1] It works differently than all the other existing implementations, as it's push-based instead of pull-based. It remains to be seen what it means for the ecosystem.

[1] - https://github.com/openssl/openssl/pull/26683

Re: HTTP/3 is everywhere but nowhere

#133
post #29

If you are looking for a reverse proxy with good HTTP/3 support, I recommend Envoy. Configuring it is a bit of a chore, but it feels like it was engineered from first principles to be the best possible HTTP/2 and 3 reverse proxy. The architecture for HTTP is entirely based around the h2 protocol, unlike NGINX which splits requests into various phases and struggles to support things like bidirectional streaming and up…

> and even the h2 implementation feels like it still lacks some battle testing. I think that is a damn shame. Citation needed.

I've run into production bugs with Go HTTP/2 at multiple different jobs. They are now fixed, but I'm personally not confident that those were the last ones. I could look them up and link them if you're actually curious, but I'm not sure that will be convincing, you can obviously link to bug reports for anything and claim it's unstable, I can only speak of my personal experience.

Re: HTTP/3 is everywhere but nowhere

#134

Earlier quoted context omitted.

> side note: sad that .NET and C# are not considered "major I've said it before on here, but the tech community severely underrates .NET today. It's not Windows only (and hasn't been for ~8 years) plus C# is a very nice language. F# is also an option for people who like functional languages. I'd highly recommend giving it a try if you haven't already.

They also severely underrate it's actual usage. For a non "major" language, there sure are a lot of jobs out there. .NET ain't hip.

.NET ain’t hip because many of the shops that use it are dinosaurs in processes and culture.

Re: HTTP/3 is everywhere but nowhere

#135
post #29

If you are looking for a reverse proxy with good HTTP/3 support, I recommend Envoy. Configuring it is a bit of a chore, but it feels like it was engineered from first principles to be the best possible HTTP/2 and 3 reverse proxy. The architecture for HTTP is entirely based around the h2 protocol, unlike NGINX which splits requests into various phases and struggles to support things like bidirectional streaming and up…

Why not Traefik?

Good question! I have nothing against Traefik. I just haven't used it as much, whereas with Envoy I've both used it and contributed to it a little bit too.

Re: HTTP/3 is everywhere but nowhere

#136

Earlier quoted context omitted.

> side note: sad that .NET and C# are not considered "major"... Even Microsoft does not use C# for their new projects. See the new TypeScript compiler that is being rewritten in Go. So I think it is safe to say C# is indeed a minor language.

> So I think it is safe to say C# is indeed a minor language That's not really the case; StackOverflow survey[0] shows C# (27.1%) right behind Java (30.3%) and well ahead of Go (13.5%), Rust (12.6%), Kotlin (9.4%), Ruby (5.2%), and Scala (2.6%). If we exclude HTML/CSS, Bash/Shell, and SQL, C# would be #5 in actual languages used over the past year by devs in this survey. You get the same result from scraping job post…

I’ve never filled out a stack overflow survey. I wouldn’t say Stack Overflow is statistically representative what’s being used — it’s statistically representative of people that use Stack Overlow. 10 years ago SO was my go-to. Now, I barely notice it — it seems very outdated in many respects.

Re: HTTP/3 is everywhere but nowhere

#137

Earlier quoted context omitted.

If your code does not rely on native libraries, or you're fine with shipping multiple copies for different operating systems, a single build works everywhere with dotnet installed. Or you can cross-compile and run without having dotnet on the target system, I do it from Linux to all three platforms all the time, it's pretty seamless. The application can be packaged into a single binary (similar to Go), or as a bunch…

How do you cross compile from linux to macos?

  dotnet publish -r osx-x64 --self-contained
https://learn.microsoft.com/en-us/dotnet/core/deploying/#pub...

Re: HTTP/3 is everywhere but nowhere

#138
post #83

Earlier quoted context omitted.

I never understood SO as a measurement tool for anything, but people that can't read docs.

You have to have some metrics from somewhere to be able to understand which languages are being used. SO is one data point, but there are certainly others.

GitHub is probably a better source. SO is self selecting for people asking questions about something, not actually using it. A “harder” thing might have more SO questions, so it isn’t representative of actual usage.

Re: HTTP/3 is everywhere but nowhere

#139

> At the same time, neither QUIC nor HTTP/3 are included in the standard libraries of any major languages including Node.js, Go, Rust, Python or Ruby. .NET actually looking like it has decent support for any teams that are interested[0] (side note: sad that .NET and C# are not considered "major"...). There is an open source C library that they've published that seems rather far along[1] Support for Windows, Linux[2],…

Indeed. And I would think you can use Microsoft's free reverse proxy, YARP, in front of an app (on any platform) that doesn't natively support HTTP/3?

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/s...

Re: HTTP/3 is everywhere but nowhere

#140
post #105
post #77

Earlier quoted context omitted.

Yea, but does the kernel then also do certificate validation for you? Will you pin certs via setsockopt? I think QUIC and TLS are wide enough attack surfaces to warrant isolation from the kernel.

The problem is that the situation where everyone rolls their own certificate stack is lunacy in this day and age. We need crypto everywhere, and it should be a lot easier to configure how you want: the kernel is a great place to surface the common interface for say "what certificates am I trusting today?" The 10+ different ways you specify a custom CA is a problem I can't wait to see the back of.

It's a good thing for a OS to provide, that doesn't mean it needs to be in the kernel.
Post reply on HN