دستور cURL چیست؟ درک نحو، گزینه ها و مثال ها

دستور cURL (URL مشتری) در لینوکس سیستم شما را قادر می سازد تا داده ها را با سرورها از طریق اینترنت تبادل کند. این ابزار برای کارهای مختلف از جمله دانلود فایل ها و بررسی عملکرد API ضروری است.

در این آموزش، همه چیز در مورد دستور cURL از جمله نصب و نحو آن را توضیح خواهیم داد. همچنین چندین مثال دستور cURL را برای استفاده در دنیای واقعی خواهید آموخت.

دستور cURL چیست؟

ابزار cURL به شما امکان می دهد به یک سرور متصل شوید و داده ها را مستقیماً از سیستم خود تبادل کنید command-line رابط (CLI). می توانید با تعیین آدرس URL نقطه پایانی مقصد را تعیین کنید.

این command-line ابزار انتقال دو جهته را با استفاده از روش های مختلف انتقال پشتیبانی می کند که در ادامه بیشتر توضیح خواهیم داد. علاوه بر این، سازگاری آن با پروتکل های مختلف مانند HTTPS، SMTP و FTP باعث می شود که cURL به یک ابزار انعطاف پذیر تبدیل شود.

به دلیل راحتی، دستور cURL Linux روش ترجیحی برای کارهای مختلف مربوط به انتقال داده، مانند آزمایش API است. در حالی که راه‌حل‌های جایگزین، مانند Postman، جامع‌تر هستند، اما می‌توانند کمتر ساده باشند.

در حال نصب cURL

دستور cURL باید به طور پیش فرض از قبل نصب شده باشد روی اکثر سیستم عامل های لینوکس برای بررسی اینکه آیا پیکربندی شده است، ترمینال را باز کنید یا اگر از یک پلت فرم سرور خصوصی مجازی از راه دور (VPS) استفاده می کنید، از طریق SSH متصل شوید.

برای هاستینگer کاربران VPS نیز می توانند با یک کلیک به سیستم خود متصل شوند مرورگر terminal. به سادگی مدیریت VPS خود را باز کنید page روی hPanel و دکمه بالا سمت راست را بزنید.

پس از دسترسی به CLI سیستم، موارد زیر را برای بررسی نصب بودن cURL اجرا کنید:

curl --version

اگر سیستم شما دارای cURL باشد، CLI شماره نسخه نصب شده را برمی گرداند. در غیر این صورت، شما دریافت خواهید کرد دستور پیدا نشد خطا

برای نصب آن، دستورات زیر را متعاقبا اجرا کنید. به یاد داشته باشید که جایگزین کنید apt با مدیریت بسته صحیح مبتنی بر روی سیستم عامل لینوکس شما:

sudo apt update && sudo apt upgrade
sudo apt install curl

دستور cURL دستور و گزینه های اولیه

دستور اولیه دستور cURL به صورت زیر است:

curl [options] [URL]

در اینجا تجزیه و تحلیل نحو است:

  • CURL – نام دستوری که به سیستم شما می گوید که cURL را اجرا می کنید.
  • گزینه ها – پرچم های اضافی که رفتار دستور cURL را تغییر می دهند.
  • URL – آدرس سرور مقصد یا نقطه پایانی.

از آنجایی که گزینه های مختلفی وجود دارد، آن را بررسی کنید اسناد cURL برای لیست کامل در میان آنها، در اینجا برخی از پرکاربردترین آنها وجود دارد:

  • -کمک – کتابچه راهنمای دستور cURL و گزینه ها را چاپ می کند.
  • -O – فایل اصلی را از URL داده شده دانلود می کند.
  • – URL های تغییر مسیر را دنبال می کند.
  • -من – فقط هدر را واکشی می کند.
  • – داده های فرم را ارسال می کند.
  • -اف – داده ها یا فایل های پیچیده را آپلود می کند.
  • -X – روش انتقال داده را مشخص می کند.

دستورات لینوکس به حروف کوچک و بزرگ حساس هستند. اطمینان حاصل کنید که از گزینه ها با حروف بزرگ استفاده کنید تا از خطا جلوگیری کنید.

