Blocking HTTP1.1

16 points by carlana


apropos

See also: Mark McBride's article on this from a few months ago.

Please don't do this!! HTTP/1.1 is not an obsolete standard by any means.

The naming of the HTTP/2 and HTTP/3 protocols is a little unfortunate in this regard -- they are not a strict improvement over HTTP/1.1. Compared to HTTP/1.1, HTTP/2 a) fixes one security issue and b) improves performance. That's it. And it does so at the cost of an substantial increase in complexity. A worryingly substantial increase in complexity in the HTTP/3 case, which has... one? serious implementation. HTTP/2 and HTTP/3 are standards made by and for corporations and they assume corporate resources. (An excellent article discussing this is HTTP/3 is everywhere but nowhere.)

The proper approach would be to block HTTP 1.1 traffic only from suspicious user agents -- the Caddy rules given in this post are far too strict. You want a blacklist, not a whitelist! You want to block Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0 who's suspiciously-also on HTTP/1.1, you don't want to block curl/8.4.0 (HobbyistDeveloper413) who's understandably on HTTP/1.1. Of course, this means you have to update this as bots correctly identify themselves, but my understanding is the majority of web scraper bots are trying to impersonate legitimate traffic.

Anyway. This vein of posts annoys me more than it should because I value the open internet, and see the accessibility and ease of implementation of HTTP/1.1 as part of this. It sucks that tech corporations are continuously and blatantly violating the social agreement of the internet now -- rip robots.txt -- but blocking heuristically at the protocol level isn't right. Think of the long tail.

xq

Please do not block HTTP/1 on your sites.

You're making it much, much harder for people building their own infrastructure, like custom browsers, https-remover gateways for legacy systems, ...

It basically forces people to use major browsers instead of potentially small or selfmade stuff.

My OS would not be able to visit your site at all, as HTTP2 is resource hungry.

Also smaller embedded clients like ESP32s would not be able to query web data.