問題タブ [chunked]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - HTTP リクエストのコンテンツが終了する前に PHP を実行するにはどうすればよいですか?
クライアントからデータを受信して処理する特定のアプリケーションを PHP で作成しています。
クライアントから送信されたデータが非常に大きいか、長さが不明な場合があります。
クライアントがアップロードを完了する前に、PHP でデータの処理を開始できるかどうかを尋ねたいと思いますか?
ここで私が探しているもの:
PHP ドキュメントから PUT メソッドを使用して、php://input
http://www.php.net/manual/en/features.file-upload.put-method.php経由でコンテンツを受け取ることができます。
チャンク転送エンコーディングを使用した PUT メソッド。
しかし、PUT メソッドを phpinfo.php に送信してみました (中身はわかります)。
意図的に最後のチャンクを送信しませんでした。(長さゼロのチャンク)
リクエストを完了するまで、PHP は応答しません。
(それは私が PUT メソッドに期待するものではありません。何らかの長所があるはずです。PHP を早期に起動できない場合は、むしろ通常の POST メソッドを使用します。)
そして、このトピックによると、
受信が完了する前に HTTP リクエストに返信できますか?
PHP からの初期の応答が HTTP を壊すとは思いません。
(私が自分で書いているクライアントについて心配する必要はありません。)
注: データを処理するために、複数の PHP インスタンス間で共有できないメモリ/オブジェクトがいくつかあるため、データを多くのリクエストに分割することはできません。(MySQL のメモリ テーブルでも。)
c# - ファイルをチャンクに分割し、境界経由でアップロードする
いくつかのファイルをサーバーにアップロードしようとしています。
私のコードは次のようになります:
}
次のように呼び出します。
スクリプトは正常に動作し、ファイルが 2MB 未満であればアップロードされます。ファイルが 2MB より大きい場合、ファイルが正常にアップロードされなくても、成功を返します。2MB を超えるファイルはチャンクに分割してからサーバーに送信する必要があると思います。しかし、ファイルを分割してサーバーに送信する方法がわかりません...
node.js - ブラウザーは、cURL のようにサーバーから既に受信したデータをフラッシュしないようです
HTTP ストリーム (コンテンツ タイプ: チャンク) を使用した node.js サンプル デモをいじっています。
Chrome を使用してページを表示すると、タイムアウトになり、画面に何も表示されなくなります。cURLを使用すると、受信した内容が表示されるようです。
これは、完全なデータがない限り何も表示されないブラウザのデフォルトの動作ですか? データを捨ててタイムアウトエラーを表示するのはもったいないようです。
http - Varnish で 'Transfer-Encoding: chunked' エンコーディングを無効にするにはどうすればよいですか?
Varnish 4を使用して、有効なContent-Length
ヘッダーとヘッダーなしで応答する一連のバックエンドがありますTransfer-Encoding
。
クライアントからの最初のヒットで、これらのヘッダーでクライアントに応答するのではなく、Varnish はヘッダーを削除して応答Content-Length
に追加します。Transfer-Encoding: chunked
(興味深いことに、ペイロードにはチャンクが含まれていないようです。これは 1 つの連続したペイロードです)。
Content-Length
これは、ヘッダーに基づいてセグメント サイズ、帯域幅などの分析を行おうとする Flash ビデオ プレーヤーなどのクライアントに深刻な問題を引き起こします。彼らの分析は失敗し、マルチビットレートのストリーミングなどを行うことはできません。
私は次のようないくつかの半明白なことを試しました:
beresp.do_stream = true
beresp.do_gzip = false
unset req.http.Accept-Encoding
サンプル バックエンド レスポンス:
ワニスの応答例:
オブジェクトの後続のロードでは、キャッシュへの最初のロードではなく、ヘッダーが含まれます。Content-Length
VCL: https://gist.github.com/onethumb/e64a405cc579909cace1
varnishlog 出力: https://gist.github.com/onethumb/e66a2bc4727a3a5340b6
http - HTTP 1.1 - 転送するクライアント リクエストを「チャンク」できませんか?
HTTP 1.1 クライアントが、要求への応答をチャンク化しないことを示すヘッダー値を設定することは可能ですか? または、これを防ぐ唯一の方法は、HTTP 1.0 要求を送信することですか? グーグルで調べてみましたが、HTTP 1.1サーバーでチャンク転送を無効にする方法しか見つからないので、クライアントでは不可能だと思いますが、とにかく聞いてみようと思いました.
scala - HTTP クライアント API でトランクされた応答を処理する方法
トランクされた応答メッセージを処理する方法を示すコード サンプルはありますか? ( http://spray.io/documentation/1.2.1/spray-can/http-client/#chunked-responses )
たとえば、spray-can の http-client を使用してサービスにアクセスすると、大きなファイルがトラックされた方法で応答されます。そして、トラックされたメッセージをそれに応じて処理して、大きなファイルをローカル ディスクに保存したいと思います。
ありがとう
レオン
php - PHP への Android アップロード ファイルのチャンク
大きなファイルをチャンク単位で PHP サーバーにアップロードして、接続が切断された場合にいつでもアップロードを再開できるようにするにはどうすればよいでしょうか。
具体的には、Android でこれを行うにはどのライブラリが必要ですか?
ユーザーは、インターネット接続が低速または不安定な国から大きなファイルをアップロードしています。ありがとうございました
編集
詳細については、現在 HTTP POST を使用してファイル全体を一度にアップロードしています。次のコードが示すように:
これをチャンクで送信するように変更する方法はありますか? 私が行った調査のほとんどはあまり明確ではありませんでした、申し訳ありません