De proxyoptie van de HTTP-context hoort bij de HTTP-streamwrapper van PHP. Een ruwe TCP-verbinding die door stream_socket_client wordt gemaakt, wordt niet automatisch een HTTP-proxyclient doordat die optie in een contextobject bestaat.

Als de code rechtstreeks verbinding maakt met het bestemmingsadres, opent die deze TCP-route. Als die in plaats daarvan verbinding maakt met het proxyadres, moeten de volgende bytes nog steeds het proxyprotocol implementeren.

Voor HTTP CONNECT betekent dat een geldige bestemmingshost en -poort, eventuele vereiste proxyauthenticatie, volledige verwerking van het antwoord en aanvaarding voordat het bestemmingsprotocol begint. Eén fread-aanroep die naar een succesfrase zoekt, is geen volledige connector. TCP kan een antwoord over meerdere leesbewerkingen splitsen of extra bytes teruggeven die bewaard moeten blijven.

Voor een HTTPS-bestemming moet TLS daarna via de opgezette tunnel starten en de identiteit van de bestemming verifiëren. De proxhostnaam is niet de certificaatidentiteit van de website.

Gebruik een client of connector met gedocumenteerde ondersteuning voor het vereiste proxyprotocol wanneer de taak simpelweg is om een URL op te halen. De HTTP- en SOCKS-instellingen van PHP cURL bieden één ondersteund pad om een URL op te halen. Een ruwe stream is nuttig wanneer de toepassing dat protocolwerk op een lager niveau zelf doet; die zou niet stilzwijgend aannames moeten overnemen uit een niet-verwant HTTP-wrappervoorbeeld.

Gerelateerde artikelen