إن اصطلاح PAC المستخدم من قبل متصفحات الويب الرئيسية، بما في ذلك محرك الويب، هو استخدام صيغة تعبير عادي معدلة. حتى الآن، استخدم pacmanager التعبيرات العادية العادية للمطابقة. نحن بصدد تغيير وظيفة ShexpMatch لاستخدام مطابقة مشابهة للمتصفحات.
يعني هذا التغيير أن RoomOS سيعمل مع نفس ملفات PAC المتطابقة مثل عملاء الويب الآخرين في الشبكة. قد تحتاج ملفات PAC المكتوبة خصيصًا لـ RoomOS إلى التحديث لمواصلة العمل على النحو المنشود.
يتم تقييم ملف PAC في مكانين منفصلين في برنامج RoomOS:
-
محرك ويب لحركة المرور الخاصة به.
-
Pacmanager لجميع حركة مرور HTTP الأخرى: HttpFeedback وتوفير Webex وإشارات المكالمات وما إلى ذلك.
يمكن لملف PAC الاستفادة من هذه الوظيفة: ShexpMatch (سلسلة، نمط)
تُرجع القيمة true إذا كانت السلسلة تتطابق مع النمط، أو تكون false بخلاف ذلك.
يتم سرد الاختلافات الرئيسية بين الاتفاقيتين أدناه، حيث تعني كلمة «REGEX» التعبيرات العادية التقليدية و «BROWSER» تعني اصطلاح متصفح الويب.
علامة النقطة، «.»
-
REGEX:. يطابق حرفًا واحدًا يمكن تكراره باستخدام محدد الكمية
-
BROWSER:. يطابق فقط حرف نقطي حرفي
النجمة، «*»:
-
REGEX: * هو محدد كمي بمقدار صفر أو أكثر بعد العنصر، ولكنه لا يطابق أي شيء بمفرده
-
المتصفح: * يطابق صفر حرف أو أكثر
علامة الاستفهام، «؟» :
-
REGEX:؟ هو مُحدد كمي بمقدار صفر أو واحد بعد العنصر، أو يمكنه تعديل المُحدد الكمي * ليكون غير جشعًا، ولكنه لا يطابق أي شيء بمفرده
-
المتصفح:؟ يطابق حرفًا واحدًا
ما إذا كان يجب أن يتطابق التعبير بأكمله:
-
REGEX: بدون استخدام السطر الأول ^ واللاحق $، لا يحتاج النمط إلى مطابقة السلسلة بأكملها: يكفي أن تحتوي السلسلة على سلسلة فرعية متطابقة.
-
المتصفح: اطلب دائمًا مطابقة STRING تمامًا بالنمط
أمثلة
نريد مطابقة جميع أسماء المضيفين ضمن «provider.domain»، ولكن ليس «otherprovider.domain» أو «provider.domain.tld» أو «providersdomain»:
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
نريد مطابقة «proxy1.domain» و «proxy2.domain» وما إلى ذلك، ولكن ليس «proxytest.domain»:
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
موارد أخرى
لمزيد من التفاصيل حول تنسيق ملف PAC، راجع: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .