Django 組み込みのWebサーバーにIE6からPOSTデータを送ると送信がリセットされる
仕事場で、Django 組み込みの Web サーバーを使って(Apache等使わずに)ユーティリティアプリを作成して使っていたのだが、FireFoxを使っている自分は問題ないのだが、かたくなにIE6を使い続けるおじさんがそのアプリを使うと、画面が真っ白になってしまう現象に見舞われた。
たいてい、少し多めのデータといっても、KBレベルのテキストをPOSTデータとして送信すると発生。少量だと発生しない。
HttpResponse を返す直前に、内容をはき出してみても問題なさそうなので、問題は、フレームワーク(Django)以降だろうと思い、Wiresharkでパケットを見てみると、どうも RSTフラグが送られてきてコネクションを切断しているようだ。
件のおじさんは FireFox にする気はなく、なんとか使えるようにとのこと。。。
んー Windows Server に Apache いれれば何とかなるかと思ったが、Python2.6 用の mod_python は今のところないようだし。
と、途方にくれながら、Django のソースを見ていたら、
\Python26\Lib\site-packages\django\core\servers\basehttp.py
に、http_version = “1.0” の記述。
こいつを、”1.1″ に修正したら、使えるようになった。
理由はよくわからない(今後の課題)が、とりあえずめでたし。