如何在处理标头后立即重定向HTTP POST请求?

如何在处理标头后立即重定向HTTP POST请求?,http,windows-ce,http-post,http-redirect,Http,Windows Ce,Http Post,Http Redirect,在WindowsCE上,我目前的情况是,我们从头开始实现一个简单的web服务器。此服务器的主要用途是一对一USB RNDIS连接。服务器由设备上运行的托管应用程序托管 因此,我们将POST请求处理与交付的web页面紧密集成。不是处理完整的请求并存储过大的POST数据,而是通过接收其标题和内容流来通知当前页面(由请求标识)。这个解决方案很有效,每个人都很高兴 现在,问题来了:应用程序web界面中的一个页面允许上传软件更新,其大小可以是11到40MB。在处理此POST请求时,我们有各种验证步骤,比如

在WindowsCE上,我目前的情况是,我们从头开始实现一个简单的web服务器。此服务器的主要用途是一对一USB RNDIS连接。服务器由设备上运行的托管应用程序托管

因此,我们将POST请求处理与交付的web页面紧密集成。不是处理完整的请求并存储过大的POST数据,而是通过接收其标题和内容流来通知当前页面(由请求标识)。这个解决方案很有效,每个人都很高兴

现在,问题来了:应用程序web界面中的一个页面允许上传软件更新,其大小可以是11到40MB。在处理此POST请求时,我们有各种验证步骤,比如基于会话cookie的权限系统。我们知道,由于会话cookie的原因,是否允许客户端在处理完所有头文件后立即上载软件更新。我们有没有办法避免阅读(或丢弃)所有帖子内容,以便用户获得即时反馈


我们的第一个想法是在标头处理后返回正确的错误消息响应,然后关闭连接,但浏览器(似乎是正确的)强烈抱怨对等端过早重置。

浏览器希望完全传输。为用户提供更好响应性的方法可能是在页面上使用AJAX调用——因此,页面不应该接收数据,而应该进行AJAX调用,以异步方式将实际上传发布到另一个页面。我自己,我会用jQuery来做这件事,但是你可以在没有任何框架的情况下组装脚本,这样做相当容易。

因为我最近仔细查看了相关的RFC:

HTTP 1.1为这种场景添加了一个额外的请求头

Expect: 100-Continue
这会告诉服务器检查请求头并返回“确定,您现在可以开始向我发送实际内容”或“对不起,无论您打算向我发布什么,我都无法处理”——响应(有关更精确的技术细节,请参阅)

但是,这并不能解决我的问题,因为典型的用户代理(Firefox 3.6,IE 8)在发布多部分/表单数据时不使用此功能。但是,手工制作的助手应用程序可能需要使用此功能。

这很遗憾:-(感谢您的澄清)