Mengendalikan kegagalan DNS dalam peraturan PAC
Berikan cabang dasar tersendiri kepada carian DNS PAC yang gagal dan bukannya menganggapnya sebagai alamat disahkan di luar rangkaian tempatan.
Carian yang gagal tidak membuktikan destinasi berada di luar rangkaian peribadi anda. Ia membuktikan bahawa penilaian PAC ini tidak memperoleh alamat yang diperlukannya.
Perbezaan itu penting apabila dnsResolve() menyuap peraturan isInNet(). Pelaksanaan PAC Chromium memulangkan null apabila penyelesaian gagal. Jangan bina cabang kegagalan atas ingatan bahawa hasilnya sentiasa rentetan kosong.
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";
}
Contoh ini menghantar nama yang belum diselesaikan ke proksi. Itu pilihan dasar, bukan lalai selamat sejagat. Ia boleh berguna apabila proksi mempunyai penyelesai atau pandangan rangkaian yang tidak ada pada klien. Rangkaian yang memerlukan penyelesaian tempatan memerlukan hasil eksplisit yang berbeza.
Selesaikan sekali dan guna semula hasilnya. Itu mengekalkan keputusan terikat pada satu nilai dan mengelakkan pengulangan panggilan pembantu yang mungkin perlahan.
Periksa juga pengguna PAC sebenar. Pembantu IPv4 legasi dan pembantu IPv6 lanjutan mempunyai kontrak berbeza. Peraturan yang diuji dengan pelaksanaan satu pelayar tidak membuktikan sokongan dalam setiap aplikasi yang menggunakan URL PAC yang sama.
Jika keperluan hanyalah menghalakan akhiran syarikat yang dikenali, peraturan nama hos boleh mengelakkan carian sepenuhnya. Gunakan pengelasan berasaskan alamat apabila alamat itu maklumat yang benar-benar diperlukan oleh dasar.