ユーザーがURLを投稿してファイルをダウンロードできるWebアプリケーションがあります。私は libcurl を使用しており、応答の Content-Length をチェックしてファイル サイズの制限を適用しています。持ち去られたサーバーがアップロードを続け、最終的に利用可能なすべてのスペースをいっぱいにしてサーバーを詰まらせるのではないかと心配しています。ファイルのサイズが Content-Length より大きい場合、libcurl はファイルのダウンロードを中止しますか?
質問する
781 次
1 に答える
2
はい、そうです(ほとんど)。Content-Length フィールド (使用する場合) は、この特定の応答の本文のサイズを伝えるために HTTP を使用する方法です。接続は開いたままになり、次のリクエストで再利用されるため、HTTP クライアントはそれ以上読み取ることはできません。
これは基本的な HTTP 1.1 機能であり、RFC7230で詳細を確認できます。curl コードを読みたい場合は、lib/http.c ソース コードで Content-Length ヘッダーの一致と解析を確認し、さらに「maxdownload」フィールドは lib/transfer.c などで使用されます。
于 2012-04-15T22:31:02.283 に答える