اتفاقية PAC المستخدمة من قبل متصفحات الويب الرئيسية ، بما في ذلك محرك الويب ، هي استخدام بنية التعبير العادية المعدلة. حتى الآن، استخدم pacmanager التعبيرات العادية العادية للمطابقة. نعمل على تغيير وظيفة shExpMatch لاستخدام وظيفة مطابقة مشابهة للمستعرضات.

يعني هذا التغيير أن RoomOS سيعمل مع نفس ملفات PAC التي يتطابقها عملاء الويب الآخرون في الشبكة. قد تحتاج ملفات PAC المكتوبة خصيصًا من أجل RoomOS إلى التحديث للاستمرار في العمل على النحو المنشود.

يتم تقييم ملف PAC في مكانين منفصلين في برنامج RoomOS:

  • محرك الويب لحركة المرور الخاصة به.

  • مدير الحزم لكل حركة مرور HTTP الأخرى: HttpFeedback وتوفير Webex وإشارات المكالمات وغيرها.

يمكن لملف PAC استخدام هذه الوظيفة: shExpMatch(سلسلة، نمط)

ترجع صحيح إذا كانت السلسلة تطابق النمط، false بخلاف ذلك.

يتم سرد الاختلافات الرئيسية بين الاتفاقيتين أدناه، مع "REGEX" التي تعني التعبيرات العادية التقليدية و"BROWSER" التي تعني اتفاقية متصفح الويب.

علامة النقطة، "."

  • REGEX: . يتطابق مع حرف واحد ، والذي يمكن تكراره بمقام كمي

  • المستعرض: . يطابق فقط حرف نقطة حرفي

النجمة "*":

  • REGEX: * هو مقياس كمي صفري أو أكثر بعد عنصر، لكنه لا يتطابق مع أي شيء من تلقاء نفسه

  • المستعرض: * لا يتطابق مع أي حروف أو أكثر

علامة السؤال "؟":

  • REGEX: ؟ هو مقياس كمي صفري أو واحد بعد عنصر ، أو يمكنه تعديل مقياس كمي * ليكون غير جشع ، لكنه لا يطابق أي شيء من تلقاء نفسه

  • المستعرض: ؟ يتطابق مع حرف واحد

فيما إذا يجب أن يتطابق التعبير بالكامل:

  • ريجكس: دون استخدام البادئة ^ والزائدة $، لا يحتاج النمط إلى مطابقة السلسلة بأكملها: يكفي أن تحتوي السلسلة على سلسلة فرعية تتطابق.

  • المستعرض: اطلب دائمًا مطابقة السلسلة تمامًا بالنمط

الأمثلة

نود مطابقة جميع أسماء المضيفين تحت "provider.domain"، ولكن ليس "other provider.domain" أو "provider.domain.tld" أو "providersdomain":

ريجكس:

 shExpMatch(url، "^.*\\.provider\\.domain$") 

المستعرض:

 shExpMatch(url، "*.provider.domain") 

نريد أن نطابق "proxy1.domain" و"proxy2.domain" وما إلى ذلك، ولكن ليس "proxytest.domain":

ريجكس:

 shExpMatch(url، "^proxy.\\.domain$") 

المستعرض:

 shExpMatch(url, "proxy?.domain") 

الموارد الأخرى

لمزيد من التفاصيل حول تنسيق ملف PAC، راجع: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .