156

アップロードされたファイルに拡張子がない場合、MIME タイプを指定する必要がありますか? つまり、デフォルトの一般的な MIME タイプはありますか?

4

3 に答える 3

200

application/octet-stream不明なタイプに使用できます。

RFC 2046は、セクション 4.5.1 で次のように述べています。

「オクテット ストリーム」サブタイプは、ボディに任意のバイナリ データが含まれていることを示すために使用されます。

于 2009-07-24T06:27:32.840 に答える
50

RFC リソース:

RFC-2046 (Media Types) の代わりに RFC-7231 (HTTP/1.1 Semantics and Content) を参照として使用する必要があります。質問は明らかに HTTP Content-Type に関するものだったからです。

また、RFC-2046 では不明な型が明確に定義されていませんが、RFC-7231 では定義されています。

簡潔な答え:

不明なデータの MIME タイプを送信しないでください。
より明確にするために: Content-Type ヘッダーをまったく使用しないでください。

参考文献:

RFC-7231
ハイパーテキスト転送プロトコル (HTTP/1.1): セマンティクスとコンテンツ
3.1.1.5。コンテンツ タイプ

ペイロード本体を含むメッセージを生成する送信者 は、同封された表現の意図したメディア タイプが送信者に不明で
ない限り、そのメッセージに Content-Type ヘッダー フィールドを生成する必要があり ます。

そのセクションは、確かにわからない場合は除外するように明確に指示しています. また、レシーバーはタイプがアプリケーション/オクテットストリームであると想定できることも示していますが、それは別のものである可能性もあります。

じゃあ何が違うの?

RFC-2046
4.5.1。オクテット ストリーム サブタイプ


「アプリケーション/オクテット ストリーム」エンティティを受け取る実装に推奨されるアクションは、
Content-Transfer-Encoding を元に戻して、データをファイルに格納するか、おそらく
それをユーザー指定の入力として使用することです。処理する。

そして、すでに上で述べたように:

RFC-7231
3.1.1.5。コンテンツ タイプ

Content-Type ヘッダー フィールドが存在しない場合、受信者は「アプリケーション/オクテット ストリーム」
([RFC2046]、セクション 4.5.1) のメディア タイプを想定するか、データを調べてそのタイプを判断することができます。

結論:

それを「application/octet-stream」と定義すると、それが「application/octet-stream」であることを知っていることになります。

それを定義しない場合、それが何であるかわからないことを伝えており、決定を受信者に任せ、受信者はそれがアヒルのように歩くかどうかを確認できます...

于 2015-02-21T22:53:14.283 に答える
15

私は好むapplication/unknownが、結果は確かにapplication/octet-stream

于 2011-05-21T08:57:29.923 に答える