Tipo de archivo desconocido MIME?


¿Tengo que especificar un tipo MIME si el archivo cargado no tiene extensión? En otras palabras, ¿hay un tipo MIME general predeterminado?

Author: Shimmy, 2009-07-24

3 answers

Puede usar application/octet-stream para tipos desconocidos.

La RFC 2046 establece en la sección 4.5.1:

El subtipo "octet-stream" se usa para indicar que un cuerpo contiene datos binarios arbitrarios.

 154
Author: Bombe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-24 06:27:32

Recursos RFC:

Deberíamos usar RFC-7231 (Semántica y Contenido HTTP/1.1) como referencia en lugar de RFC-2046 (Tipos de medios) porque la pregunta era claramente sobre el Tipo de Contenido HTTP.

También RFC-2046 no define claramente los tipos desconocidos, pero RFC-7231 sí.

Respuesta corta:

No envíe tipo MIME para datos desconocidos.
Para ser más claro: No use encabezado Content-Type en absoluto.

Referencias:

RFC-7231
Protocolo de Transferencia de Hipertexto (HTTP/1.1): Semántica y Contenido
3.1.1.5. Contenido-Tipo

Un remitente que genera un mensaje que contiene un cuerpo de carga útil DEBE
generar un campo de encabezado Content-Type en ese mensaje a menos que el
el tipo de medio previsto de la representación adjunta es desconocido para el
remitente.

Esa sección te dice claramente que lo dejes fuera si no lo sabes con seguridad. También dice que el receptor podría asumir que el tipo es application / octet-stream pero la cosa es que también podría ser otra cosa.

¿Qué es diferente entonces?

RFC-2046
4.5.1. Subtipo de flujo de octetos

La acción recomendada para una implementación que recibe un
la entidad "application / octet-stream" es simplemente ofrecer poner los datos
en un archivo, con cualquier Contenido-Transferencia-Codificación deshecho, o tal vez a
úselo como entrada a un proceso especificado por el usuario.

Y, como ya se dijo anteriormente:

RFC-7231
3.1.1.5. Contenido-Tipo

Si un campo de encabezado Content-Type no está presente, el destinatario Puede asumir un tipo de medio de"application/octet-stream"
([RFC2046], Sección 4.5.1) o examinar los datos para determinar su tipo.

Conclusión:

Si lo defines como "application/octet-stream" entonces estás diciendo que sabes que es "application/octet-stream".

Si no lo defines entonces estás diciendo que no sé lo que es y dejar la decisión al receptor y receptor podría entonces comprobar si camina como pato y...

 31
Author: Sampo Sarrala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-26 14:00:21

Prefiero application/unknown, pero el resultado será seguramente el mismo que application/octet-stream

 11
Author: Lada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-21 08:57:29