AnyEvent::HTTP: окремі проксі-маршрути через sessionid
Використовуйте явний проксі AnyEvent::HTTP та ідентифікатор сеансу, коли кілька проксі-маршрутів ведуть до однієї мети.
У AnyEvent::HTTP 2.25 багаторазове з'єднання може отримати перевагу, навіть якщо його створено за інших налаштувань проксі. Коли запити до одного сайту йдуть різними маршрутами, розділяйте кеш значеннями sessionid, специфічними для маршруту:
my $request = http_get 'http://www.example.com/',
proxy => ['proxy.example', 8080],
sessionid => 'office-route',
sub {
my ($body, $headers) = @_;
print $headers->{Status};
};Включіть у цю ідентичність сеансу будь-яке розрізнення облікових записів, потрібне програмі. Повторне використання обмежене збіжними сеансами. Якщо потрібне нове з'єднання, натомість задайте persistent як false.
Для показаної публічної адреси HTTP список HTTP-проксі може надати кандидатні значення хоста й порту, коли дозволено публічний маршрут без автентифікації. Фрагмент припускає, що AnyEvent::HTTP завантажено і його цикл подій працює. Тримайте сторож запиту живим до завершення; його знищення скасовує операцію.
Масив проксі приймає ім'я хоста, порт і необов'язкову схему HTTP, а не URL з обліковими даними. Автентифікація потребує відповідного заголовка Proxy-Authorization, наданого викликачем. Цей простий приклад HTTP тримає маршрутизацію та власність з'єднання окремо від будь-якої можливості тунелю HTTPS.