チャンクHTTP転送エンコーディングを使用する場合、サーバーがチャンクサイズをバイト単位で書き出し、後続のチャンクデータをCRLFで終了する必要があるのはなぜですか。
これにより、バイナリデータの送信が「CRLF-unclean」になり、メソッドが少し冗長になりませんか?
データのどこかに0x0Aの後に0x0Dが続く場合(つまり、これらは実際にはデータの一部です)はどうなりますか?クライアントは、チャンクの先頭に明示的に指定されたチャンクサイズを順守するか、データで最初に検出されたCRLFをチョークすることが期待されますか?
これまでのところ、予想されるクライアントの動作について理解しているのは、サーバーから提供されたチャンクサイズを取得し、次の行に進み、次のデータ(CRLFまたはCRLFなし)からこの量のバイトを正確に読み取り、CRLFをスキップすることです。データに従い、チャンクがなくなるまで手順を繰り返します。これは準拠した動作ですか?もしそうなら、各データチャンク後のCRLFのポイントは何ですか?読みやすさ?
私はこれについていくつかのWeb検索を行い、HTTP 1.1仕様の読み取りも行いましたが、決定的な答えは私にはわかりません。