조회가 실패했다고 해서 목적지가 사설 네트워크 밖에 있다는 뜻은 아닙니다. 이는 이번 PAC 평가가 필요한 주소를 얻지 못했다는 것만 뜻합니다.

이 구분은 dnsResolve()가 isInNet() 규칙에 입력될 때 중요합니다. Chromium의 PAC 구현은 확인에 실패하면 null를 반환합니다. 결과가 항상 빈 문자열이라는 기억에 의존해 실패 분기를 만들지 마세요.

function FindProxyForURL(url, host) {
    var address = dnsResolve(host);
    if (!address) {
        return "PROXY proxy.example:8080";
    }
    if (isInNet(address, "10.40.0.0", "255.255.0.0")) {
        return "DIRECT";
    }
    return "PROXY proxy.example:8080";
}

이 예제는 확인되지 않은 이름을 프록시로 보냅니다. 이는 정책 선택이며 보편적으로 안전한 기본값이 아닙니다. 프록시가 클라이언트에 없는 확인자나 네트워크 뷰를 가질 때 유용할 수 있습니다. 로컬 확인이 필요한 네트워크에는 다른 명시적 결과가 필요합니다.

한 번만 확인하고 그 결과를 재사용하세요. 그러면 결정이 하나의 값에 묶이고 느릴 수 있는 도우미 호출을 반복하지 않게 됩니다.

실제 PAC 사용자도 확인하세요. 레거시 IPv4 도우미와 확장 IPv6 도우미는 계약이 다릅니다. 한 브라우저 구현으로 시험한 규칙이 같은 PAC URL을 쓰는 모든 애플리케이션에서의 지원을 보장하지는 않습니다.

요구 사항이 알려진 회사 접미사를 라우팅하는 것뿐이라면 호스트 이름 규칙으로 조회를 완전히 피할 수 있습니다. 주소가 정책에 꼭 필요한 정보일 때만 주소 기반 분류를 사용하세요.

관련 글