Welcome! Log In Create A New Profile

Advanced

$args - сделать нормализованным

June 09, 2015 09:10AM
Есть нормализованная переменная $uri, но нет нормализованной $args, но она реально нужна, попробую объяснить.

Наш ключ к кешу и REQUEST_URI к бекенду = $uri$is_args$args, нормализованный $uri очень удобен, но не нормализованный $args создает проблемы - дубликаты в кеше и флуд на бекенд.

Например в наших логах, есть такие запросы:
/?id=1&id=100
/?id=2&id=100
/?id=3&id=100

Как видите, перемененная id указанна два раза, в РНР будет значения $_GET["id"] = 100, эти запросы генерят боты, возможно это оплаченный HTTP флуд, все эти запросы идут на бекенд, отрабатывается бизнес логика по id=100, кеш пухнет, бекенд нагружен флудом.
Сейчас мы на бекенде нормализуем QUERY_STRING и делаем редирект, но правильней если бы ответ брался из кеша Nginx, для этого нужно чтобы в ключе кеша был нормализованный $args.

Кроме ботов, есть ещё много случаев, например разный способ юрл кодировки
/?q=мир+май
/?q=мир%20;май
/?q=мир май // UTF-8

Разная последовательность одинаковых параметров:
/?sort=desc&filter=price
/?filter=price&sort=desc
/?filter=price&sort=desc&

Это все уменьшает эффективность кеша.
Будет очень полезно если $args станет нормализованным, а в $query_string оставить первоначальное значения, тогда каждый сможет использовать то что ему нужно.

Спасибо.
Subject Author Posted

$args - сделать нормализованным

S.A.N June 09, 2015 09:10AM

Re: $args - сделать нормализованным

Evgeny Kokovikhin June 09, 2015 09:28AM

Re: $args - сделать нормализованным

S.A.N June 09, 2015 09:36AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 319
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready