اینجا می‌خوام نحوه استفاده از cURL در Command Line رو توضیح بدم، cURL یک ابزار قوی برای ارسال درخواست‌های HTTP و FTP است. شما میتونین با استفاده از اون فایل‌ها رو دانلود یا آپلود کنین، درخواست‌های GET و POST ارسال کنین و خیلی از عملیات‌های دیگه شبکه رو انجام بدین. در صورتی که نیاز به راه‌اندازی FTP Server دارین میتونین از آموزش آموزش راه‌اندازی FTP Server در ماشین مجازی استفاده کنین.

1. نصب cURL:

  • تو اکثر سیستم‌های Unix-based مثل لینوکس و macOS، cURL از قبل نصب شده. برای بررسی، دستور زیر رو اجرا کنین:
curl --version
  • تو ویندوز، می‌تونین با دانلود فایل نصبیش از سایت رسمی cURLاونو نصب کنین.

2. انجام درخواست ساده GET (دانلود محتوا از یک URL):

برای ارسال یک درخواست GET (دریافت داده از سرور) و نمایش محتوای پاسخ، دستور زیرو اجرا کنین:

curl https://example.com

این دستور محتوای صفحه‌ی وب رو تو ترمینال نمایش می‌ده.

ذخیره کردن پاسخ در فایل:

برای ذخیره کردن پاسخ در یک فایل، از گزینه -o استفاده کنین:

curl -o output.html https://example.com

فایل output.html ایجاد شده و محتوای دریافت شده توش ذخیره میشه.

3. درخواست POST:

برای ارسال داده به سرور (مانند فرم‌ها)، می‌تونین از متد POST استفاده کنین:

curl -X POST -d "param1=value1&param2=value2" https://example.com/form-handler

این دستور داده‌ها رو به URL مورد نظر ارسال می‌کنه.

4. آپلود فایل:

برای آپلود فایل به یک سرور (از طریق HTTP POST یا FTP)، از گزینه -F استفاده می‌شه. مثالی از ارسال یک فایل به یک سرور با استفاده از POST به این شکله:

curl -F "file=@path/to/your/file.txt" https://example.com/upload

این دستور فایل file.txt رو به URL مقصد ارسال می‌کنه.

5. دانلود فایل:

برای دانلود یک فایل از یک URL و ذخیره اون با نام اصلی فایل، می‌تونین از گزینه -O استفاده کنین:

curl -O https://example.com/path/to/file.zip

فایل file.zip تو دایرکتوری فعلی ذخیره می‌شه.

6. چک کردن وجود یا عدم وجود فایل:

برای بررسی وجود یا عدم وجود فایل در سرور بدون دانلود کامل اون فایل، می‌تونین از درخواست HEAD استفاده کنین:

curl -I https://example.com/path/to/file.zip

این دستور فقط هدرهای HTTP رو بدون دریافت محتوای کامل فایل برمیگردونه. اگر فایل موجود باشه، یک پاسخ ۲۰۰ دریافت میشه. اگر فایل وجود نداشته باشد، ممکنه یک پاسخ ۴۰۴ دریافت بشه.

7. درخواست با Authentication (احراز هویت):

برای ارسال درخواست به سرورهایی که نیاز به احراز هویت دارن، از گزینه -u استفاده می‌شه:

curl -u username:password https://example.com/protected

8. درخواست به APIهای JSON:

برای ارسال درخواست‌هایی که شامل JSON هستن:

curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://example.com/api

در اینجا Content-Type مشخص می‌کنه که داده‌ها به صورت JSON ارسال می‌شن.

9. اتصال به FTPS:

حالا اگه FTP از نوع Secure بود و نیاز به برقراری ارتباط امن داشت، برای تست احراز هویت میشه از این روش استفاده کرد:

curl --ftp-ssl -u MyUserName:MyPassword --ftp-pasv --head ftps://example.com

پارامتر --head باعث میشه cURL فقط هدرها رو چک کنه و فایلی رو دانلود نکنه.

اگه SSL گواهی مشکل داشت، می‌تونی از -k استفاده کنی تا گواهی‌های Self-Signed یا نامعتبر رو نادیده بگیری:

curl --ftp-ssl -k -u MyUserName:MyPassword --ftp-pasv --head ftps://example.com

جمع‌بندی:

  • GET برای دریافت داده.
  • POST برای ارسال داده.
  • -o و -O برای ذخیره پاسخ.
  • -F برای آپلود فایل.
  • -I برای چک کردن وضعیت فایل بدون دانلود.
  • -u برای احراز هویت.
  • —ftp-ssl برای اتصال به FTPS