繁体   English   中英

避免在收到信号之前在服务器的内存中读取大量用户提交的表单数据?

[英]Avoid Reading Huge User Submitted Form Data in Server's Memory until signaled?

我有一个ASP.NET应用程序。 在此应用程序中,我有一个页面,用户可以在其中向服务器提交大量数据。 但是有时我只需要检查一些请求标头,并可能会完全拒绝该请求。 在这些情况下,我不希望服务器内存中的大量用户提交的数据在一段时间内不必要。 在我读取标头后发出信号之前,ASP.NET中是否有任何方法可以不保存任何用户提交的数据。

全部随请求一起发送。 要执行您想要的操作,您将需要两个请求,因为整个“直到我发出信号”都意味着一个服务器响应和另一个客户端请求。

根据您要检查的内容,您可以执行两个阶段的请求,使客户端首先提交一个简单的请求,获取一些授权代码以提交较大的请求,然后将该授权代码与较大的请求一起发送。 从本质上讲,这就是大多数Web API中授权的工作方式,但是这完全取决于符合规范的客户端。

在文档化的API中,这应该不成问题,因为客户端将理解,除非遵循程序,否则他们将无法与API进行交互。 对于一般的网站来说,这是一个更大的问题,在该网站中,浏览器本身无法正确处理此问题,即使最终用户也无法合作。

但是,即使在API环境中,您仍然会收到来自不合格客户端的大量未经授权的请求。 它们将被阻止,但是您的服务器仍必须对其进行处理以阻止它,这违背了阻止它的目的。 您最好还是继续完成该操作,而不是引发其他请求,包括在获得适当授权后再次发送大型请求。

总之,试图阻止它并没有多大意义。 最好的选择是将表单或其他内容分解为多个步骤,以使发布的单个步骤不会太大,如果有问题,可以在第一个较小的请求处停止它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM