2013年8月21日水曜日

【Server】Content-Lengthをきちんと指定しないとインライン画像が表示されない

今回はHTTPサーバのハナシ.
HTTPサーバなんてApache使えばいいから基本知らなくていいことなんだろうけど
特殊鯖を作るとなるとそういうわけにもいかない.

IMGタグなんかでウェブサイト内に表示する画像,
つまりインライン画像が表示されないことがある.
ことがある…というのも,ブラウザ環境に左右されるのである.

Firefox23,Android2.1 標準ブラウザ,iOS6 Safari
ではちゃんと表示されるのに
Chrome28/29,Android4.0 Chrome
では表示されない.
おかしいな,MIMETYPEもちゃんと指定しているし…
と調べまわった結果,
インラインではサムネイルを表示させるのに,
Content-Lengthは元画像のサイズを送っていたことが判明.
(90*90のサムネイルなのに4MBとかいうContent-Lengthを送っていた)
つまり鯖のミスだったのである.
Chromeはそこんところ厳格らしい.

Content-Lengthはこのサイズだろ?
俺がもらったのと違うぜ,壊れてんじゃね?
ひょっとしたらウイルスとかなんかなんじゃね?
ってことなのかもしれない.

Content-LengthをきちんとChromeに送ってやったら
インラインで表示された,めでたしめでたし.

0 件のコメント:

コメントを投稿