HTTP-proxykonteksten til PHP rekonfigurerer ikkje ein rå TCP-straum
Skil mellom proxyinnstillingane til HTTP-innpakninga i PHP og protokollarbeidet som krevst på ei stream_socket_client-TCP-tilkopling.
Proxyinnstillinga i HTTP-konteksten høyrer til HTTP-straumeinnpakninga i PHP. Ei rå TCP-tilkopling som stream_socket_client opprettar, blir ikkje ein HTTP-proxyklient berre fordi innstillinga finst i eit kontekstobjekt.
Viss koden koplar direkte til måladressa, opnar han den TCP-ruta. Viss han i staden koplar til proxyadressa, må dei neste byta framleis implementere proxyprotokollen.
For HTTP CONNECT tyder det ein gyldig målvert og -port, all påkravd proxyautentisering, full parsing av svaret og godtaking før målprotokollen byrjar. Eitt enkelt fread-kall som leitar etter ein suksessfrase er ikkje ein komplett koplar. TCP kan dele eit svar over fleire lesingar eller returnere ekstra byta som må takast vare på.
For eit HTTPS-mål må TLS deretter starte gjennom den etablerte tunnelen og stadfeste identiteten til målet. Proxyvertnamnet er ikkje sertifikatidentiteten til nettstaden.
Bruk ein klient eller koplar med dokumentert støtte for den påkravde proxyprotokollen når oppgåva berre er å hente ein URL. HTTP- og SOCKS-innstillingane til PHP cURL gir éin støtta veg for å hente ein URL. Ein rå straum er nyttig når applikasjonen sjølv eig det protokollarbeidet på lågare nivå; han bør ikkje i det stille arve føresetnader frå eit urelatert HTTP-innpakningseksempel.