Sziasztok!
Kérdéseim a service worker-ekre szólna:
1. Hogyan lehet monitorozni a hálózati kommunikációt? (nav online számlánál látom pl hogy így megy)
2. Mennyire aggályos egy ilyen api? pl hogy húzom az egeret stb. felvétele böngészővel.. kicsit kémkedésnek vélem
3. valahogy leölni? oké megértem letöltödik egy keretrendszer a böngészőbe, de majd ha én akarom akkor kommunikáljon
Köszönöm.
- 360 megtekintés
Hozzászólások
AFAIK csak akkor indul a service worker amikor rámész az oldalra. Nem örökké fut és csak korlátozottan látja a világot. Monitorozni egy proxin keresztül lehet, de https esetén csak titkosított folyamot látsz. MITM Rootcertet telepítve a böngészőbe speckó proxival meg lehet nézni a forgalmat: tanulságos service workertől függetlenül is.
- A hozzászóláshoz be kell jelentkezni
Nemrég próbáltam vele küzdeni... nekem határozottan úgy maradt meg, hogy a service worker az a háttérben fut. A sima worker nem.
Ellenben service worker-t nem installál a böngésző kérdés nélkül (szép is lenne).
https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API
- A hozzászóláshoz be kell jelentkezni
Pont nemrég nézegettem, egy példát is összeraktam vele. Amit tud:
* Egy külön kontextusban futó JS program a fő programtól. Egy rakás dolgot nem ér el. Péládul nem tud időzítőt indítani sem (ha jól emlékszem): így nem tud a háttérben futva maradni.
* Lényegében az oldallekérés eseményeket tudja elkapni. Ezeket vagy módosítás nélkül továbbengedi, vagy cache-ből kiszolgálja, vagy furmányos módon akkor adja cache-ből, ha a távoli változat nem elérhető.
* A saját cache-ét tudja frissíteni, létre tudja hozni: ez letöltéseket indít a netről ugye, amiket eltárol. Ráadásul atomi módon: csak akkor tér át a resource-ok új változatára, amikor az összes lejött. Így lényegében alkalmazás upgrade logikát lehet írni benne könnyen.
* Nincs értelme ennek az oldal élettartamán kívül futni (esetleg csak a már elindított háttérletöltések befejezésének). Talán valahol írják is explicit, hogy ha az adott origin összes példánya bezárult, akkor a service worker is leáll. És az újranyitáskor kinyit.
* Védelem annyi van, hogy secure connection esetén enged csak Service Workert telepíteni (mert ha egyszer települ egy oldalra egy rosszindulatú service worker, az onnantól örökre meg tudja az adott oldal tartalmát hamisítani). Viszont engedélyezni IMHO a usernek nem kell. LEgalábbis nem emlékszem rá.
* Debuggolni Firefox alatt elég szar (volt nekem), mert nem vizualizálja szinte egyáltalán. (Olyat csináltam, hogy post üzenetekben a szerverre loggol, úgy tudtam némileg haladni, de nagyon lábbalhajtós volt.) A Chromium-ba tettek egy külön fület, ahol a Service Workert nyomon lehet követni (Application fül alatt, ha jól emlékszem).
* Teljesen offline is működő alkalmazást lehet csinálni vele. Az indulása is gyors lehet, mert minden erőforrás helyből jön le. Az adatokat vagy ő cache-elheti, vagy kliens oldali tárolás API-val lehet kombinálni (pl indexedDB)
* Az Angular keretrendszerhez van "beépített" Service Worker, csak valahogy be kell kapcsolni, és az alkalmazásod el tud indulni offline szerver mellett is! Ezt nem próbáltam, csak a doksiját végigolvastam és meggyőzőnek tűnt.
- A hozzászóláshoz be kell jelentkezni
Nem is service worker, inkább marketing: "Mennyire aggályos egy ilyen api? pl hogy húzom az egeret stb. felvétele böngészővel.. kicsit kémkedésnek vélem". Sok cég alkalmazza hogy a weboldal látogatási szokásait (sic!) mérje vele, hotmap-et csinál vele, ki hova kattint és mi után. Erre felhívják a figyelmet, de akkor is... engem nem zavar, de van ilyen. Talán valóban jobb lesz az UX.
- A hozzászóláshoz be kell jelentkezni
böngészőn belül megnézni? (pl firefox F12 elemzés?)
workert úgy látom mint a streaming esetén. folyamatos adatkapcsolat. pl nyomok valamit és már kint is van, mert ki kiabalát máshová
- A hozzászóláshoz be kell jelentkezni