L'opzione proxy del contesto HTTP appartiene al wrapper di stream HTTP di PHP. Una connessione TCP grezza creata da stream_socket_client non diventa un client proxy HTTP solo perché quell'opzione esiste in un oggetto di contesto.

Se il codice si connette direttamente all'indirizzo di destinazione, apre quella rotta TCP. Se invece si connette all'indirizzo del proxy, i byte successivi devono ancora implementare il protocollo proxy.

Per HTTP CONNECT ciò significa un host e una porta di destinazione validi, qualsiasi autenticazione proxy richiesta, l'analisi completa della risposta e l'accettazione prima che inizi il protocollo di destinazione. Una singola chiamata fread che cerca una frase di successo non è un connettore completo. TCP può dividere una risposta tra più letture o restituire byte aggiuntivi che devono essere conservati.

Per una destinazione HTTPS, TLS deve poi avviarsi attraverso il tunnel stabilito e verificare l'identità della destinazione. Il nome host del proxy non è l'identità del certificato del sito web.

Usare un client o un connettore con supporto documentato per il protocollo proxy richiesto quando il compito è semplicemente recuperare un URL. Le impostazioni HTTP e SOCKS di PHP cURL offrono un percorso supportato per recuperare un URL. Uno stream grezzo è utile quando l'applicazione possiede quel lavoro di protocollo di livello inferiore; non dovrebbe ereditare silenziosamente presupposti da un esempio di wrapper HTTP non correlato.

Articoli correlati