پورت پروکسی در برابر پورت مقصد در cURL
پورت یک سرویس HTTPS را در نشانی مقصد و پورت واسطه را در نشانی پروکسی نگه دارید و آنها را با CURLOPT_PORT بازنویسی نکنید.
سرویس HTTPS روی پورت 8443 از طریق پروکسی HTTP روی پورت 8080 در دسترس است. این اعداد اتصالهای متفاوتی را توصیف میکنند:
$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
برنامه هنوز اجرا، مدیریت خطا و چرخه عمر دستگیره را در اختیار دارد. قطعه کد ورودیهای مسیریابی را کنار هم نگه میدارد بدون آنکه بررسی گواهی را تغییر دهد.
cURL ابتدا به proxy.example:8080 متصل میشود. برای این مقصد HTTPS، درخواست تونل api.example:8443 را نام میبرد و هویت TLS همان api.example میماند.
CURLOPT_PORT بازنویسی پورت مقصد است، نه پورت پروکسی. تنظیم آن روی 443 هر زمان که نشانی با https آغاز شود میتواند سرویسی را که عمداً روی 8443 میزبانی شده بازنویسی کند. libcurl توصیه میکند پورت را در نشانی انتخاب کنید نه با آن گزینه.
هنگام استفاده دوباره از دستگیره، بازنویسی صریح پورت قبلی را هم در نظر بگیرید. نشانی جدید تفسیر گزینههای متناقض باقیمانده را آسانتر نمیکند.
واسطه باید CONNECT به پورت مقصد انتخابشده را مجاز کند. رد شدن 8443 دلیلی برای جابهجایی شنونده پروکسی یا خاموش کردن اعتبارسنجی TLS نیست.