عیبیابی پراکسی در R: نسخه libcurl، پشتوانه TLS و پروتکلها
نسخه، پیادهسازی TLS و ویژگیهای پروتکل libcurl متصل به R را جدا از فایل اجرایی curl بیرونی بررسی کنید.
R نصبشده در محیط Conda ممکن است از ساخت libcurl متفاوتی با فایل اجرایی curl در ترمینال استفاده کند. از نشست R که شکست میخورد بپرسید واقعاً کدام کتابخانه را دارد:
info <- libcurlVersion()
info
attr(info, 'ssl_version')
attr(info, 'protocols')
مقدار متنی نسخه libcurl متصل را گزارش میکند. ویژگی ssl_version آن پیادهسازی TLS را مشخص میکند، و protocols پروتکلهای مقصد پشتیبانیشده توسط آن کتابخانه را فهرست میکند. اینها مسیر libcurl داخلی R را توصیف میکنند، نه یک فرمان شل به نام curl.
گزارش را با روش دانلود تطبیق دهید
download.file با method='libcurl' از این کتابخانه استفاده میکند. method='curl' فایل اجرایی بیرونی را اجرا میکند. انتخاب خودکار فعلی HTTP(S) از libcurl استفاده میکند و گزینه download.file.method با مقدار NULL میتواند این پیشفرض را باقی بگذارد.
بررسی را در همان محیط واقعی که کار یا IDE انتخاب میکند اجرا کنید. نصب دیگر R میتواند نسخه یا پشتوانه TLS دیگری گزارش کند حتی وقتی اسکریپتهایش یکسان به نظر میرسند.
وجود پروتکل https در فهرست یعنی مقصدهای HTTPS پشتیبانی میشوند. این اثبات نمیکند که یک شنونده پراکسی خاص TLS را میپذیرد. پراکسی HTTP معمولی برای دانلود HTTPS همچنان نشانی پراکسی با http:// دارد.
گزارش کتابخانه را همراه با روش انتخابی و خطای اتصال نگه دارید. شکست گواهی، طرح پراکسی پشتیبانینشده و شنونده ردشده یافتههای متفاوتی میمانند؛ شماره نسخه بهتنهایی تشخیص آنها نیست.