基本的に、HTTP GET はそれほど高くできないため、2GB の HTTP POST パケットを Web サイトに送信してテストしようとしています。ただし、私はこれについてあまり経験がなく、実際にこれを試みる方法についてアドバイス/説明が必要です。前もって感謝します。
2 に答える
これを行おうとすると、多くの問題が発生します。私はそれらを簡単に調べようとします -
1) サーバー設定 - 多くのサーバーは、セキュリティ上の理由から、デフォルトで 2GB の POST を防止します (ポストの最大値を無制限または高く設定すると、DoS が容易になります)。PHP のデフォルトは 20M です。
1-a) サーバー設定 - 多くのサーバーにはタイムアウト設定もあり、リクエストが一定時間内に完了しない場合、そのリクエストは破棄されます。2GB では、この設定がトリガーされる可能性が非常に高くなります。
2) ブラウザの設定 - 私はこれについて肯定的ではありませんが、お使いのブラウザもこれを防ごうとしている可能性があります。
3) ハードウェア - 問題を引き起こす可能性のある複数のハードウェア ボトルネックがあります。物理メモリ (サーバーとクライアント)、ネットワーク帯域幅、使用可能な HDD スペース (投稿で何をしているかに応じて、サーバーへの書き込み権限)。
4) サード パーティのホスト - Web サイトがサード パーティによってホストされている場合、サード パーティはこれを阻止するためのセキュリティ対策を実装している可能性があります。
これはおそらく完全なリストではありませんが、2 GB のポスト ファイルは、転送プロセス中のさまざまな段階で問題が発生する可能性があります。
送信する方法が必要な場合 - これは 1 つの方法です
<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>
ただし、この方法を使用することはあまりお勧めしません。今はウェブサーバーを壊したくないので、テストしていません。そして、私の数学は少しずれているかもしれませんが、1文字が1バイト(基本ASCII)であると仮定しています。ページが読み込まれる場合、これは機能します。
HTTP リクエストを使用してポイント A からポイント B に 2GB を転送するのは適切ではないように思われるため (あなたの場合も?)、ある時点で FTP/Javascript を調べて、データ転送のタスクがブラウザもサーバーもフリーズしません。
仮定:
サーバーは FTP 経由でファイル転送を処理できます
2GB のデータは、その場で生成されるのではなく、クライアント側のどこかに保存されます。
FTP を使用してファイル転送 (接続と実際の転送) を管理できる JavaScript ライブラリがあります。
上記のライブラリと一部の AJAX では、http POST リクエストのライフサイクルをファイル転送の状態と同期する必要もあります。次に、リクエストで、アップロードしている 2GB に関する情報のみを送信することに固執できます。
エンジンで「ftp javascript クライアント」などを検索したところ、商用のブラウザ組み込み FTP クライアントのみがリストされました。(私がでたらめを言った場合は、遠慮なく訂正してください)。