Handle cURL di PHP e riutilizzo delle connessioni proxy
Distinguere la conservazione della cache delle connessioni di libcurl dalla garanzia che una connessione TCP attraverso un proxy resti attiva.
Conservare un handle cURL può consentire ai trasferimenti successivi di riutilizzare connessioni compatibili memorizzate nella cache. Non può però obbligare un proxy a tenere aperta una connessione TCP all'infinito.
La controparte può chiudere una connessione inattiva, un percorso di rete può scomparire e un trasferimento successivo può richiedere un'altra rotta o un altro tunnel. Il riutilizzo è un'ottimizzazione lato client soggetta a queste condizioni, non una garanzia di disponibilità.
Per il lavoro ripetuto con una sola politica proxy, mantenete vivo l'handle pertinente o la cache delle connessioni multi-handle ed evitate le opzioni che richiedono deliberatamente nuove connessioni o vietano il riutilizzo, a meno che l'attività non ne abbia bisogno. Esaminate il comportamento reale del trasferimento prima di supporre che una seconda richiesta più breve dimostri il riutilizzo.
Attenzione ai vecchi esempi PHP che affermano che la connessione resta aperta "fino a curl_close". La documentazione PHP indica che curl_close() non ha alcun effetto da PHP 8.0 ed è deprecato da PHP 8.5. La proprietà delle risorse e il ciclo di vita degli oggetti vanno compresi nella versione di PHP che distribuite.
Un timer che invia richieste ripetute per mantenere caldo il proxy aggiunge traffico e comunque non può impedire all'endpoint remoto di chiudere. Preferite la normale gestione delle connessioni, le richieste limitate nel tempo e regole di nuovo tentativo chiare alla promessa che una connessione proxy sopravviva sempre.