L'header grezzo è la prima parte di un file, mostrata byte per byte invece che come campi di metadati con nome. Molti formati di file iniziano con un modello fisso di byte, spesso chiamato signature o magic number. I programmi leggono questo modello per capire di che tipo di file si tratta.
In un report di metadati, il campo Header grezzo mostra questi byte come numeri esadecimali. Ogni coppia di caratteri, come 89 o FF, rappresenta 1 byte.
Anche un'email ha una sezione di header in alto, con campi come From, To e Subject. Questo articolo tratta l'header di un file.
Come appare il valore
L'esadecimale, o base 16, scrive ogni byte come 2 caratteri presi dalle cifre da 0 a 9 e dalle lettere da A a F. Un byte può quindi avere qualsiasi valore da 00 a FF.
Nel codice di caratteri ASCII, i valori da 21 a 7E rappresentano lettere, cifre e punteggiatura e 20 è uno spazio. I valori sotto 20 sono codici di controllo e 00 è il carattere tutto zero chiamato NUL.
Come leggere un'intestazione grezza come testo
Per trasformare un header grezzo in testo, cerca ogni byte in una tabella ASCII. Solo i byte da 20 a 7E rappresentano un carattere ASCII visibile o uno spazio. Gli altri byte no, quindi spesso puoi leggere solo una parte di un header.
25 50 44 46 2Dsi legge come un simbolo di percentuale, le lettere PDF e un trattino.89 50 4E 47contiene le letterePNGnei byte da 2 a 4.
Valori tipici
I formati più comuni iniziano con queste signature:
- Immagine PNG:
89 50 4E 47 0D 0A 1A 0A - Immagine JPEG:
FF D8 FF, doveFF D8segna l'inizio dell'immagine - Immagine GIF:
47 49 46 38, poi39 61o37 61(GIF89a o GIF87a) - Documento PDF:
25 50 44 46 2D, poi la versione, ad esempio 1.7 - Immagine TIFF, little-endian:
49 49 2A 00(II, poi il numero 42) - Immagine TIFF, big-endian:
4D 4D 00 2A(MM, poi il numero 42) - Archivio ZIP e file Office basati su ZIP come DOCX:
50 4B 03 04(PK) - Audio MP3 con tag ID3v2:
49 44 33(ID3) - Audio WAV:
52 49 46 46(RIFF), 4 byte variabili, poi57 41 56 45(WAVE) - Video MP4: una dimensione di 4 byte, poi
66 74 79 70(ftyp)
In un file TIFF, i primi 2 byte impostano anche l'ordine dei byte per i numeri nel file. In un file PDF, i caratteri dopo la signature indicano la versione PDF, ma una voce più avanti nel file può sovrascriverla.
Quali file lo contengono
Ogni file ha un header grezzo, ma non ogni formato ha una signature. I file di testo semplice iniziano direttamente con il loro testo. I programmi li riconoscono perché i loro primi byte contengono solo caratteri di testo.
Perché è importante
L'estensione del nome file è solo una parte del nome e chiunque può cambiarla. L'header può rivelare il vero tipo di file e il tipo MIME anche quando l'estensione è sbagliata.
Un server web può non inviare alcun tipo MIME, oppure un browser può ritenere sbagliato il tipo ricevuto. Il browser può quindi confrontare i primi byte con una tabella di modelli noti. Il comando Unix file cerca un magic number vicino all'inizio del file.
Un header ti aiuta anche a individuare i problemi. Se un file chiamato photo.png non inizia con 89 50 4E 47, non segue il formato PNG. L'inizio del file potrebbe essere danneggiato oppure il file potrebbe essere di un altro tipo con l'estensione sbagliata.
Un header composto solo da byte 00 non corrisponde a nessuna signature comune. Ma un file MP4 può iniziare con 00, perché una dimensione piccola nei suoi primi 4 byte inizia con zero. Quando niente corrisponde e i byte non sono testo, i browser trattano il file come application/octet-stream.