Skip to content

2 Funzionamento

Valentino Aglianó edited this page May 20, 2026 · 36 revisions

⚙️ Capitolo 2: Architettura e Funzionamento (Sotto il cofano)

Il funzionamento del motore Panzer v7 si basa su tre pilastri architetturali rigidi:

🌐 1. Scope Globale (sw.js nella Root)

Il file del Service Worker (sw.js) è posizionato chirurgicamente nella cartella radice (root) del dominio. Questo permette al software di intercettare ogni singola richiesta di rete dell'intera applicazione, agendo come un proxy locale installato nel browser dell'utente.

⚡ 2. Strategia di Fetch: Network-First con Timeout e Autorigenerazione

Il motore adotta un algoritmo avanzato di tolleranza ai guasti di rete per scongiurare il blocco dell'interfaccia in caso di connettività degradata (fenomeno della "Lie-Fi"):

  1. Network-First con Race Condition: Ogni richiesta dinamica intercetta la rete per garantire la massima freschezza del dato.
  2. Timeout di Protezione: Viene iniettato un timer software stringente. Se la rete non risponde entro il limite prefissato, la richiesta verso il server viene abortita per evitare il congelamento della UI.
  3. Cache Fallback & Hot Update: In caso di timeout, il Service Worker rilascia immediatamente la risorsa locale memorizzata nel Bunker. Se invece la rete risponde in tempo, il sistema aggiorna la cache in background (Hot Update) per i caricamenti futuri.

🔍 3. Validazione Strict via Magic Numbers

Per evitare attacchi informatici (come il Cache Poisoning) o il caricamento di file corrotti, il motore analizza i primi byte binari (i Magic Numbers) per verificare la reale identità e integrità del dato prima di elaborarlo, rifiutando file con estensioni falsificate.

🛠️ Diagramma di Flusso delle Richieste

↩ Torna alla Home

[ UTENTE / BROWSER ]
       │
       ▼ (Ogni richiesta: immagini, HTML, JS)
┌─────────────────────────────────────────┐
│     SERVICE WORKER (`sw.js` nella Root)  │ <─── Filtro/Proxy Globale
└─────────────────────────────────────────┘
       │
       ├─► [ C'È RETE? ] ──► SÌ ──► Scarica dal Server (Aggiorna Cache)
       │
       └─► [ NO RETE! ]  ──► NO (Bunker Mode)
                                   │
                                   ▼
                       ┌───────────────────────┐
                       │   CACHE LOCALE        │
                       │ (Integrità con        │
                       │  Magic Numbers)       │
                       └───────────────────────┘
                                   │
                                   ▼
                        Rilascia i file alla PWA

🗂️ Indice Rapido Wiki


LOGO

Clone this wiki locally