A fő webböngészők, beleértve a webmotort is, használt PAC konvenció egy módosított reguláris kifejezés szintaxisa használata. Eddig a pacmanager rendes reguláris kifejezéseket használt az illesztéshez. Megváltoztatjuk a SHExpMatch funkciót, hogy olyan egyezést használjunk, amely hasonló a böngészőkhöz.
Ez a változás azt jelenti, hogy a RooMOS ugyanazokkal a PAC-fájlmérésekkel fog működni, mint a hálózat többi webes kliensével. Előfordulhat, hogy a kifejezetten a RoomOS számára írt PAC fájlokat frissíteni kell, hogy a tervezett módon működjenek.
A PAC fájl értékelése két külön helyen történik a RooMOS szoftverben:
-
Webmotor a saját forgalmához.
-
Pacmanager az összes többi HTTP-forgalomhoz: HTTPFeedback, Webex biztosítás, hívásjelzés stb.
A PAC fájl használhatja ezt a funkciót: SHExpMatch (karakterlánc, minta)
Ha a karakterlánc megegyezik a mintával, az igaz értéket adja vissza, egyébként hamis.
A két konvenció közötti fő különbségeket az alábbiakban soroljuk fel, a „REGEX” hagyományos szabályos kifejezéseket, a „BROWSER” pedig a webböngésző-konvenciót jelenti.
A pontjel, „.”
-
REGEX:. egyetlen karakterhez egyezik, amelyet meg lehet ismételni egy kvantifikátorral
-
BÖNGÉSZŐ:. csak egy szó szerinti pontkarakterrel felel meg
A csillag, „*”:
-
REGEX: * egy nulla vagy több kvantifikátor egy elem után, de önmagában nem egyezik semmivel
-
BÖNGÉSZŐ: * nulla vagy több karakternek felel meg
A kérdőjel, „?” :
-
REGEX:? egy tétel után nulla vagy egy kvantifikátor, vagy módosíthatja a * kvantifikátort úgy, hogy nem kapzsi, de önmagában nem egyezik semmivel
-
BÖNGÉSZŐ:? egyezik egyetlen karakterrel
A teljes kifejezésnek meg kell-e egyeznie:
-
REGEX: A LEADING ^ és a trailing $ használata nélkül a PATTERN nem kell megfelelnie a teljes STRING-nek: Elég, ha a STRING tartalmaz egy alkarakterláncot, amely megfelel.
-
BÖNGÉSZŐ: Mindig kérje, hogy a STRING pontosan illeszkedjen a PATTERN
Példák
Az összes hostnevet a „provider.domain” alatt szeretnénk egyeztetni, de nem az „otherprovider.domain”, „provider.domain.tld” vagy „providersdomain” alatt:
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
A „proxy1.domain”, „proxy2.domain” és így tovább szeretnénk egyeztetni, de nem a „proxytest.domain” -ot:
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
Egyéb források
A PAC fájlformátumról további részletekért lásd: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .