Perché il tuo sito elenca due volte lo stesso carattere
In Chrome 157 il server ha inviato il carattere una volta, 23.664 byte. La seconda riga, quando c'era, aveva transferSize 0. Con crossorigin la riga resta una.
In questa guida (3)
Due righe con lo stesso carattere, nel pannello di rete, non significano che il server abbia inviato il file due volte. Il 12 novembre 2026, in Chrome 157.0.8103.52, il server ha spedito il file una sola volta: 23.664 byte. La seconda riga, quando c'era, segnava transferSize 0.
Che cosa ho messo nella pagina
Il file era il woff2 latino di Inter, peso 400, pacchetto fontsource 5.2.8, salvato in locale. Non è il carattere di un sito pubblicato. La regola @font-face lo nominava con font-display: swap, sia nella prova senza attributo sia in quella con l'attributo. Lo swap, quindi, non spiega la seconda riga.
Il preload era un link con rel="preload", as="font" e type="font/woff2". Nella prima pagina l'attributo crossorigin non c'era. Nella seconda c'era crossorigin="anonymous". Ho ripetuto la prova due volte: carattere e pagina sulla stessa origine, poi pagina su una porta e carattere su un'altra, con l'intestazione Access-Control-Allow-Origin impostata a asterisco.
Che cosa ha fatto Chrome 157
Sulla stessa origine, senza crossorigin, il registro del server mostra un solo GET del file. Il timing delle risorse ne elenca due: la prima ha transferSize 23.964, cioè i 23.664 byte più le intestazioni, ed è partita in modalità no-cors; la seconda ha transferSize 0 e encodedBodySize 23.664. Il carattere risultava applicato, document.fonts.check("48px Lab") vero.
Con crossorigin="anonymous", stessa origine, il server ha ricevuto ancora un solo GET. Il timing ne elenca una, in modalità cors, transferSize 23.964. Anche qui il carattere risultava applicato.
Con il file su un'altra origine, senza crossorigin, il server ha registrato una sola consegna: modalità no-cors, destinazione font, nessun Origin, 23.664 byte. Il timing elenca due voci e la seconda ha di nuovo transferSize 0. Con crossorigin="anonymous" il server ha registrato una consegna in modalità cors, con Origin della pagina, e il timing una voce sola da 23.964 byte. In entrambi i casi il carattere risultava applicato.
La sezione 4.8.2 di CSS Fonts livello 4, letta il 12 novembre 2026, chiede per il font la destinazione font e la modalità CORS. L'attributo crossorigin sul preload allinea quella prima richiesta alla modalità che la regola del font userà. In queste quattro pagine non ha cambiato i byte usciti dal server: ne ha cambiato il modo, e ha tolto la seconda riga a transferSize 0.
Che cosa non ho provato
Non ho tolto Access-Control-Allow-Origin, quindi non so che cosa faccia questo Chrome se l'altro dominio non autorizza la lettura del file. Non ho provato Firefox, Safari, un service worker, unicode-range con più file, né un carattere ospitato da un fornitore esterno. Il numero 23.664 è la dimensione di questo woff2, non una soglia del browser.
L'immagine di copertina, sulla scheda Wikimedia, è di Willi Heidelbach, scatto del 28 settembre 2004, licenza CC BY 2.5. Sono caratteri di piombo in una cassa tipografica. Non è il file woff2 della prova.


