O contexto de proxy HTTP de PHP non reconfigura un fluxo TCP en bruto
Distinga as opcións de proxy do envoltorio HTTP de PHP do traballo de protocolo necesario nunha conexión TCP de stream_socket_client.
A opción de proxy do contexto HTTP pertence ao envoltorio de fluxo HTTP de PHP. Unha conexión TCP en bruto creada por stream_socket_client non se converte en cliente de proxy HTTP só porque esa opción exista nun obxecto de contexto.
Se o código se conecta directamente ao enderezo de destino, abre esa ruta TCP. Se se conecta no seu lugar ao enderezo do proxy, os seguintes bytes aínda deben implementar o protocolo de proxy.
Para HTTP CONNECT iso significa unha máquina e un porto de destino válidos, calquera autenticación de proxy necesaria, unha análise completa da resposta e a aceptación antes de que comece o protocolo de destino. Unha soa chamada a fread que busca unha frase de éxito non é un conector completo. TCP pode dividir unha resposta entre lecturas ou devolver bytes adicionais que deben conservarse.
Para un destino HTTPS, TLS debe iniciarse despois a través do túnel establecido e verificar a identidade do destino. O nome de máquina do proxy non é a identidade do certificado do sitio web.
Use un cliente ou conector con soporte documentado para o protocolo de proxy requirido cando a tarefa é simplemente obter un URL. Os axustes HTTP e SOCKS de PHP cURL ofrecen unha ruta admitida para obter un URL. Un fluxo en bruto é útil cando a aplicación asume ese traballo de protocolo de nivel inferior; non debería herdar en silencio suposicións dun exemplo de envoltorio HTTP non relacionado.