Proxyport og målport i cURL
Behold porten til en HTTPS-tjeneste i mål-URL-en og porten til mellomleddet i proxy-URL-en, uten å overstyre dem via CURLOPT_PORT.
En HTTPS-tjeneste på port 8443 er tilgjengelig via en HTTP-proxy på port 8080. Disse tallene beskriver forskjellige forbindelser:
$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
Applikasjonen eier fortsatt utførelsen, feilhåndteringen og livssyklusen til håndtaket. Utdraget holder rutingsinndataene sammen uten å endre sertifikatvalideringen.
cURL kobler først til proxy.example:8080. For dette HTTPS-målet navngir tunnel-forespørselen api.example:8443, og TLS-identiteten forblir api.example.
CURLOPT_PORT er en overstyring av målporten, ikke proxyens port. Å sette den til 443 hver gang en URL begynner med https, kan overstyre en tjeneste som bevisst ligger på 8443. libcurl anbefaler å velge porten i URL-en i stedet for å bruke det alternativet.
Når du gjenbruker et håndtak, må du også ta høyde for en tidligere eksplisitt portoverstyring. En ny URL gjør ikke motstridende beholdte alternativer lettere å tolke.
Mellomleddet må tillate CONNECT til den valgte målporten. En avvisning for 8443 er ikke grunn til å flytte proxylytteren eller slå av TLS-validering.