違いは何ですか:image/x-citrix-pjpeg および image/pjpeg
-
03-07-2019 - |
質問
一部のファイルは、報告された MIME タイプでアップロードされます。
image/x-citrix-pjpeg
これらは有効な jpeg ファイルなので、そのまま受け入れます。
しかし、私は疑問に思いました:なぜMIMEタイプが違うのでしょうか?
形式に違いはあるのでしょうか?それとも、この MIME タイプは、明確な理由もなく citrix の電球によって発明されたのでしょうか?
解決
アップデート:
OK、この質問についてさらに検索とテストを行ったところ、MIME タイプについてはすべて嘘をついていることがわかりました(決して信用しないでください) どれでも クライアントから送信された情報、私は知っています)。
異なるエンコーディングを持つ多数のファイル(libjpegで作成された)をチェックしました
Official
jpeg ファイルの MIME タイプ: image/jpeg
ただし、一部のアプリケーション (特に MS Internet Explore だけでなく、Yahoo!メール)JPEG ファイルを次のように送信します image/pjpeg
pjpeg が「プログレッシブ」jpeg の略であることは知っていたつもりでした。プログレッシブ/標準エンコーディングは何の関係もないことがわかりました。
MS Internet Explorerの送信 全て jpeg ファイルは、ファイルの内容に関係なく pjpeg として変換されます。
シトリックスについても同様です。 全て Citrix クライアントから送信された jpeg ファイルは、 image/x-citrix-pjpeg
MIME タイプ。
ファイル自体は変更されていません (アップロードの前後で同じです)。つまり、MIME タイプの違いは、ファイルの送信にソフトウェアが使用されたことを示しているだけということがわかりますか?
ファイルの内容に違いがないのに、なぜ新しい MIME タイプを発明するのでしょうか?
他のヒント
image/x-citrix-pjpeg
Citrix セッションからエクスポートされたイメージによって送信される MIME タイプのようです。
これらと通常の JPEG の間に形式の違いはありません。適切な MIME タイプ ルールが追加されれば、ほとんどの画像変換ユーティリティはそれらを通常の pjpeg と同じように処理します。
Citrix セッションでは、jpeg を管理するときに内部で何らかの魔法が行われ、この MIME タイプが作成され、システムからエクスポートされるときにファイルに残される可能性がありますが、それは私の推測にすぎません。何度も言いますが、私たちが受け取るこの形式のファイルと実際の形式の違いには気づきませんでした。
これが何であるかを知るために私が最も近くに来たのは、このスレッドです。それが役に立てば幸い。
何らかの理由で、Citrix 経由で Internet Explorer を実行すると、GIF および JPG ファイルの MIME タイプが変更されます。
JPG: image/x-citrix-pjpeg
GIF: image/x-citrix-gif
私のテストによれば、PNG ファイルは影響を受けません。これが Internet Explorer の問題なのか、Citrix の問題なのかはわかりません。
これは、SpeedBrowse と呼ばれる Citrix の機能と関係しています。この機能は、[Citrix] サーバー側で Web ページ内の JPEG と GIF をインターセプトし、それら全体を ICA (Citrix リモーティング プロトコル) 経由で送信できます。これは、画面よりも効率的です。それらをこすります。以前の投稿者が示唆したように、これは、変更された MIME タイプで画像をマークすることで実装されます。
IIRC はフックします FindMimeFromData IE では MIME タイプをその場で変更できますが、これはダウンロードされたファイルだけでなくアップロードされたファイルにも適用されます。これは間違いなくバグです。
私の記憶によれば、プログレッシブ JPG 形式は、ファイルのダウンロードが進むにつれて、画像を徐々に高解像度で表示できる形式です。詳細については完全に把握しているわけではありませんが、ダイヤルアップの時代を思い出していただければ、一部のファイルはぼやけて表示され、その後、ダウンロードされるにつれて改善され、最終的には完成しました。これを機能させるには、通常の JPEG の送信とは異なる順序でデータを送信する必要があります。
実際のデータを表示すると、送信された順序が異なるだけで同一です。JPEG エンコード自体は、ピクセルを異なる方法でグループ化する可能性があります。忘れました。