A PHP HTTP-proxy kontextje nem konfigurálja át a nyers TCP-folyamot
Különböztesse meg a PHP HTTP-burkolójának proxy-beállításait a stream_socket_client TCP-kapcsolatán szükséges protokollmunkától.
A HTTP-kontextus proxy-beállítása a PHP HTTP-folyamburkolójához tartozik. A stream_socket_client által létrehozott nyers TCP-kapcsolat nem attól válik HTTP-proxyklienssé, hogy ez a beállítás létezik egy kontextusobjektumban.
Ha a kód közvetlenül a célcímhez csatlakozik, megnyitja azt a TCP-útvonalat. Ha helyette a proxy címéhez csatlakozik, a következő bájtoknak továbbra is meg kell valósítaniuk a proxy protokollt.
HTTP CONNECT esetén ez érvényes célgazdagépet és -portot, bármilyen szükséges proxyhitelesítést, a válasz teljes elemzését és elfogadást jelent, mielőtt a célprotokoll elkezdődik. Egyetlen fread-hívás, amely egy sikerfrázist keres, nem teljes csatlakozó. A TCP megoszthat egy választ olvasások között, vagy további bájtokat adhat vissza, amelyeket meg kell őrizni.
HTTPS-cél esetén a TLS-nek ezután a létrehozott alagúton keresztül kell elindulnia, és ellenőriznie kell a cél identitását. A proxy gazdagépneve nem a webhely tanúsítványidentitása.
Használjon olyan klienst vagy csatlakozót, amelynek dokumentált támogatása van a szükséges proxy protokollhoz, ha a feladat egyszerűen egy URL lekérése. A PHP cURL HTTP- és SOCKS-beállításai egy támogatott URL-lekérési útvonalat kínálnak. A nyers folyam akkor hasznos, ha az alkalmazás maga vállalja ezt az alacsonyabb szintű protokollmunkát; nem szabad csendben örökölnie a feltételezéseket egy nem kapcsolódó HTTP-burkoló példából.