Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向站点发送2GB POST数据包?_Java_Http_Post_Packets - Fatal编程技术网

Java 如何向站点发送2GB POST数据包?

Java 如何向站点发送2GB POST数据包?,java,http,post,packets,Java,Http,Post,Packets,基本上,我正在尝试向我的网站发送一个2GB的HTTP POST数据包来测试它,因为HTTP GET不能达到那么高。然而,我对此不是很有经验,需要关于如何实际尝试的建议/解释。提前感谢您。尝试执行此操作时会出现许多问题。我将试着简单地回顾一下- 1) 服务器设置-出于安全原因,许多服务器默认情况下会阻止2GB的POST(具有无限或高POST最大值将使DoS更容易)。PHP的默认值为20M 1-a)服务器设置-许多服务器还具有超时设置,如果请求在一定时间内未完成,则将放弃该请求。2GB很可能会触发此

基本上,我正在尝试向我的网站发送一个2GB的HTTP POST数据包来测试它,因为HTTP GET不能达到那么高。然而,我对此不是很有经验,需要关于如何实际尝试的建议/解释。提前感谢您。

尝试执行此操作时会出现许多问题。我将试着简单地回顾一下-

1) 服务器设置-出于安全原因,许多服务器默认情况下会阻止2GB的POST(具有无限或高POST最大值将使DoS更容易)。PHP的默认值为20M

1-a)服务器设置-许多服务器还具有超时设置,如果请求在一定时间内未完成,则将放弃该请求。2GB很可能会触发此设置

2) 浏览器设置-我对此不是很肯定,但您的浏览器可能也会试图阻止这种情况

3) 硬件-可能会有多个硬件瓶颈导致问题。物理内存(服务器和客户端)、网络带宽、可用HDD空间(服务器上的写入权限,取决于您对post的操作)

4) 第三方主机-如果您的网站由第三方托管,他们可能已经实施了安全措施来阻止这种情况

这可能不是一个完整的列表-但2GB post文件在传输过程中的许多不同阶段可能会遇到问题

如果你想要一种方式发送它-这是一种方式

<html>
    <body>
            <form method="post">
                    <input type="hidden"
                    <?php
                            echo " value='";
                            for($i=0;$i<2147483648;$i++)
                                    {
                                            echo "a";
                                    }
                            echo "'";
                    ?>
                    >
                    <input type="submit">
            </form>
<?php if(isset($_POST['test'])){
    echo $_POST['test'];
}
?>
    </body>
</html>


由于使用HTTP请求将2GB从a点传输到B点似乎不合适(在您的情况下也是如此?),因此您可能希望在某个时候查看FTP/Javascript,以便传输数据的任务在后台运行,不会冻结您的浏览器或服务器

假设:

  • 您的服务器可以通过FTP处理文件传输

  • 2GB的数据存储在客户端的某个位置,而不是动态生成

  • 有一些javascript库,您可以使用FTP管理文件传输(连接和实际传输)

  • 使用上述库和一些AJAX,您还需要将http POST请求生命周期与文件传输状态同步。然后,在请求中,您可以坚持只提交有关正在上载的2GB的信息


  • 我搜索过类似“ftp javascript客户端”的内容,只列出了商业浏览器嵌入的ftp客户端。(如果我说废话,请随时纠正我)。

    实施什么?发送POST HTTP请求而不是GET HTTP请求?或者您是否正在寻找其他实现解释?可能重复:从这里开始-这是尝试执行此操作时可能出现的许多问题之一-@crush-此问题与您链接的问题不同。OP的用例要求发布的数据比大多数代理和服务器在没有分块的情况下所允许的数据大。出于某种原因,我阅读了2MB,并认为他指的是如何通过Java发送HTTP POST请求。我现在明白我的错误了。我意识到了这一点,但我仍然希望知道如何实际创建2GB请求并发送它。我可以如何运行它,将其发送到站点?点击提交按钮。(我刚刚在代码中添加了一些功能,在你点击提交后,会出现一堆“a”。2GB的“a”。我意识到这一点,但我如何指定网站?