2016-05-03 7 views
0

複数のコンテンツ長ヘッダがある場合は、私は複数のコンテンツ長ヘッダと複数の転送エンコーディングヘッダ

  1. 使用する最初のものを使用し
  2. (私はそうは思いません?)失敗します最後の1つ

私は同様の質問もヘッダーを転送しています。私はtransfer_encodingと最後のものを使うべきだと思います。

「Host」ヘッダーについても同様です。

おかげで、 ディーン

Content-Length

答えて

0

は単一値ヘッダです。通常、最後のヘッダーには権限があります。しかしRFC 7230, section 3.3.2状態:メッセージのリストを含むフィールドの値と同じ小数点値、または単一Content-Lengthヘッダフィールドからなるフィールド値を有する複数のContent-Lengthヘッダフィールドを有する

を受信した場合重複したContent-Lengthヘッダフィールドが上流のメッセージプロセッサによって生成または結合されたことを示す同一の10進値(例えば、「Content-Length:42,42」)を受信者は無効として拒絶するか、メッセージ本文の長さを決定するかメッセージを転送する前に、その10進値を含む単一の有効なContent-Lengthフィールドを持つフィールド値。それはリストを含むされるよう

Transfer-Encodingは別の問題です。複数のものがあり、すべてが有効です。ここで重要なのは、適用されたエンコーディングが、適用された順にリストされなければならないということです。例えば。コンテンツはgzipで圧縮され、その後、チャンクエンコードされている場合、ヘッダは

Transfer-Encoding: gzip, chunked 

または

Transfer-Encoding: gzip 
Transfer-Encoding: chunked 
+0

"意味的に最後のヘッダーは、以前のヘッダーを上書きしています。"誰もそれを定義していません。また、「重複は無視されます」と言うこともできます。 –

+0

@JulianReschke「重複は無視されます」ということは、実際は同じではありません。過去のこのような状況を処理した方法は、すべての以前のヘッダーを無視して、最後のヘッダーを効果的に許可することでした。私の答え、btwを更新しました。 – DaSourcerer

+0

それは私の要点でした。最後のものを使用することは、最初のもの(またはランダムな1つのftm)を使用するよりも明白ではありません –

2

ようWRTのコンテンツの長さを見ている:両方の値が同じである場合を除きはい、あなたは実際に(失敗しなければなりませんあなたは1つを選ぶかもしれません)。 RFC 7230を参照してください。

"Transfer-Encoding"は、複数の値を許す点で異なります。あなたはすべてを順番に処理する必要があります。

関連する問題