O interogare eșuată nu demonstrează că destinația este în afara rețelei dumneavoastră private. Demonstrează doar că această evaluare PAC nu a obținut adresa de care avea nevoie.

Această distincție contează când dnsResolve() alimentează o regulă isInNet(). Implementarea PAC din Chromium returnează null când rezolvarea eșuează. Nu construiți ramura de eroare pe amintirea că rezultatul este întotdeauna un șir gol.

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";
}

Acest exemplu trimite numele nerezolvate către proxy. Este o alegere de politică, nu o valoare implicită sigură universală. Poate fi utilă când proxy-ul are un resolver sau o vedere a rețelei pe care clientul nu o are. O rețea care cere rezolvare locală are nevoie de un rezultat explicit diferit.

Rezolvați o singură dată și reutilizați rezultatul. Astfel decizia rămâne legată de o singură valoare și se evită repetarea unor apeluri auxiliare care pot fi lente.

Verificați și consumatorul PAC real. Funcțiile auxiliare IPv4 vechi și funcțiile auxiliare IPv6 extinse au contracte diferite. O regulă testată cu implementarea unui singur browser nu dovedește suportul în fiecare aplicație care folosește același URL PAC.

Dacă cerința este doar rutarea unui sufix de firmă cunoscut, o regulă pe nume de gazdă poate evita complet interogarea. Apelați la clasificarea pe bază de adresă atunci când adresa este informația de care politica are cu adevărat nevoie.

Articole similare