Håndtere DNS-feil inne i en PAC-regel
Gi et mislykket PAC-DNS-oppslag sin egen policygren i stedet for å behandle det som en bekreftet adresse utenfor det lokale nettet.
Et mislykket oppslag beviser ikke at målet ligger utenfor ditt private nett. Det beviser at denne PAC-evalueringen ikke fikk adressen den trengte.
Forskjellen betyr noe når dnsResolve() mater en isInNet()-regel. Chromiums PAC-implementasjon returnerer null når oppslaget feiler. Ikke bygg feilgrenen på minnet om at resultatet alltid er en tom streng.
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";
}
Dette eksemplet sender uoppslåtte navn til proxyen. Det er et policyvalg, ikke en universelt trygg standard. Det kan være nyttig når proxyen har en resolver eller et nettverksbilde klienten ikke har. Et nettverk som krever lokal oppslag trenger et annet eksplisitt utfall.
Løs opp én gang og gjenbruk resultatet. Det holder beslutningen knyttet til én verdi og unngår å gjenta potensielt trege hjelpekall.
Sjekk også den faktiske PAC-forbrukeren. Eldre IPv4-hjelpere og utvidede IPv6-hjelpere har ulike kontrakter. En regel som er testet med én nettlesers implementasjon, beviser ikke støtte i alle applikasjoner som bruker samme PAC-URL.
Hvis kravet bare er å rute et kjent bedriftssuffiks, kan en vertsnavnregel unngå oppslaget helt. Bruk adressebasert klassifisering når adressen er informasjon som policyen virkelig trenger.