Suurimpien verkkoselainten, mukaan lukien Web-moottori, käyttämä PAC-käytäntö on käyttää muokattua säännöllisen lausekkeen syntaksia. Tähän asti, pacmanager on käyttänyt tavallisia säännöllisiä lausekkeita sovittamiseen. Muutamme ShexpMatch-toimintoa käyttämään vastaavuutta, joka on samanlainen kuin selaimet.
Tämä muutos tarkoittaa, että RoomOS toimii samojen PAC-tiedostojen vastaavuuksien kanssa kuin muut verkon verkkoasiakkaat. Erityisesti RoomOS:lle kirjoitetut PAC-tiedostot on ehkä päivitettävä, jotta ne toimivat suunnitellusti.
PAC-tiedoston arviointi tehdään kahdessa erillisessä paikassa RoomOS-ohjelmistossa:
-
Web-moottori omalle liikenteelleen.
-
Pacmanager kaikelle muulle HTTP-liikenteelle: HttpFeedback, Webex-käyttöönotto, puhelun signalointi ja niin edelleen.
PAC-tiedosto voi käyttää tätä toimintoa: SHEXPmatch (merkkijono, kuvio)
Se palauttaa true, jos merkkijono vastaa kuviota, muuten false.
Tärkeimmät erot näiden kahden käytännön välillä on lueteltu alla, ”REGEX” tarkoittaa perinteisiä säännöllisiä lausekkeita ja ”BROWSER” tarkoittaa verkkoselainkäytäntöä.
Pistemerkki, ”.”
-
REGEX:. vastaa yhtä merkkiä, joka voidaan toistaa kvantifioijalla
-
SELAIN:. vastaa vain kirjaimellista pistemerkkiä
Tähti, ”*”:
-
REGEX: * on nolla tai enemmän kvantifioija kohteen jälkeen, mutta ei vastaa mitään yksinään
-
SELAIN: * vastaa nollaa tai useampaa merkkiä
Kysymysmerkki, ”?” :
-
REGEX:? on nolla- tai ykköskvantiaattori kohteen jälkeen, tai voi muokata *-kvantifioijaa ei-ahneeksi, mutta ei vastaa mitään yksinään
-
SELAIN:? vastaa yhtä merkkiä
Täytyykö koko lausekkeen täsmää:
-
REGEX: Ilman johtavan ^- ja loppuosan $ käyttöä, PATTERIN ei tarvitse vastata koko STRING-merkkijonoa: Riittää, että STRING sisältää vastaavan alijonon.
-
SELAIN: Vaadi aina, että STRING sovitetaan tarkasti kuvion mukaan
Esimerkkejä
Haluamme yhdistää kaikki isäntänimet kohdassa ”provider.domain”, mutta emme ”otherprovider.domain”, ”provider.domain.tld” tai ”providersdomain”:
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
Haluamme yhdistää ”proxy1.domain”, ”proxy2.domain” ja niin edelleen, mutta emme ”proxytest.domain”:
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
Muut resurssit
Lisätietoja PAC-tiedostomuodosta on osoitteessa: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .