curl -N はプロキシにバッファリングを止めさせることはできない
curl の出力フラグが応答経路全体を変えると決めつけず、バッファリングがクライアント、中間装置、描画のどこにあるのかを特定します。
curl -N または --no-buffer は、curl の出力ストリームのバッファリングを無効にします。プロキシやサーバーのバッファリング方針を変えずに、遅延した出力を診断するのに役立ちます。
curl --proxy http://proxy.example:8080 --noproxy '' --no-buffer --max-time 30 https://example.com/stream公開プロキシでの比較には、HTTP プロキシ一覧から HTTP エンドポイントを選びます。実際のストリーム URL を使い、意図した上限を選びます。空のバイパス一覧は、この比較を選択したプロキシ経路に保ちます。
到着、デコード、表示
サーバーは段階的にバイトを生成でき、中間装置はそれを収集でき、クライアントライブラリは本文全体を読み取ることができ、ブラウザーは描画を遅らせることができます。経路を制御できる場所で、最初の有用なバイトとその後の進捗を比較します。描画時間とサーバーの総所要時間は、本文がいつ到着するかを示しません。
Guzzle ではストリーミングと本文の消費を別々に確認します。圧縮はデコード段階を追加します。デコードされた出力が現れる時点の変化だけでは、プロキシがバッファリング要素であることを証明しません。
中間装置から見えるもの
不透明な CONNECT プロキシは、内部の HTTPS 応答を通常の HTTP として解析できません。許可された TLS 検査サービスは可視性が異なるため、HTTPS だけでは検査がないことを証明できません。
待機段階を特定したら、その要素が対応するストリーミング制御を使います。リバースプロキシの指示はフォワードプロキシに自動的には適用されません。curl の出力フラグは経路の自分の部分だけを変えます。