Los tipos MIME
Inicialmente las páginas web contenían texto y enlaces (hypertext) por lo que inicialmente el protocolo HTTP te permitía enviar únicamente texto. Actualmente HTTP nos permite enviar todo tipo de documentos gracias a los tipos MIME. Por ello utiliza encabezados que describen el contenido del propio mensaje mediante codificación MIME. Por lo tanto los tipos MIME son unas especificaciones usadas para dar formato a mensajes no ASCII. IANA es el organismo internacional que define los tipos MIME.
Podemos ver los diferentes tipos MIME que existen en el fichero de linux /etc/mimes.types o en su fichero de Windows equivalente (C:\Windows\system32\drivers\etc\mimes.types).
Ejemplos: text/html, text/css, video/mpeg (un documento html, una hoja de estilos y un vídeo en formato mpeg).
Los tipos MIME se utilizan en los siguientes casos:
Para informar al navegador del tipo de datos que esta recibiendo del servidor. Se define usando: Content-type dependiendo de si el navegador puede interpretarlo puede: visualizar el documento (por ejemplo text/html), llamar a una aplicación externa (application/pdf al descargar un documento pdf lo leemos con un lector de pdf) o preguntar al usuario que hacer si no sabe con que abrir su contenido (aplication/abb).
Para permitir o denegar un contenido: Por ejemplo, Allow: application/doc
Para encapsular uno o mas objetos dentro del cuerpo del mensajes. El más conocido son los tipos multipart (multipart/form-data, que se suelen utilizar junto al método POST para hacer un upload de una imágen al servidor.