Как один из вариантов борьбы с AI-скрапперами, создающими огромную паразитную нагрузку на сервер, [[https://sheep.horse/2026/3/blocking_http1.1_-_some_results.html предложено]] ограничить доступ к сайту по протоколу HTTP/2 и полностью отключить поддержку HTTP/1.0 и HTTP/1.1. Логика подобного решения в том, что все современные браузеры поддерживают HTTP/2, а боты почти всегда обращаются к сайтам по HTTP/1.1 и пока не пытаются использовать HTTP/2 в случае невозможности отправить запрос на HTTP/1.1. При этом важно учесть, что RSS-ридеры и полезные поисковые боты, такие как Google Bot, также ограничены использованием HTTP/1.1 и для них необходимо сделать исключение.
Пример правил для http-сервера Caddy, возвращающих клиенту ошибку при обращении по HTTP/1:
@http-too-old {
not protocol http/2+
not path /rss.xml /atom.xml # allow rss
# Белый список для поисковых ботов и старых браузеров
not header_regexp User-Agent (?i)(Google-Site-Verification|googlebot|bingbot|duckduckbot|mastodon|^Lynx)
}
example.com {
....
handle @http-too-old {
respond 418
}
}
Пример для nginx:
http {
...
map $server_protocol $is_http2 {
default 0;
"HTTP/2.0" 1;
"HTTP/3.0" 1;
}
map $request_uri $is_rss {
default 0;
~^/(rss\.xml|atom\.xml)$ 1;
}
map $http_user_agent $is_bot {
default 0;
~*Google-Site-Verification 1;
~*googlebot 1;
~*bingbot 1;
~*duckduckbot 1;
~*mastodon 1;
~*^Lynx 1;
}
}
server {
...
if ($is_http2 = 0) {
if ($is_rss = 0) {
if ($is_bot = 0) {
return 418;
}
}
}
}
URL: https://sheep.horse/2026/3/blocking_http1.1_-_some_results.html
Обсуждается: http://www.opennet.dev/tips/info/3295.shtml