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