دستور cURL به شما امکان می دهد با استفاده از روش های مختلف HTTP داده ها را از یک نقطه پایانی ارسال یا واکشی کنید:

  • دریافت کنید – روش پیش‌فرض که داده‌ها را از سرور واکشی می‌کند.
  • ارسال کنید – داده ها را به نقطه پایانی ارسال می کند.
  • قرار دادن – یک منبع ایجاد می کند روی نقطه پایانی یا به روز رسانی یک موجود.
  • حذف کنید – داده ها را از نقطه پایانی حذف می کند.

نمونه های دستور cURL

در این بخش، چندین نمونه واقعی از دستور cURL را برای کارهای مختلف بررسی خواهیم کرد.

گرفتن وب page

ابتدایی ترین استفاده از دستور cURL برای واکشی محتوای HTML یک وب است page. برای انجام این کار، به سادگی cURL را با نقطه پایان مقصد اجرا کنید:

curl https://www.google.com

دستور cURL از وب خارج می شود pageکد HTML به عنوان یک خروجی استاندارد در CLI شما.

همچنین می‌توانید درخواست‌های HTTP را با استفاده از یک دستور واحد به چندین URL ارسال کنید:

curl https://www.example1.com https://example2.com

ذخیره خروجی در یک فایل

می‌توانید خروجی فرمان cURL را با اضافه کردن آن با عملیات تغییر مسیر (>). اگر می خواهید نتیجه را برای نظارت یا بایگانی ذخیره کنید، این کار مفید است.

پیشنهاد می‌کنیم بخوانید:  روش نصب Maven روی اوبونتو: استفاده از Apt و وب سایت رسمی

به عنوان مثال، موارد زیر محتوای HTML گوگل را در آن ذخیره می کند file1.txt:

curl https://www.google.com > file1.txt

اگر فایلی نداشته باشید، دستور به صورت خودکار فایل را ایجاد می کند. در ضمن اگر file1.txt از قبل وجود دارد، cURL فایل موجود را بازنویسی می کند.

دانلود فایل با نام اصلی

یکی از رایج ترین کاربردهای cURL، دانلود یک فایل از راه دور از اینترنت، شبیه به wget است. برای انجام این کار، از -O گزینه ای مانند:

curl -O http://www.example.com/path/file.zip

دستور، فایل مشخص شده به نام را دانلود می کند file.zip به دایرکتوری کاری فعلی شما بدون -O گزینه، cURL محتوای فایل را به عنوان یک خروجی استاندارد نمایش می دهد روی CLI شما

دنبال تغییر مسیرها

اگر URL به دیگری هدایت شود page، cURL آن را دنبال نمی کند و آن را برمی گرداند 301 یا 302 وضعیت مثلاً بررسی کنیم googlr.com:

curl http://www.googlr.com

از آنجایی که این URL به google.com، cURL نمی تواند آن را دنبال کند و آن را برگرداند 301 وضعیتی که نشان می دهد سند منتقل شده است.

برای دنبال کردن خودکار تغییر مسیر و خروجی google.comمحتوای آن را اضافه کنید یا -موقعیت گزینه ای مانند این:

curl -L http://www.googlr.com

اگر URL چندین بار تغییر مسیر داد، می‌توانید تعداد دفعاتی که cURL آن را دنبال می‌کند با استفاده از آن محدود کنید – حداکثر تغییر مسیر گزینه ای مانند این:

curl -L --max-redirs 3 http://www.googlr.com

در حال واکشی فقط سرصفحه ها

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

اطلاعات موجود در هدرهای پاسخ معمولاً برای اهداف آزمایشی کافی است. به عنوان مثال، شامل وضعیت پاسخ HTTP، تماس‌های API باقی‌مانده و تغییر مسیرها است.

برای واکشی فقط هدرها با استفاده از cURL، عبارت را اضافه کنید -من (حرف بزرگ من) یا – سر گزینه ای مانند این:

curl -I http://www.google.com

درخواست های تایید شده

هنگام ارسال یک درخواست به یک نقطه پایانی ایمن مانند یک API داخلی، معمولاً باید آن را با گنجاندن اعتبار در دستور cURL خود احراز هویت کنید.

