Un Buffer è il modo di Node di gestire dati binari grezzi — una sequenza di lunghezza fissa di byte memorizzati al di fuori dell'heap V8. Poiché le stringhe JavaScript sono per testo (Unicode), i Buffer esistono per lavorare con il binario: contenuti di file, pacchetti di rete, immagini, crittografia, ecc.
Perché i Buffer esistono
JavaScript strings → text (UTF-16). Can't cleanly represent arbitrary bytes.
Buffers → raw bytes (0–255 each). For binary data that isn't text.
Quando leggi un file o ricevi dati di rete, arrivano come byte — un Buffer — che puoi quindi decodificare in una stringa se è testo, o elaborare come binario se non lo è.
