HTTP-kontekstens proxyindstilling hører til PHPs HTTP-strøm-wrapper. En rå TCP-forbindelse, som stream_socket_client opretter, bliver ikke en HTTP-proxyklient, blot fordi indstillingen findes i et kontekstobjekt.

Hvis koden forbinder direkte til destinationsadressen, åbner den denne TCP-rute. Hvis den i stedet forbinder til proxyadressen, skal de næste bytes stadig implementere proxyprotokollen.

For HTTP CONNECT betyder det en gyldig destinationsvært og -port, enhver påkrævet proxygodkendelse, fuld parsing af svaret og accept, før destinationsprotokollen begynder. Et enkelt fread-kald, der søger efter en succesfrase, er ikke en komplet connector. TCP kan dele et svar over flere læsninger eller returnere yderligere bytes, som skal bevares.

For en HTTPS-destination skal TLS derefter starte gennem den etablerede tunnel og verificere destinationsidentiteten. Proxyværtsnavnet er ikke webstedets certifikatidentitet.

Brug en klient eller connector med dokumenteret support til den påkrævede proxyprotokol, når opgaven blot er at hente en URL. PHP cURLs HTTP- og SOCKS-indstillinger giver én understøttet vej til at hente en URL. En rå strøm er nyttig, når applikationen selv ejer det protokolarbejde på lavere niveau; den bør ikke stiltiende arve antagelser fra et urelateret HTTP-wrapper-eksempel.

Relaterede artikler