POST上载前重定向已完成

POST上载前重定向已完成

本文介绍了POST上载前重定向已完成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有文件上传表单。该文件被上传实际上是图片和视频,使他们能够相当大。我有基于标头和第一1KB可以确定其余的将被处理或立即拒绝逻辑。在后一种情况下,我想重定向客户端错误页面,而无需等待上传完成。

的情况是,这只是响应发送POST完成似乎并没有工作之前。重定向被忽略,如果我关闭连接,浏览器的连接被对方​​复位的错误抱怨。

所以,问题是:是它甚至有可能做到这一点在纯HTTP(没有JavaScript在客户端),如果是这样,如何​​


解决方案

在HTTP / 1.1协议并允许这一点,只是一个非常奇怪的和乱七八糟的方式。您需要应用以下3步proceedure:


  1. 立即(突然)关闭连接,存储在服务器端的标志客户端会话

  2. 使用标志来检测企图重新发送相同的表单数据,该规范建议客户端自动执行此操作

  3. 发送错误状态与一个重定向(如302暂时移动)

此的应该的工作,因为所概括的客户端下方有望被意外切断后至少一次重试连接。在重试尝试(S)预计只发送标题,然后等待并观察一个错误响应并中止发送体,如果它得到的。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

Gotchas:

  1. That's what the spec says browswers SHOULD do. Who knows what browsers ACTUALLY doin this case? Not me. You'll need to run some tests.
  2. The spec makes a specific mention that this behaviour only applies "if the client is not directly connected to an HTTP/1.1 origin server". That seems a really bizarre requirement which in practice means you may need to fake your server response headers to pretend you're a proxy or HTTP/1.0 server.
  3. Certain intermediary protocols like fast-cgi may not activate your script until the request is complete. In this event you'll actually need a real low-level socket server.
  4. This whole process is messy and convoluted and may not even work. You'd be better off using AJAX in my opinion. Still, you did ask if it could be done without JS.

这篇关于POST上载前重定向已完成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 23:30