Der raw header ist der erste Teil einer Datei und wird Byte für Byte angezeigt, statt als benannte Metadatenfelder. Viele Dateiformate beginnen mit einem festen Byte-Muster, das oft Signatur oder Magic Number genannt wird. Programme lesen dieses Muster, um zu erkennen, um welche Art von Datei es sich handelt.
In einem Metadatenbericht zeigt das Feld Raw Header diese Bytes als hexadezimale Zahlen. Jedes Zeichenpaar, zum Beispiel 89 oder FF, steht für 1 Byte.
Auch eine E-Mail hat oben einen Header-Bereich mit Feldern wie From, To und Subject. Dieser Artikel behandelt den Header einer Datei.
Wie der Wert aussieht
Hexadezimal oder Basis 16 schreibt jedes Byte als 2 Zeichen aus den Ziffern 0 bis 9 und den Buchstaben A bis F. Ein Byte kann daher jeden Wert von 00 bis FF haben.
Im ASCII-Zeichencode stehen die Werte 21 bis 7E für Buchstaben, Ziffern und Satzzeichen, und 20 ist ein Leerzeichen. Werte unter 20 sind Steuerzeichen, und 00 ist das Nullzeichen mit lauter Nullen, genannt NUL.
Wie du einen raw header als Text liest
Um einen raw header in Text zu verwandeln, schlägst du jedes Byte in einer ASCII-Tabelle nach. Nur Bytes von 20 bis 7E stehen für ein sichtbares ASCII-Zeichen oder ein Leerzeichen. Andere Bytes tun das nicht, daher kannst du oft nur einen Teil eines Headers lesen.
25 50 44 46 2Dliest sich als Prozentzeichen, die Buchstaben PDF und ein Bindestrich.89 50 4E 47enthält in Byte 2 bis 4 die BuchstabenPNG.
Typische Werte
Typische Formate beginnen mit diesen Signaturen:
- PNG-Bild:
89 50 4E 47 0D 0A 1A 0A - JPEG-Bild:
FF D8 FF, wobeiFF D8den Bildanfang markiert - GIF-Bild:
47 49 46 38, dann39 61oder37 61(GIF89a oder GIF87a) - PDF-Dokument:
25 50 44 46 2D, dann die Versionsnummer, zum Beispiel 1.7 - TIFF-Bild, Little-Endian:
49 49 2A 00(II, dann die Zahl 42) - TIFF-Bild, Big-Endian:
4D 4D 00 2A(MM, dann die Zahl 42) - ZIP-Archiv und ZIP-basierte Office-Dateien wie DOCX:
50 4B 03 04(PK) - MP3-Audio mit einem ID3v2-Tag:
49 44 33(ID3) - WAV-Audio:
52 49 46 46(RIFF), 4 variable Bytes, dann57 41 56 45(WAVE) - MP4-Video: eine 4-Byte-Größe, dann
66 74 79 70(ftyp)
In einer TIFF-Datei legen die ersten 2 Bytes auch die Byte-Reihenfolge für die Zahlen in der Datei fest. In einer PDF-Datei geben die Zeichen nach der Signatur die PDF-Version an, aber ein Eintrag später in der Datei kann sie überschreiben.
Welche Dateien sie enthalten
Jede Datei hat einen raw header, aber nicht jedes Format hat eine Signatur. Reine Textdateien beginnen direkt mit ihrem Text. Programme erkennen sie daran, dass ihre ersten Bytes nur Textzeichen enthalten.
Warum es wichtig ist
Die Dateiendung ist nur ein Teil des Namens und kann von jeder Person geändert werden. Der Header kann den echten Dateityp und den MIME-Typ verraten, selbst wenn die Endung falsch ist.
Ein Webserver kann keinen MIME-Typ senden, oder ein Browser kann den empfangenen Typ für falsch halten. Der Browser kann dann die ersten Bytes mit einer Tabelle bekannter Muster vergleichen. Der Unix-Befehl file sucht nach einer Magic Number nahe dem Anfang der Datei.
Ein Header hilft dir auch, Probleme zu erkennen. Wenn eine Datei namens photo.png nicht mit 89 50 4E 47 beginnt, folgt sie nicht dem PNG-Format. Der Anfang der Datei kann beschädigt sein oder die Datei ist ein anderer Typ mit der falschen Endung.
Ein Header, der nur aus 00-Bytes besteht, passt zu keiner gängigen Signatur. Eine MP4-Datei kann jedoch mit 00 beginnen, weil eine kleine Größe in ihren ersten 4 Bytes mit Null anfängt. Wenn nichts passt und die Bytes kein Text sind, behandeln Browser die Datei als application/octet-stream.