cURL ハンドルを保持すると、後続の転送が互換性のあるキャッシュ済み接続を再利用できる場合があります。しかし、プロキシに TCP 接続を無期限に開かせ続けることはできません。

相手側はアイドル状態の接続を閉じることがあり、ネットワーク経路が消えることもあり、後続の転送が別のルートやトンネルを必要とすることもあります。再利用はこれらの条件に左右されるクライアント側の最適化であり、可用性の保証ではありません。

1 つのプロキシ ポリシーで繰り返し作業する場合は、該当するハンドルまたは multi-handle の接続キャッシュを生かしておき、タスクが要求しない限り、意図的に新しい接続を要求するオプションや再利用を禁止するオプションを避けてください。2 回目のリクエストが短いからといって再利用が証明されたと決めつける前に、実際の転送挙動を確認してください。

接続が「curl_close まで」開いたままになると述べる古い PHP の例には注意してください。PHP のドキュメントは、curl_close() が PHP 8.0 以降は効果がなく、PHP 8.5 で非推奨になったと明記しています。リソースの所有権とオブジェクトの寿命は、デプロイする PHP バージョンで理解する必要があります。

プロキシを暖めるために繰り返しリクエストを送るタイマーは、トラフィックを増やすだけで、リモートエンドポイントが閉じるのを防げません。1 つのプロキシ接続が必ず生き残るという約束よりも、通常の接続管理、期限付きのリクエスト、明確な再試行ルールを優先してください。

関連記事