Contextul proxy HTTP al PHP nu reconfigura un flux TCP brut
Distingeți opțiunile proxy ale wrapperului HTTP PHP de munca de protocol necesară pe o conexiune TCP stream_socket_client.
Opțiunea proxy a contextului HTTP aparține wrapperului de flux HTTP al PHP. O conexiune TCP brută creată de stream_socket_client nu devine client proxy HTTP doar pentru că acea opțiune există într-un obiect de context.
Dacă codul se conectează direct la adresa destinației, deschide acea rută TCP. Dacă se conectează în schimb la adresa proxy, octeții următori trebuie încă să implementeze protocolul proxy.
Pentru HTTP CONNECT, aceasta înseamnă un host și un port de destinație valide, orice autentificare proxy necesară, analizarea completă a răspunsului și acceptarea înainte de începerea protocolului de destinație. Un singur apel fread care caută o expresie de succes nu este un conector complet. TCP poate împărți un răspuns între citiri sau poate returna octeți suplimentari care trebuie păstrați.
Pentru o destinație HTTPS, TLS trebuie apoi să pornească prin tunelul stabilit și să verifice identitatea destinației. Numele de gazdă al proxy-ului nu este identitatea certificatului site-ului web.
Folosiți un client sau un conector cu suport documentat pentru protocolul proxy necesar atunci când sarcina este pur și simplu de a obține un URL. Setările HTTP și SOCKS ale PHP cURL oferă o cale acceptată de obținere a unui URL. Un flux brut este util atunci când aplicația preia singură acea muncă de protocol de nivel inferior; nu ar trebui să moștenească în tăcere presupuneri dintr-un exemplu de wrapper HTTP fără legătură.