بازدیدکننده‌ای روی دکمه‌ای کلیک می‌کند. سرور PHP شما یک API خارجی را فراخوانی می‌کند. API اتصال خروجی سرور را می‌بیند، یا خروجی پراکسی‌ای که برای آن اتصال پیکربندی شده است. مرورگر بازدیدکننده اتصال جداگانه‌ای به وب‌سایت شما دارد.

کپی کردن نشانی بازدیدکننده در یک هدر نمی‌تواند اتصال PHP را به شبکه بازدیدکننده منتقل کند. هدرها داده‌هایی هستند که روی اتصالی از پیش برقرارشده فرستاده می‌شوند. مقصد می‌تواند در منطق برنامه خود از هدر ارسال مورد اعتماد استفاده کند، اما این کار مقدار هدر را به نشانی مبدأ اتصال تبدیل نمی‌کند.

پراکسی باید اتصال را بپذیرد

برای فرستادن PHP cURL از طریق ماشین دیگری، آن ماشین باید سرویس پراکسی در دسترسی ارائه دهد که اجازه حمل درخواست را داشته باشد. فرایند PHP باید بتواند به آن متصل شود. نشست معمولی مرورگر بازدیدکننده هیچ نقطه پایانی پراکسی همه‌منظوره‌ای به سرور شما نمی‌دهد.

گزینه پراکسی libcurl سرویسی را انتخاب می‌کند که cURL به آن متصل می‌شود. نمی‌تواند از مرورگر دلبخواهی بخواهد درخواست را از طرف آن آغاز کند.

درخواست مرورگر طراحی دیگری است

برای برخی APIها، مرورگر می‌تواند مستقیماً مقصد را فراخوانی کند. این درخواست را روی مسیر شبکه کاربر قرار می‌دهد، تابع پیکربندی پراکسی خودش. همچنین به APIای نیاز دارد که برای کلاینت‌های مرورگر طراحی شده باشد. دسترسی بین‌مبدأ از CORS پیروی می‌کند و اعتبارنامه‌هایی که به کد مرورگر فرستاده می‌شوند برای آن کلاینت در دسترس می‌شوند.

پیش از انتخاب گزینه پراکسی تصمیم بگیرید درخواست به کجا تعلق دارد. اعتبارنامه‌های سرور را روی سرور نگه دارید؛ وقتی سرویس پشتیبانی می‌کند از یکپارچه‌سازی مستند مرورگر استفاده کنید. هیچ‌یک از این دو طراحی میان‌بُر مطمئنی برای ارث‌بری هویت شبکه بازدیدکننده توسط درخواست سرور ارائه نمی‌دهد.

مقالات مرتبط