メインコンテンツまでスキップ

8. 不完全なメッセージの処理 (Handling Incomplete Messages)

通常、キャンセルされたリクエストまたはトリガーされたタイムアウト例外が原因で、不完全なリクエストメッセージを受信するサーバーは、接続を閉じる前にエラーレスポンスを送信してもかまいません (MAY)。

接続が途中で閉じられたとき、またはチャンク転送コーディングのデコードが失敗したときに発生する可能性のある、不完全なレスポンスメッセージを受信するクライアントは、メッセージを不完全として記録しなければなりません (MUST)。不完全なレスポンスのキャッシュ要件は、[CACHING] の第 3.3 節で定義されています。

レスポンスがヘッダーセクションの途中で終了し (空行を受信する前)、ステータスコードがレスポンスの完全な意味を伝えるためにヘッダーフィールドに依存する可能性がある場合、クライアントはその意味が伝えられたと仮定することはできません。クライアントは、次に取るべきアクションを決定するためにリクエストを繰り返す必要があるかもしれません。

チャンク転送コーディングを使用するメッセージ本文は、エンコーディングを終了するサイズ 0 のチャンクを受信していない場合、不完全です。有効な Content-Length を使用するメッセージは、受信したメッセージ本文のサイズ (オクテット単位) が Content-Length によって与えられた値よりも小さい場合、不完全です。チャンク転送コーディングも Content-Length も持たないレスポンスは、接続の終了によって終了し、ヘッダーセクションが無傷で受信された場合、基礎となる接続によってエラーが示されない限り、完全と見なされます (例えば、TLS の "incomplete close" は、第 9.8 節で説明されているように、レスポンスを不完全にします)。