Wat CURLOPT_PROXYPORT toevoegt aan een cURL-proxyinstelling
Begrijp de aparte proxy-poortoptie, de voorrang ervan ten opzichte van een poort in CURLOPT_PROXY, en waarom het eindpunt nog steeds een host nodig heeft.
CURLOPT_PROXYPORT levert een poortnummer. Het identificeert geen proxyhost, kiest geen protocol en maakt geen listener op de lokale machine.
Een nieuwe PHP cURL-configuratie is makkelijker te lezen wanneer het volledige eindpunt bij elkaar blijft:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:3128');
De libcurl-documentatie raadt de aparte poortoptie af. Bestaande code kan hem nog steeds gebruiken met een host zonder ingebedde poort:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example');
curl_setopt($handle, CURLOPT_PROXYPORT, 3128);
Een poort die expliciet in de proxystring staat, heeft voorrang boven de aparte optie. Vermijd het onderhouden van twee tegenstrijdige nummers.
Als alleen CURLOPT_PROXYPORT in een fragment voorkomt, controleer dan de rest van de handle-configuratie en de toepasselijke omgeving. Het fragment alleen onthult niet welke proxyhost, als die er is, libcurl zal gebruiken.
Poort 3128 is een bekende implementatiekeuze, geen protocoldetector. Gebruik het echte protocol en de poort van de listener. Voor een openbare HTTP-route biedt de HTTP-proxylijst adres-en-poortkandidaten die samen in de proxy-URL blijven. Een proxy die op een andere poort bereikbaar is, hoeft niet te verhuizen alleen om een voorbeeld te volgen.