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

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

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

    В RFC 2046 говорится в разделе 4.5.1:

    Подтип «октет-stream» используется для указания того, что тело содержит произвольные двоичные данные.

    Ресурсы RFC:

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

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

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

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

    Рекомендации:

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

    СЛЕДУЕТ СЛЕДУЕТ, что отправитель, который генерирует сообщение, содержащее тело полезной нагрузки
    сгенерируйте поле заголовка Content-Type в этом сообщении, если только
    предполагаемый тип носителя закрытого представления неизвестен
    отправитель.

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

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

    RFC-2046
    4.5.1. Подтип Octet-Stream

    Рекомендуемое действие для реализации, которое получает
    Объект «application / octet-stream» должен просто предложить поместить данные
    в файле, при этом любое кодирование Content-Transfer-Encoding отменено или, возможно,
    используйте его в качестве входных данных для указанного пользователем процесса.

    И, как уже было сказано выше:

    RFC-7231
    3.1.1.5. Тип содержимого

    Если поле заголовка Content-Type отсутствует, получатель МОЖЕТ либо предположить тип медиафайла «application / octet-stream»,
    ([RFC2046], раздел 4.5.1) или изучить данные для определения его типа.

    Вывод:

    Если вы определяете его как «приложение / октет-stream», вы сообщаете, что знаете, что это «приложение / октет-stream».

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

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

    Interesting Posts

    Правильное использование std :: cout.precision () – не печатать конечные нули

    В CSS Flexbox, почему нет свойств «justify-items» и «justify-self»?

    Измененная память Windows без файла подкачки

    Добавление Google Cloud Messagin (GCM) для Android – Процесс регистрации

    Как я могу запустить директиву после того, как dom закончил рендеринг?

    Как вы должны диагностировать ошибку? SEHException – Внешний компонент выбрал исключение

    Можно ли использовать микрофон для гарнитуры Bluetooth, имея звук высокого качества

    Ошибка DocumentTermMatrix в аргументе Corpus

    использование asynctask для ускорения запуска приложения Android

    Могла ли установка DD-WRT ускорить мой Интернет?

    Swift 3 сохранение и извлечение пользовательского объекта из userDefaults

    Изучение основ UIScrollView

    Можно ли экспортировать GPO с одного сервера и импортировать в другой?

    Cross-origin XHR из пользовательского скрипта в Google Chrome

    Ошибка при преобразовании в COFF: файл недействителен или поврежден

    Давайте будем гением компьютера.