Здравствуйте Alex,
>> Никак не пойму, зачем нужно полученное случайное число кодировать?
AT> Чтобы траффик был поменьше. Кука - 16 байт в двоичном представлении.
AT> В base64 - соответственно около 20 байт. Если каждые 4 байта кодировать
AT> 10-ю десятичными цифрами (или 8-ю 16-ричными), то будет 32-40 байт.
AT> Казалось-бы, 20 лишних байт на запрос, но в запросе всего байт 100-200,
AT> то-есть это 10-20 процентов от входящего траффика. Довольно заметная
AT> цифра, если вы платите за входящий.
Согласен, ценнная фича. Сразу не подумал о реалиях России.
>> Ещё, вдогонку...
>> Как декодировать куку к целому числу, например на Perl? Есть для этого
>> модуль? Или пара строчек кода.
AT> Там же base64. Соответственно use MIME::Base64, если лень самому.
AT> Получите 16 байт (4 int) к каждому из которых нужно еще ntohl
AT> применить.
AT> А пара строчек кода на C выдирается прямо из модуля - он же их
AT> раскодирует и в лог пишет в 16-ричном виде.
А почему бы не давать пользователю модуля именно ещё и само число, а
не только закодированную его версию, ведь это удобно тем, кто не пишет
в лог куку, а использует её скажем для записи в mysql базу. Ведь
раскодировать на том же Перле намного дороже по ресурсам, чем в модуле
Апача. Для счётчика Рамблера запись в лог - это наверное оптимально,
но последующий анализ лога всёравно требует раскодирования числа, ибо
запись его в базу много лучше в виде числа 16 байт, а не строки 20
байт.
Хотелось бы верить, что все эти строки выглядят как фича для следующей
версии. :-)
С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster@softsearch.ru
ICQ# 166233339
http://softsearch.ru/
Без бэкапа по жизни.