Les services workers sont des workers. Il n’ont donc pas d’accès au DOM, et s’exécutent dans une tâche de fond différente de celle du thread principal de votre application. Ils sont donc non-bloquants. Dans un web worker tout est asynchrone et le nombre d’API utilisable est plus restreint.
Un service worker peut être vu comme un proxy, qui va se mettre entre votre site et le serveur. Il est capable d’intercepter tous les requêtes qui rentrent ou qui sortent pour les modifier. Les ressources prises en charge par le service worker sont définies dans un fichier de configuration JavaScript.
Plutôt sensible et critique non ? C’est pourquoi les services workers ne fonctionnent qu’en HTTPS. Le service worker vient aussi avec un cache de ressources. Il faut être vigilant dans votre configuration, si vous ne voulez pas que vos ressources ne soient jamais raffraîchies.