بسته به روی روش احراز هویت، با این حال، دستور و گزینه متفاوت است. به عنوان مثال، اگر از یک نام کاربری و رمز عبور معمولی استفاده می کنید، موارد زیر را اجرا کنید:

curl -u username:password <URL>

شما همچنین می توانید حذف کنید :رمز عبور و بعداً آن را جداگانه وارد کنید تا از نمایش اعتبار جلوگیری شود روی را bash تاریخچه

اگر از توکن Bearer استفاده می کنید، از دستور زیر استفاده کنید:

curl -H "Authorization: Bearer <token>" <URL>

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

curl -H "Authorization: ApiKey <API key>" <URL>

اگر API شما به طور خاص به کلید مجوز مستقیماً در URL نیاز دارد، می توانید آن را با استفاده از دستور زیر اضافه کنید:

curl "https://api.example.com/data؟api_key=api_key"

در حال ارسال داده های فرم

cURL به شما امکان می دهد داده ها را به راحتی در فرم ها ارسال کنید روی یک نقطه پایانی اگر می خواهید خودکار را انجام دهید، این مفید است process با استفاده از bash اسکریپت یا زمانی که نمی خواهید با رابط وب مقصد تعامل داشته باشید.

ارسال فرم با استفاده از cURL مستلزم مشخص کردن آن است کلید-مقدار جفت این کلید به نام فرم اشاره دارد، در حالی که ارزش داده هایی را که می خواهید وارد کنید را نشان می دهد. نحو به این صورت است:

key1=value1&key2=value2

شما به دو گزینه نیاز دارید، -X برای تعیین روش ارسال و برای نشان دادن cURL که می خواهید داده را درج کنید. دستور کامل ممکن است به شکل زیر باشد:

curl -X POST -d "username=johndoe&password=secret" https://example.com/login

در مثال، cURL از درخواست POST برای وارد کردن اعتبار به لاگین استفاده می کند pageفرم.

هنگام ارسال داده های فرم، مطمئن شوید که از این موارد پیروی می کند فرمت نامگذاری URL. به عنوان مثال، a را جایگزین کنید فضا با %20 و یک علامت (&) با %26.

همچنین می توانید داده ها را از یک فایل با استفاده از نحو زیر وارد کنید. مطمئن شوید که فایل حاوی داده‌ها در قالب جفت کلید-مقدار مناسب است.

curl -X POST -d @data.txt https://example.com/login

در حال آپلود یک فایل

اگر می خواهید یک فایل محلی یا داده های پیچیده تر را به یک نقطه پایانی ارسال کنید، از آن استفاده کنید -اف گزینه این پرچم همچنین فرض می کند که شما به طور پیش فرض از متد POST استفاده می کنید، بنابراین نیازی به تعیین دستی آن با -X.

پیشنهاد می‌کنیم بخوانید:  وردپرس 5.9: نگاهی عمیق به ویرایش کامل سایت

به عنوان مثال، موارد زیر یک فایل متنی را به نقطه پایانی ارسال می کند:

curl -F "file=@test.txt" https://example.com/upload

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

curl -F "file=@/path/to/image.jpg" -F "file=@/path/to/image2.jpg" https://example.com/upload

همچنین می توانید فایل ها را با استفاده از cURL از طریق پروتکل انتقال فایل (FTP) آپلود کنید. تفاوت این است که شما از -تی گزینه ای مانند این:

curl -T /path/to/file ftp://ftp.example.com/remote/path/

برای پروتکل انتقال فایل ایمن (SFTP) یا سرور FTP محافظت شده، اعتبارنامه احراز هویت را قبل از -تی گزینه ای مانند این:

curl -u username:password -T /path/to/file sftp://sftp.example.com/remote/path/

تنظیم هدرهای سفارشی

استفاده از هدرهای درخواست سفارشی به شما امکان می دهد با وب سرور یا API به روشی خاص تعامل داشته باشید. این به شما امکان می دهد تا متادیتای خاصی را برای یک پاسخ شخصی اضافه کنید، که هنگام آزمایش عملکرد نقطه پایانی مفید است.

می توانید یک هدر سفارشی با -اچ گزینه ای با استفاده از این نحو:

