0

POST または PUT メソッドでは、リクエスト ヘッダー フィールドに content-length が必要です。

別のメソッド (GET、PATCH、DELETE、OPTIONS、CONNECT、TRACE、HEADER) にも content-length が必要ですか?

Response の content-length については、rfc2616 に仕様が記載されています。

Content-Length エンティティ ヘッダー フィールドは、受信者に送信されたエンティティ ボディのサイズを OCTET の 10 進数で示します。HEAD メソッドの場合は、送信されたエンティティ ボディのサイズが示されます。リクエストはGETでした。

ただし、リクエストヘッダーに関する仕様は見つかりませんでした..

4

1 に答える 1

1

HTTP 仕様が RFC2616 から更新されました。代わりに以下を参照してください。

  • RFC7230 - HTTP/1.1: メッセージの構文とルーティング
  • RFC7231 - HTTP/1.1: セマンティクスとコンテンツ
  • RFC7232 - HTTP/1.1: 条件付きリクエスト
  • RFC7233 - HTTP/1.1: 範囲リクエスト
  • RFC7234 - HTTP/1.1: キャッシング
  • RFC7235 - HTTP/1.1: 認証

具体的には、RFC7230 のセクション 3.3.2

Content-Length は、リクエストにペイロード ボディが含まれ、Transfer-Encoding ヘッダーが設定されていない場合に送信する必要があります。

したがって、POST または PUT でさえ、長さを持つボディがある場合にのみ Content-Length を送信する必要があります。これは通常、操作のために POST および PUT の場合に発生します。

本文がないことを示すために 0 の Content-Length を送信しても問題はありませんが、Content-Length または Transfer-Encoding がないことによって暗示されます。

ただし、これらは単なる仕様であるため、マイレージは http 実装によって異なる場合があります。

于 2015-10-08T01:55:35.700 に答える