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 터널 기능과도 분리해 둡니다.