Czy muszę określać typ MIME, jeśli przesyłany plik nie ma rozszerzenia? Innymi słowy, czy istnieje domyślny ogólny typ MIME?
mime
mime-types
default-value
Shimmy Weitzhandler
źródło
źródło
application/octet-stream
plik jest wykonywalny. A nawet jeśli przeglądarka jest świadomie pobierając plik wykonywalny, to nie „ewentualnie wykonać” bez użytkownik pytaniem; Samo pobranie pliku wykonywalnego nie oznacza, że chcę go teraz wykonać. Jeśli naprawdę istnieje przeglądarka, która możeapplication/octet-stream
automatycznie uruchamiać pliki podczas pobierania, powiedz nam, która i jak odtworzyć to zachowanie. Teraz ci nie wierzę.Zasoby RFC:
Powinniśmy użyć RFC-7231 (semantyka i zawartość HTTP / 1.1) jako odniesienia zamiast RFC-2046 (typy mediów), ponieważ pytanie dotyczyło wyraźnie HTTP Content-Type.
Również RFC-2046 nie definiuje jasno nieznanych typów, ale RFC-7231 tak.
Krótka odpowiedź:
Nie wysyłaj typu MIME dla nieznanych danych.
Żeby było jaśniej: w ogóle nie używaj nagłówka Content-Type.
Bibliografia:
Ta sekcja wyraźnie mówi, abyś to pominął, jeśli nie wiesz tego na pewno. Mówi również, że odbiornik może założyć, że typ to application / octet-stream, ale rzecz jest taka, że może to być również coś innego.
Co zatem jest innego?
Jak już wspomniano powyżej:
Wniosek:
Jeśli zdefiniujesz go jako „application / octet-stream”, to mówisz, że wiesz, że jest to „application / octet-stream”.
Jeśli tego nie zdefiniujesz, mówisz, że nie wiesz, co to jest i pozostawiasz decyzję odbiorcy, a odbiorca może sprawdzić, czy chodzi jak kaczka i ...
źródło
Wolę
application/unknown
, ale wynik na pewno będzie taki sam jakapplication/octet-stream
źródło
application/octet-stream
lubapplication/unknown
? Jest powód, dla którego wymyśliliimage/png
.