テストサーバのHTTPプロトコルバージョンを変更する
Django付属のテスト用Webサーバは、レスポンスが HTTP/1.0で固定されてしまっていてコードを書き換えないとHTTP/1.1のレスポンスが返せなかったので、その時に調べたメモ書きです。
core/servers/basehttp.py
このファイルの中にバージョンがベタ書きされています。
http_version = "1.0" # Version that should be used for response
ここを
http_version = "1.1" # Version that should be used for response
と直します。
クライアントのリクエストを見て、自動的にバージョンを変更なんて綺麗なことをやってないので、注意が必要です。ちなみに Apache + mod_pythonで動かす時は、ちゃんと1.1になってたので、動かすサーバの違いによるっぽい。
テストサーバとは言え、機能のエンドポイント側とか外側から設定を変えられると良かったのになぁ。
本当に単純な機能を作るしか考慮してないんだろうな。
その分、すぐに直す箇所は見つかったわけだし、仕方が無い。