การจัดการความล้มเหลวของ DNS ภายในกฎ PAC
ให้การค้นหา PAC DNS ที่ล้มเหลวมีกิ่งนโยบายของตนเอง แทนที่จะถือเป็นที่อยู่ที่ตรวจสอบแล้วนอกรีโคว์ท้องถิ่น
การค้นหาที่ล้มเหลวไม่ได้พิสูจน์ว่าปลายทางอยู่นอกรีโคว์ส่วนตัวของคุณ แต่พิสูจน์ว่าการประเมิน PAC ครั้งนี้ไม่ได้รับที่อยู่ที่ต้องการ
ความแตกต่างนี้สำคัญเมื่อ dnsResolve() ป้อนกฎ isInNet() การทำงาน PAC ของ Chromium จะคืนค่า 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 เดียวกัน
หากความต้องการเพียงแค่กำหนดเส้นทางคำต่อท้ายบริษัทที่รู้จัก กฎชื่อโฮสต์อาจหลีกเลี่ยงการค้นหาได้ทั้งหมด ใช้การจำแนกตามที่อยู่เมื่อที่อยู่เป็นข้อมูลที่นโยบายต้องการจริง ๆ