HTTP bağlamının proxy seçeneği PHP'nin HTTP akış sarmalayıcısına aittir. stream_socket_client tarafından oluşturulan ham TCP bağlantısı, yalnızca bu seçenek bir bağlam nesnesinde bulunduğu için HTTP proxy istemcisi olmaz.

Kod doğrudan hedef adrese bağlanıyorsa o TCP yolunu açıyordur. Bunun yerine proxy adresine bağlanıyorsa sonraki baytların yine de proxy protokolünü uygulaması gerekir.

HTTP CONNECT için bu, geçerli bir hedef ana bilgisayar ve bağlantı noktası, gereken herhangi bir proxy kimlik doğrulaması, yanıtın eksiksiz ayrıştırılması ve hedef protokol başlamadan önce kabul anlamına gelir. Başarı ifadesi arayan tek bir fread çağrısı tam bir bağlayıcı değildir. TCP bir yanıtı okumalar arasında bölebilir veya korunması gereken ek baytlar döndürebilir.

HTTPS hedefi için TLS'in ardından kurulan tünelden başlaması ve hedefin kimliğini doğrulaması gerekir. Proxy ana bilgisayar adı, web sitesinin sertifika kimliği değildir.

Görev yalnızca bir URL getirmekse, gereken proxy protokolü için belgelenmiş desteği olan bir istemci veya bağlayıcı kullanın. PHP cURL'nin HTTP ve SOCKS ayarları desteklenen bir URL getirme yolu sunar. Ham akış, uygulama bu alt düzey protokol işini kendisi üstlendiğinde yararlıdır; ilgisiz bir HTTP sarmalayıcı örneğinden varsayımları sessizce devralmamalıdır.

İlgili makaleler