El raw header es la primera parte de un archivo, mostrada byte a byte en lugar de como campos de metadatos con nombre. Muchos formatos de archivo empiezan con un patrón fijo de bytes, que a menudo se llama firma o número mágico. Los programas leen ese patrón para saber de qué tipo de archivo se trata.
En un informe de metadatos, el campo Raw Header muestra estos bytes como números hexadecimales. Cada par de caracteres, como 89 o FF, representa 1 byte.
Un correo electrónico también tiene una sección de cabecera en la parte superior, con campos como From, To y Subject. Este artículo trata sobre la cabecera de un archivo.
Cómo es el valor
El sistema hexadecimal, o base 16, escribe cada byte como 2 caracteres tomados de las cifras del 0 al 9 y las letras de la A a la F. Por lo tanto, un byte puede tener cualquier valor desde 00 hasta FF.
En el código de caracteres ASCII, los valores de 21 a 7E representan letras, dígitos y signos de puntuación, y 20 es un espacio. Los valores por debajo de 20 son códigos de control, y 00 es el carácter de todos ceros llamado NUL.
Cómo leer un raw header como texto
Para convertir un raw header en texto, busca cada byte en una tabla ASCII. Solo los bytes de 20 a 7E representan un carácter ASCII visible o un espacio. Los demás bytes no, así que a menudo solo puedes leer una parte de la cabecera.
25 50 44 46 2Dse lee como un signo de porcentaje, las letras PDF y un guion.89 50 4E 47contiene las letrasPNGen los bytes 2 a 4.
Valores típicos
Los formatos más habituales empiezan con estas firmas:
- Imagen PNG:
89 50 4E 47 0D 0A 1A 0A - Imagen JPEG:
FF D8 FF, dondeFF D8marca el inicio de la imagen - Imagen GIF:
47 49 46 38, luego39 61o37 61(GIF89a o GIF87a) - Documento PDF:
25 50 44 46 2D, luego la versión, como 1.7 - Imagen TIFF, little-endian:
49 49 2A 00(II, luego el número 42) - Imagen TIFF, big-endian:
4D 4D 00 2A(MM, luego el número 42) - Archivo ZIP y archivos de Office basados en ZIP como DOCX:
50 4B 03 04(PK) - Audio MP3 con una etiqueta ID3v2:
49 44 33(ID3) - Audio WAV:
52 49 46 46(RIFF), 4 bytes que varían y luego57 41 56 45(WAVE) - Video MP4: un tamaño de 4 bytes, luego
66 74 79 70(ftyp)
En un archivo TIFF, los primeros 2 bytes también definen el orden de bytes de los números del archivo. En un archivo PDF, los caracteres después de la firma indican la versión de PDF, pero una entrada posterior en el archivo puede anularla.
Qué archivos lo llevan
Todos los archivos tienen un raw header, pero no todos los formatos tienen una firma. Los archivos de texto sin formato empiezan directamente con su texto. Los programas los reconocen porque sus primeros bytes contienen solo caracteres de texto.
Por qué es importante
La extensión del nombre de archivo es solo una parte del nombre, y cualquiera puede cambiarla. La cabecera puede revelar el verdadero tipo de archivo y el tipo MIME incluso cuando la extensión es incorrecta.
Es posible que un servidor web no envíe ningún tipo MIME, o que un navegador crea que el tipo que recibió es incorrecto. Entonces el navegador puede comparar los primeros bytes con una tabla de patrones conocidos. El comando de Unix file busca un número mágico cerca del inicio del archivo.
La cabecera también te ayuda a detectar problemas. Si un archivo llamado photo.png no empieza con 89 50 4E 47, no sigue el formato PNG. Puede que el inicio del archivo esté dañado, o que el archivo sea de otro tipo con una extensión incorrecta.
Una cabecera compuesta solo por bytes 00 no coincide con ninguna firma habitual. Pero un archivo MP4 puede empezar con 00, porque un tamaño pequeño en sus primeros 4 bytes comienza con cero. Cuando nada coincide y los bytes no son texto, los navegadores tratan el archivo como application/octet-stream.