Неизвестный тип файла MIME?


нужно ли указывать тип MIME, если загруженный файл не имеет расширения? Другими словами, существует ли общий тип MIME по умолчанию?

3 121

3 ответа:

можно использовать application/octet-stream для неизвестных типов.

RFC 2046 государства в разделе 4.5.1:

подтип "октет-поток" используется для укажите, что тело содержит произвольные двоичные данные.

ресурсы RFC:

мы должны использовать RFC-7231 (HTTP / 1.1 семантика и контент) в качестве ссылки вместо RFC-2046 (типы носителей), потому что вопрос явно касался типа контента HTTP.

также RFC-2046 четко не определяет неизвестные типы, но RFC-7231 делает.

короткий ответ:

не отправляйте тип MIME для неизвестных данных.
Чтобы быть более ясным: не используйте заголовок типа контента вообще.

ссылки:

RFC-7231
протокол передачи гипертекста (HTTP / 1.1): семантика и содержание
3.1.1.5. Content-Type

отправитель, который генерирует сообщение, содержащее тело полезной нагрузки, должен
создайте поле заголовка типа содержимого в этом сообщении, если
предполагаемый тип носителя вложенного представления неизвестен
датчик.

что ясно говорит вам, чтобы оставить его если вы не знаете его конечно. Он также говорит, что receiver может предположить, что тип является application/octet-stream, но дело в том, что это также может быть что-то еще.

Что же тогда изменилось?

RFC-2046
4.5.1. Октет-Поток Подтип

рекомендуемое действие для реализации, которая получает
сущность" application/octet-stream " состоит в том, чтобы просто предложить поместить данные
в файле, с любой отмененной кодировкой передачи содержимого, или возможно, чтобы
использовать его в качестве входных данных в заданный процесс.

и, как уже писалось выше:

RFC-7231
3.1.1.5. Content-Type

Если поле заголовка типа содержимого отсутствует, получатель Может либо предполагать тип носителя "application / octet-stream"
([RFC2046], раздел 4.5.1) или изучить данные для определения их типа.

вывод:

Если вы определите его как "application/octet-stream", тогда вы говорите, что знаете, что это "application / octet-stream".

Если вы не определите это, то вы говорите, что вы не знаете, что это такое и оставить решение в приемник и приемник может затем проверить, если он ходит как утка и...

предпочитаю application/unknown, но результат наверняка будет таким же, как application/octet-stream