Kontekst proxy HTTP w PHP nie rekonfiguruje surowego strumienia TCP
Odróżnij opcje proxy wrappera HTTP PHP od pracy protokołu wymaganej na połączeniu TCP stream_socket_client.
Opcja proxy kontekstu HTTP należy do wrappera strumienia HTTP PHP. Surowe połączenie TCP utworzone przez stream_socket_client nie staje się klientem proxy HTTP tylko dlatego, że ta opcja istnieje w obiekcie kontekstu.
Jeśli kod łączy się bezpośrednio z adresem docelowym, otwiera tę trasę TCP. Jeśli zamiast tego łączy się z adresem proxy, kolejne bajty nadal muszą implementować protokół proxy.
Dla HTTP CONNECT oznacza to prawidłowy host i port docelowy, wszelkie wymagane uwierzytelnienie proxy, pełne przeanalizowanie odpowiedzi i akceptację przed rozpoczęciem protokołu docelowego. Pojedyncze wywołanie fread szukające frazy sukcesu nie jest kompletnym łącznikiem. TCP może podzielić odpowiedź między odczyty lub zwrócić dodatkowe bajty, które trzeba zachować.
Dla celu HTTPS protokół TLS musi następnie wystartować przez ustanowiony tunel i zweryfikować tożsamość celu. Nazwa hosta proxy nie jest tożsamością certyfikatu witryny.
Użyj klienta lub łącznika z udokumentowanym wsparciem dla wymaganego protokołu proxy, gdy zadaniem jest po prostu pobranie URL. Ustawienia HTTP i SOCKS w PHP cURL zapewniają jedną obsługiwaną ścieżkę pobierania URL. Surowy strumień jest przydatny, gdy aplikacja sama wykonuje tę pracę protokołu niższego poziomu; nie powinien po cichu dziedziczyć założeń z niepowiązanego przykładu wrappera HTTP.