0

ASP.NETアプリケーションがあります。このアプリケーションには、ユーザーがサーバーに大量のデータを送信できるページがあります。ただし、リクエストヘッダーを確認するだけで、リクエストが完全に拒否される場合があります。このような場合、サーバーのメモリに、ユーザーが送信した膨大なデータを一定期間不必要に保持させたくありません。ASP.NETには、ヘッダーを読み取った後にシグナルを送信するまで、ユーザーが送信したデータを保持しない方法はありますか?

4

1 に答える 1

1

すべてリクエストとともに送信されます。「通知するまで」全体がサーバーの応答と別のクライアントの要求を意味するため、必要なことを行うには、2 つの要求が必要になります。

確認しようとしている内容に応じて、2 段階の要求を行うことができます。最初にクライアントに単純な要求を送信させ、より大きな要求を送信するための認証コードを取得してから、その認証コードをより大きな要求と共に送信します。これは基本的に、ほとんどの Web API で承認がどのように機能するかですが、すべてはクライアントが仕様に準拠しているかどうかに依存します。

文書化された API では、これは問題にはなりません。クライアントは、手順に従わない限り、API と対話できないことを理解するからです。一般的な Web サイトでは、これはより大きな問題です。ブラウザー自体がこれを適切に処理することができず、エンド ユーザーはおそらく協力しないでしょう。

ただし、API 環境であっても、準拠していないクライアントから大量の未承認のリクエストを受け取ることはあります。それらはブロックされますが、サーバーはブロックするためにそれを処理する必要があり、ブロックの目的を無効にします。適切な承認で送信されたときに大きなリクエストが繰り返されるなど、追加のリクエストが発生するのではなく、先に進んでその時点で終了することもできます。

一長一短ありますが、それを止めようとしても意味がありません。最善の策は、フォームなどを複数のステップに単純に分割して、投稿された個々のステップがそれほど大きくならないようにすることです。問題がある場合は、最初の小さなリクエストで停止できます。

于 2013-03-01T19:14:55.080 に答える