ざっと調べた感じでは、
1、デフォルトで持続的接続が有効になる
2、chunkedエンコーディングのデコードを実装する必要がある
3、リクエストに Host: ヘッダが必須
これくらいでしょうか?
また、リクエストに Connection: closeと書けば1を無効にしてくれるようですが、chunkedしないようにヘッダ等で指示することは可能でしょうか?
RFC読めってのは勘弁してください。
Studying HTTP
HTTP1.1での動作はその3点でほぼ合っております。
しかし、
Connection: closeが有効になるのはレスポンスヘッダに記述された場合になります。この時はHTTP1.0の普通のレスポンスを受信した時と同様の動作になります。
逆を言えばヘッダにその記述が無い場合はデフォルトではkeep-aliveする必要があります。
リクエスト時にチャンク形式のレスポンスを受信しないようにするには、1.0にする、しか方法はありません。
HTTP/1.1アプリケーションはチャンク形式のデコードができなければいけません。チャンク形式エンコーディングは HTTP/1.1 の技術なので通信相手が HTTP/1.0 以下である場合は使用できません。
ありがとうございます。RFCでもチャンク形式のデコードはHTTP/1.1である以上必須というような記述があるので、なんとか実装しないといけないようですが、必ずしもchunkedで返ってくるとは限らないようなので、現物合わせでchunkedを返さない方法は無いかなぁと思っております。
もうちょと回答うけつけてみます。