​​curl -H "Header: value" <URL>

به عنوان مثال، می توانید نوع محتوایی را که می خواهید ارسال کنید در هدر مشخص کنید. در اینجا دستور است:

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

همچنین می توانید یک هدر سفارشی برای تعریف نوع محتوایی که به عنوان پاسخ می پذیرید تنظیم کنید. به عنوان مثال، اگر می خواهید نقطه پایانی با JSON پاسخ دهد، از موارد زیر استفاده کنید:

curl -H "Accept: application/json" https://api.example.com/data

هنگام آزمایش API، می توانید یک هدر سفارشی برای تعیین نسخه مورد استفاده تنظیم کنید. دستور به شکل زیر است:

curl -H "X-API-Version: 2" https://api.example.com/v2/data

استفاده از پروتکل های مختلف

بسته به روی در نقطه پایانی، ممکن است لازم باشد از پروتکل های مختلف با cURL استفاده کنید. به عنوان مثال، ممکن است بخواهید از SFTP برای انتقال فایل ها استفاده کنید در حالی که آزمایش یک سرور پستی به SMTP نیاز دارد.

برای اجرای cURL با استفاده از پروتکل‌های مختلف، کافی است آن را در ابتدای URL نقطه پایانی خود قبل از آن مشخص کنید ://. به عنوان مثال، این دستور داده ها را با استفاده از SMTP منتقل می کند:

curl --url smtp://smtp.example.com --mail-from "user@example.com" --mail-rcpt "recipient@example.com" -T email.txt

فرمان پیامی از طرف ارسال می کند user@example.com به recipient@example.com از طریق smtp.example.com سرور پستی با استفاده از پروتکل SMTP.

نتیجه گیری

دستور cURL در لینوکس به سیستم شما اجازه می دهد به یک سرور متصل شده و داده ها را با آن انتقال دهد. این به دلیل سازگاری با پروتکل های مختلف و توانایی گنجاندن اطلاعات اضافی مانند یک هدر سفارشی شناخته شده است.

در حالی که cURL در اکثر توزیع‌های لینوکس از قبل نصب شده است، می‌توانید با استفاده از مدیریت بسته خود آن را به صورت دستی پیکربندی کنید. کاربرد اصلی این دستور واکشی وب است pageمحتوای یا پاسخ API.

همچنین می توانید با استفاده از cURL فایل ها را دانلود کنید -O گزینه یا آپلود موارد با اضافه کردن -اف پرچم علاوه بر این، استفاده کنید -اچ برای تعیین یک هدر درخواست سفارشی برای اهداف مختلف، از جمله افزودن یک نشانه احراز هویت و مشخص کردن نسخه API.

برای ارسال داده های فرم با استفاده از cURL، از گزینه در همین حال، اضافه کنید -اف برای آپلود منابع پیچیده تر مانند فایل ها پرچم گذاری کنید.

سوالات متداول دستور cURL

دستور cURL در لینوکس برای چیست؟

در لینوکس، دستور cURL شما را قادر می سازد تا به یک سرور راه دور متصل شوید و داده ها را انتقال دهید. برای کارهای مختلف از جمله دانلود فایل از یک وب سایت و ارسال درخواست به یک API برای آزمایش مفید است.

cURL از چه پروتکل هایی پشتیبانی می کند؟

cURL از چه پروتکل هایی پشتیبانی می کند؟
cURL از پروتکل های مختلف انتقال داده از جمله HTTP، HTTPS، FTP و SMTP پشتیبانی می کند. برای استفاده از یک پروتکل خاص، به سادگی آن را در ابتدای URL قبل از وارد کنید :// بخش به عنوان مثال، را اضافه کنید ftp://www.example.com در صورت تمایل به استفاده از نقطه پایانی FTP.

چگونه بررسی کنم که cURL نصب شده است؟ روی سیستم من؟

برای بررسی اینکه آیا cURL نصب شده است یا خیر روی سیستم خود را اجرا کنید نسخه پیچی فرمان اگر CLI شما یک شماره نسخه برمی گرداند، cURL نصب می شود. در غیر این صورت، آن را به خروجی دستور پیدا نشد خطا