Viteのpublicフォルダに.gzファイルを置いて配信するとダウンロードしたデータがおかしくなる
Mijikko.icon from 2024/05/02
Viteのpublicディレクトリに.gzファイルを置いて配信するとダウンロードしたデータがおかしくなる不具合に見舞われている
https://gyazo.com/378236e423af09116c87e7220543f407
← 元のファイル(306B)
ダウンロードしたファイル(65536B)→
2^16Bってことは、プログラムが暴走して無限に0埋めしたとかそんなかんじかtakker.icon
どうやって解決しようか
ダウンロードしたファイルについてちょっとわかったこと
何故か解凍された状態で送信されてる……
ダウンロードしたファイルと元のファイルを解凍した後のチェックサムが同じ
おかしいやろがい
複数ファイルを圧縮して送信したらどうなるのか確認してみた
fugu.tgzとfugu.gzで検証(拡張子を変えただけでデータは同じ)
https://gyazo.com/02006f320f3b205f6e01da3c01c59ec2
両方とも中身は開ける
でも何故かファイルサイズが.gzの時だけ大きい
.tgz:90,811B(オリジナルと同じ)
チェックサムも一致
.gz:97,280B(オリジナルより大きい)
セキュリティソフト切っても変わらなかったので、それが原因では無さそう
Firefoxでも同じ現象が発生したのでブラウザが原因の線も薄い
とりあえず拡張子の.gzを.tgzに変更すれば回避できることがわかったけれど、どうせだし原因分析もしたいので、もう少し調査する
HTTPヘッダーを調べてみたら、レスポンスにX-Content-Encoding-Over-Networkがついてた
X-Content-Encoding-Over-Network: gzip
調べたらESETが原因っぽい
nginxでgzip圧縮設定をしたのに反映されない現象が発生
勝手に解凍した上で再配信してくるらしい
でも、キャッシュを切った上でセキュリティを切っても変わらなかったんだよな
なんでだろう