HTTP proxy kontext PHP nenakonfiguruje surový TCP stream
Odlište proxy volby HTTP wrapperu PHP od protokolové práce potřebné u TCP spojení stream_socket_client.
Volba proxy v kontextu HTTP patří HTTP stream wrapperu PHP. Surové TCP spojení vytvořené pomocí stream_socket_client se nestane klientem HTTP proxy jen proto, že tato volba existuje v objektu kontextu.
Pokud se kód připojuje přímo k cílové adrese, otevírá tuto TCP cestu. Pokud se místo toho připojuje k adrese proxy, následující bajty stále musí implementovat protokol proxy.
Pro HTTP CONNECT to znamená platný cílový hostitel a port, případné požadované ověření proxy, úplné parsování odpovědi a přijetí dříve, než začne cílový protokol. Jediné volání fread, které hledá frázi úspěchu, není úplný konektor. TCP může odpověď rozdělit mezi čtení nebo vrátit další bajty, které je nutné zachovat.
Pro cíl HTTPS pak musí TLS začít skrz navázaný tunel a ověřit identitu cíle. Název hostitele proxy není identitou certifikátu webu.
Použijte klienta nebo konektor s dokumentovanou podporou požadovaného protokolu proxy, když je úkolem pouze načíst URL. Nastavení HTTP a SOCKS v PHP cURL nabízejí jednu podporovanou cestu k načtení URL. Surový stream je užitečný, když aplikace přebírá tuto protokolovou práci na nižší úrovni; neměl by tiše dědit předpoklady z nesouvisejícího příkladu HTTP wrapperu.