While HTTP/3 adoption is statistically significant, widespread client support is deceptive. Many clients only enable it opportunistically, often falling back to HTTP/1.1 due to middleboxes interfering with QUIC. This means real-world HTTP/3 usage is lower than reported, hindering developers' ability to rely on it and slowing down the transition. Further complicating matters, open-source tooling for debugging and developing with HTTP/3 severely lags behind, creating a significant barrier for practical adoption and making it challenging to identify and resolve issues related to the new protocol. This gap in tooling contributes to the "everywhere but nowhere" paradox of HTTP/3's current state.
The blog post argues that implementing HTTP/2 within your internal network, behind a load balancer that already terminates HTTP/2, offers minimal performance benefits and can introduce unnecessary complexity. Since the connection between the load balancer and backend services is typically fast and reliable, the advantages of HTTP/2, such as header compression and multiplexing, are less impactful. The author suggests that using a simpler protocol like HTTP/1.1 for internal communication is often more efficient and easier to manage, avoiding potential debugging headaches associated with HTTP/2. They contend that focusing optimization efforts on other areas, like database queries or application logic, will likely yield more substantial performance improvements.
Hacker News users discuss the practicality of HTTP/2 behind a load balancer. Several commenters agree with the article's premise, pointing out that the benefits of HTTP/2, like header compression and multiplexing, are most effective on the initial connection between client and load balancer. Once past the load balancer, the connection between it and the backend servers often involves many short-lived requests, negating HTTP/2's advantages. Some argue that HTTP/1.1 with keep-alive is sufficient in this scenario, while others mention the added complexity of managing HTTP/2 connections behind the load balancer. A few users suggest that gRPC or other protocols might be a better fit for backend communication, and some bring up the potential benefits of HTTP/3 with its connection migration capabilities. The overall sentiment is that HTTP/2's value diminishes beyond the load balancer and alternative approaches may be more efficient.
Summary of Comments ( 121 )
https://news.ycombinator.com/item?id=43360251
Hacker News commenters largely agree with the article's premise that HTTP/3, while widely available, isn't widely used. Several point to issues hindering adoption, including middleboxes interfering with QUIC, broken implementations on both client and server sides, and a general lack of compelling reasons to upgrade for many sites. Some commenters mention specific problematic implementations, like Cloudflare's early issues and inconsistent browser support. The lack of readily available debugging tools for QUIC compared to HTTP/2 is also cited as a hurdle for developers. Others suggest the article overstates the issue, arguing that HTTP/3 adoption is progressing as expected for a relatively new protocol. A few commenters also mentioned the chicken-and-egg problem – widespread client support depends on server adoption, and vice-versa.
The Hacker News post "HTTP/3 is everywhere but nowhere" generated a moderate number of comments, discussing the challenges and current state of HTTP/3 adoption. Several commenters offered insights based on their own experiences.
One of the more compelling threads revolved around the complexity of QUIC, the underlying protocol for HTTP/3. One user highlighted the inherent difficulty in implementing QUIC correctly, suggesting this contributes to the slower-than-expected rollout. They mentioned that even large companies with significant resources are struggling with proper implementation, leading to interoperability issues. This was echoed by another commenter who pointed to the frequent updates and revisions to the QUIC specification as a major obstacle, making it a moving target for developers.
Another point of discussion focused on the practical benefits of HTTP/3. While acknowledging the theoretical advantages, some commenters questioned the tangible improvements for average users, particularly on stable networks. They argued that in many scenarios, the performance gains are marginal and don't justify the added complexity. This sparked a counter-argument that the real benefits of HTTP/3 are more apparent in challenging network conditions, such as mobile networks with high latency and packet loss, where its head-of-line blocking resistance shines. One user specifically mentioned improved performance with video streaming in these scenarios.
The role of middleboxes, like firewalls and NAT devices, also came up. Several commenters pointed out that these middleboxes can sometimes interfere with QUIC traffic, leading to connection issues. This is due to the fact that QUIC operates over UDP, which is often treated differently by network infrastructure compared to TCP. This can necessitate workarounds and configuration changes, adding to the deployment challenges.
Finally, there was discussion about the tooling and debugging support for HTTP/3. Commenters highlighted the relative lack of mature tools compared to those available for HTTP/1.1 and HTTP/2, making it harder to diagnose and resolve issues. This contributes to the perception of HTTP/3 as being complex and difficult to work with.
While there was general agreement that HTTP/3 is the future of web protocols, the comments reflected a realistic view of the current state of adoption. The complexity of QUIC, the need for better tooling, and the challenges posed by existing network infrastructure were identified as key hurdles to overcome.