SEO

Come funziona un service worker

Service worker

Un service worker è uno script Javascript che il browser avvia in background. Esso è separato dalla pagina pertanto non può modificarne gli elementi come i normali script ma può comunicare con essi mediante “messaggi” scambiati mediante window.postMessage. La cosa interessante in termini di performance è che il service worker è anteposto tra il browser e la rete. Esattamente come un proxy è in grado di intercettare richieste a pagine web e file statici e rispondere secondo politiche che siamo noi stessi a decidere.

“Grazie al nostro Team certificato composto da Developer Certificati, PHP Specialist, ed esperti nel Web Marketing e comparto sistematico Big Data, costruiamo nativamente in casa ogni soluzione e strategia di successo, misurandola e migliorandola giorno dopo giorno. Un team variegato e dinamico che garantisce competenza e professionalità verticalmente al Marketing Digitale”
– MASSI VIGILANTE – SEO SEOHULK

Viene installato silenziosamente dal sito web sul browser del navigatore e avviato in background ogni qual volta il navigatore si ritroverà a visitare nuovamente lo stesso sito web. A differenza dei normali script Javascript, un service worker non può accedere al DOM e modificare gli elementi della pagina, in quanto viene eseguito in un contesto differente. Può comunque dialogare con script JavaScript tradizionali mediante il metodo window.postMessage() . Il service worker, esattamente come un proxy , è in grado di intercettare le richieste HTTP che il browser genera prima di inviarle al server web. Può manipolarle e rispondere al browser secondo politiche implementate dal programmatore che lo ha sviluppato. Analogamente, è in grado anche di intercettare le risposte inviate dal server web al browser, ivi compreso il contenuto HTML della pagina, e conservarle in un’apposita cache differente dalla tradizionale browser cache. Tale cache, infatti, è persistente e, non avendo scadenza, le informazioni immagazzinate al suo interno vi rimangono fintantoché vi sia spazio sufficiente sul disco o non vengano rimosse programmaticamente dal service worker.

Un service worker può essere avviato in qualunque contesto purché rispetti i seguenti requisiti:
• supporto HTTPS : sebbene sia possibile effettuare test in locale utilizzando HTTP, in produzione è obbligatorio disporre di un certificato SSL. Questa è una misura di sicurezza per evitare attacchi di tipo man in the middle 2 ;
• browser supportato : recenti versioni di Google Chrome, Firefox e Opera supportano pienamente i service worker. Microsoft si sta accingendo ad aggiungere il supporto nelle prossime versioni di Internet Explorer.

Il ciclo di vita di un service worker è un aspetto molto complesso, ma la sua comprensione è di cruciale importanza per non commettere errori di natura logica durante lo sviluppo e realizzare service worker solidi, con una struttura robusta agli aggiornamenti e a supporto del core business del sito web. Questo ciclo di vita è composto da quattro fasi:
• registrazione : il service worker viene scaricato dal browser, analizzato ed eseguito;
• installazione : il service worker viene installato;
• attivazione : il service worker è pronto ed è in grado di poter controllare gli eventi generati dal client;
• fetch : il service worker è in grado di intercettare le richieste e rispondere secondo le opportune strategie di caching