RFC 2616から、HTTPクライアントがContent-Length:0またはTransfer-Encoding:チャンクヘッダーを含む204NoContent応答を受け入れる必要があるかどうかを判断できません。これらのヘッダーは、一部のHTTPクライアントとプロキシを破壊しているように見えます。これらは明らかに空の応答本文を読み取ろうとしますが、仕様では次のようになっています。
- 「MUSTNOT」にメッセージ本文が含まれる応答メッセージ(1xx、204、304応答、HEAD要求への応答など)は、エンティティに関係なく、常にヘッダーフィールドの後の最初の空行で終了します。メッセージに存在するヘッダーフィールド。
私にとって、「エンティティヘッダーフィールドに関係なく」は、クライアントがこの状況を許容する必要があることを意味します。ErlangHTTPライブラリはこの解釈を選択しました。ただし、lighttpdとIBMは反対の解釈を選択しました。つまり、本文を持つことが禁止されている応答に対して、サーバーにこれらのヘッダーを含めないようにする必要があります。
したがって、Webアプリケーションはこれらのヘッダーを応答から削除する必要がありますか、それともネットワークインフラストラクチャとクライアントは204コンテンツなし、304変更なしなどでこれらのヘッダーを許容する必要がありますか?