PHPs HTTP-proxykontekst rekonfigurerer ikke en rå TCP-strøm
Skill mellom proxyinnstillingene til HTTP-innpakningen i PHP og protokollarbeidet som kreves på en stream_socket_client-TCP-tilkobling.
Proxyinnstillingen i HTTP-konteksten tilhører HTTP-strømmeinnpakningen i PHP. En rå TCP-tilkobling som stream_socket_client oppretter, blir ikke en HTTP-proxyklient bare fordi innstillingen finnes i et kontekstobjekt.
Hvis koden kobler direkte til destinasjonsadressen, åpner den denne TCP-ruten. Hvis den i stedet kobler til proxyadressen, må de neste bytene fortsatt implementere proxyprotokollen.
For HTTP CONNECT betyr det en gyldig destinasjonsvert og -port, eventuell påkrevd proxyautentisering, full parsing av svaret og aksept før destinasjonsprotokollen begynner. Et enkelt fread-kall som leter etter en suksessfrase er ikke en komplett kobler. TCP kan dele et svar over flere lesinger eller returnere ekstra byte som må bevares.
For en HTTPS-destinasjon må TLS deretter starte gjennom den etablerte tunnelen og verifisere destinasjonens identitet. Proxyvertsnavnet er ikke nettstedets sertifikatidentitet.
Bruk en klient eller kobler med dokumentert støtte for den påkrevde proxyprotokollen når oppgaven bare er å hente en URL. HTTP- og SOCKS-innstillingene til PHP cURL gir én støttet vei for å hente en URL. En rå strøm er nyttig når applikasjonen selv eier det protokollarbeidet på lavere nivå; den bør ikke i stillhet arve antakelser fra et urelatert HTTP-innpakningseksempel.