A project to bring HTTP/2 to the CloudFoundry application development platform ran into a roadblock when the keepers of the Go Language did not respond to requests, with sufficient swiftness anyway, for supporting the HTTP/2 over TCP “upgrade flow” process.
As a result, the Cloud Foundry Go Router reverse proxy removes headers that would let a CF application know it can send and receive HTTP/2 traffic. Such capability could be coded in, bypassing the Go language library entirely, but the project team doesn’t want to take on the responsibility for supporting such a potentially widely-used function.
Carson Long, a software engineer for VMware Tanzu, the company’s Kubernetes distribution, spoke about this challenge at this year’s virtual Cloud Foundry Summit held earlier this month.
Faster in Bundles
Launched in 2015 to expedite web traffic, the HTTP/2 has become one of the most requested developer features (alongside gRPC). It speeds web traffic by breaking traffic into binary-encoded frames which can then be multiplexed within a single TCP connection. About 45% of the top websites support HTTP/2, as do all the major browsers.
Long is part of a team to bring HTTP/2 to Cloud Foundry. This involves ensuring HTTP/2 is supported at each step, including load balancers (surprisingly difficult given the variety of load balancers), and the Cloud Foundry Go Router itself (with an addition of two lines of code).
But the most difficult compatibility change, however, turned out to be in checking if the end application, built on Cloud Foundry, can recognize HTTP/2 traffic. HTTP/2 relies on mTLS for encryption, which is terminated in Cloud Foundry not by the app itself but rather by the Envoy proxy. This means that Envoy also talks directly with Transport Layer Security (TLS) Application-Layer Protocol Negotiation (ALPN) to determine whether HTTP/2 can be used or not.
When it terminates the mTLS, Envoy then sends the packet payload, now in plain text, to the application using another protocol, HTTP/2 over TCP (H2C).
“The problem we quickly ran into was how do we determine if the server or app actually accepts HTTP/2. There’s no way of knowing in this situation, so clearly this we can’t just forward HTTP/2 every time,” Long noted. An app that only accepts HTTP/1 will just drop HTTP/2 packets and the client would never find out.
The good news is is that H2C comes with an upgrade flow, in which the app is asked, through a few extra headers, if it accepts HTTP/2. If an affirmative response is given then HTTP/2 packets can be sent.
The team ran into a problem, however, in that the Go Standard library does not support the H2C upgrade flow. They filed a request in GitHub, Long said. “We pretty much got no response from the GoLang team,” Long said. “That was not encouraging and pretty much put a stop to this upgrade flow.”
The issue, submitted in May, is currently marked as “under investigation” by the GoLang maintainers.
Until the issue is resolved, the development team is looking at a number of different options.
They have written a “health check,” a separate H2C process that would run once to determine if the app supports HTTP/2 and if so, would continue to send HTTP/2 packets. Another option would be for the app itself to alert the Go Router that it can accept HTTP/2 traffic through a manifest entry. A third option, the one currently being pursued, is to set up “routing destinations” to communicate between the Go Router and the CF app.
In the meantime, the team has written its own HTTP/2 detection code (internally dubbed “H2 Awesome”) as a prototype, which Long demonstrates in a demo following the presentation.
Cloud Foundry and VMware are sponsors of The New Stack.
Feature image par Hans Braxmeier de Pixabay.
Source of this news: https://thenewstack.io/cloud-foundry-http-2-support-thwarted-by-golang-indifference/
Related posts:
@media screen and (min-width: 1201px) .mxopz6183d7253d1e5 display: none; @media screen combined with (min-width: 993px) and (max-width: 1200px) .mxopz6183d7253d1e5 display: none; @media monitor and ...
@scrapingdogmanthanFounder of makcorps.com, scrapingdog.com & flightapi.ioIn this post, we are going to learn web scraping with python. Using python we are going to Scrape websites like Walmart, ...
Telegram is a very popular messaging app right now and has managed to become the most downloaded non-gaming app for January 2021, according to Sensor Tower. The app saw 63 million downloads in Januar...
News Microsoft Defender for Endpoint Preview Bringing Perks for Windows Server 2012 R2 and Windows Server 2016 Users By Kurt Mackie10/08/2021 Microsoft this week announced a "revamped solution s...
News and research before you hear about it on CNBC and others. Claim your 1-week free trial to StreetInsider Premium here. UNITED STATES SECURITIES AND EXCHANGE COMMISSION Washington, D.C. 20549 ...
These efforts are given a hand to by the fact that four during the eight Vaccine Hunters — Peterson, Maisie Lynch, Kathleen Bartels, Courtney Mason, Dina Ciccone, Tanya Aguilar, Becky Taylor and ...
Progress today announced the availability of Progress Telerik Fiddler Jam, designed to provide clients with a troubleshooting solution concerning support and development coaches and teams to ad...
Marcus Stroman‘s recent skid continued in an alarming 6-2 loss to the Pirates on Saturday at Citi Field. Playing at an All-Star caliber level, Stroman has been a key cog in a Mets rotation that has ...
Today, NuCypher showed record growth one day – 590%: from a minimum of rate of $ 0. 290181 to a new ATH of $ 2 . 61. NuCypher is a layer attached to encryption and data insurance for Ethereum an...
A previously unknown malware family dubbed FontOnLake is targeting systems running Linux, ESET researchers found. FontOnLake uses "custom and well-designed modules, " malware analyst Vladisla...
Atomos often is previewing Cloud Studio, the most current cloud-based workflow for livestreamers, filmmakers, and content producers, at NAB 2022. The marriage between Atomos and Mavis has a...
Its administrator of your personal reports will be Threatpost, Inc., 60 Unicorn Park, Woburn, EPPURE 01801. Detailed information on some processing of personal data is in the privacy policy . I...
Cybersecurity researchers have detailed a new campaign that likely targets entities in Southeast Asia with a previously unrecognized Linux malware that's engineered to enable remote access to i...
Rumors of a Half-Life 2 remaster and a God of War PC plug-in started spreading on Saturday after the contents of an -nvidia database leaked. Don’t achieve too excited, though: Nvidia says the ...
reader remarks 63 with 46 posters joining Percentage this story Almost exactly a year ago, surveillance researchers uncovered one of the worst document breaches during modern ...
Netflix has a lot of libraries to offer but, there is only one problem – the library varies from country to country. Netflix content differs based on regions and so do prices. So how can we access US...
What are the most frequently made errors when people use social media proxies?The answer is straightforward — these individuals frequently make mistakes when selecting the best social media proxy.Tab...
Whether they want to or not, Managed Service Providers (MSPs) are being forced to pick up more and more security functions. An endless stream of malware attacks followed by the recent rash of ransomw...