Hacker News new | ask | show | jobs
We're leaving Cloudflare – here's why – Pale Moon (forum.palemoon.org)
45 points by Kal2ef 1789 days ago
5 comments

Summary: the author is worried about Brotli compression (like existing gzip but 20% better) for HTTP protocol. Both Firefox and Chrome require HTTPS for Brotli; but Pale Moon authors disagree and enable Brotli even on plain HTTP connections.

Unfortunately, Cloudfare sides with Firefox and Chrome and does not offer Brotli on HTTP, citing old studies of proxies breaking when exposed to Brotli. They are also telling the author to go away in corporate-speak. The author, however, is unsatisfied and asks:

> What is the real (undisclosed to me) reason they won't consider even the possibility of Brotli being enabled for clients who support it? ... I can only conclude there's some agenda here that I'm being kept in the dark about...

Unfortunately, I'll indeed slide with FF and Chroke here, because we attempted a plaintext h2 (that was 2015, where HTTPS awareness are becoming mainstream) and unless you bothered to put it into another port it just unpredictably stops due to proxies mangling it.

In an internal study (in an enterprise level) and assuming this is HTTP/1.1, that some proxies will either cache only brotli and made it inaccesible to gzip-only clients (even when you bothered with Vary, because they're plain broken in that regard) or just barf with it and time-out not only that particular request but crash a proxy.

The problem for large-scale deployment is that there are transparent proxies in Timbuktu (literally) since data is not cheap there, they need to use HTTP proxies to compress that, not to mention dial-up users in the US! (Good luck, Verizon!)

And what could that agenda possibly be? That they really like encryption and think everyone should use it? They haven't exactly been shy about telling people that.

Or is Moonchild suggesting that Cloudflare is specifically trying to damage Pale Moon by not supporting its unique feature of Brotli over HTTP? That seems unlikely, insofar as it would require them to have an opinion one way or the other about a browser that nobody uses.

> We've [...] helped them grow and become known through positive posts, blog entries and the likes. [...] seen/helped them grow to become one of the largest CDNs.

Sounds to me like they overestimate they own importance to CF a bit.

Ah, so it’s just a post about some company with a god complex, complaining.

Nothing to see here.

Thanks for saving a click
Why go to war over something trivial like this? None of the major browsers support http/2 nor Brotli over plain http connections - if not for COVID they probably wouldn’t support plain http connections at all. They were set to depreciate those but held off at the start of the pandemic because so many government sites were still http only. You have to go with flow sometimes. If you want to ask Cloudflare a favor then not re-compressing my highly optimized zopfli source files with standard gzip would be a good one. Passing through the accept-encoding header so I can send my highly compressed brotli responses instead of them repacking my gzip responses would be another. At least the option to select those behaviors if the mom and pops can’t be trusted to do it right.
Is this a case of Cloudflare not honouring/forwarding the content-encoding header?

Maybe there is a limitation in the way their caching works that it cant differentiate between different encodings, and therefore just requests and caches the most commonly supported encoding?

Why would this be different over https? Why isn't https == http + s? When did that break, and why did we let it?

If we don't want doubly-compressed content (for security/superior compression/whatever), surely it should be up to the browser not to request that encoding, rather than baking it in at some other layer?

Like with most other newer web features, browsers largely only allow them with HTTPS to A) push for more HTTPS adoption and also B) ensure that proxies can handle upgrades via ALPN and h2 Negotiations.

Brotli and h2 both will break a lot of proxies in the wild, as well as a bunch of web clients. Moonchild/The Palemoon Team do say that the browsers aren't supported by Google/MS/Apple/Moz but the reality is that while those entities do not support those browsers, Cloudflare does.

So from Cloudflare's perspective, the clients they support are likely to break, especially if they might have more middleboxes. Why would they then enable this feature if that is the case?

Moonchild on the other hand seems to want to make a conspiracy out of it.

I think I simply dont understand what this is all about.

As I understood, this is about CONTENT ENCODING using brotli - i.e. the http response message body is encoded via brotli. Why would this be any different to any other encoding on its impact on proxies?

Of course, brotli compression for the TRANSPORT is another thing. I appreciate that there may be some (non-transparent) proxies, IDS, etc that may choke - but thats not what the author seems concerned with.

It sounds as if cloudflare have disabled brotli content encoding (but just for http?), and are using brotli compressed transport incompatibilities (if you consider not being able to snoop on TLS an incompatibility) as the reason for doing so. The two are completely different things, no?

No this is very much about brotli transport compression, the original post mentions this more than once. I am actually not aware of any single image format that has widespread brotli content compression support (which will probably not be very useful either as most image compression methods use more domain specific algorithms).
The original post doesnt mention it at all, it talks about files being compressed for transfer (but no specifics on the implementation).

There is no transport compression/encoding in HTTP. There is transfer-encoding (which is hop-to-hop) and content-encoding (which is e2e). Both only compress the message body.

It seems you may be confusing content-encoding (e.g. gzip - the message-body encoding) and content-type (e.g. image/jpg - the "domain specific compression" you mention).

There is no transport compression in HTTP? Have you ever heard of Content-Encoding? You seem to be under the impression that this is somehow not a transport compression in some way (it is).

Either way, a brotli encoded HTTP body will cause several issues with proxies and middleboxes, multiple of which have been mentioned in by Cloudflare in their email response.

It makes little difference either way. Pale Moon is a browser, many sites use CF even if Pale Moon chooses not to. Perhaps there's some accelerator feature of Pale Moon that uses their CF CDN but I'm not interested in a minor product that isn't self aware.
i would love to see someone from CF/firefox/chrome team to jump in and share the reason why :)
I wonder if it's as simple as a combo of: http (no s) is essentially going away anyway and they just don't feel like spending engineering effort on even verifying that it won't break anything.
that's a perfectly good reason too.