یکی از ابزارهایی که بهطور مداوم توسط یک توسعهدهنده وب برای برقراری ارتباط با سرورها، تست API ها و عیب یابی مورد استفاده قرار میگیرد، cURL است. چه برای کار با API ها یا تست وبسرویسها و خودکارسازی وظایف، تسلط بر دستورات cURL میتواند فرایند توسعه را به شکل قابلتوجهی سادهتر و سریعتر کند.
در این مقاله، ۱۰ دستور مهم cURL که هر توسعهدهنده وب باید با آنها آشنا باشد بررسی میشود. این دستورات به ارسال درخواستهای HTTP، عیبیابی مشکلات و خودکارسازی وظایف تحت وب کمک میکنند. در ادامه بررسی میشود که چگونه cURL میتواند کارهای یک توسعهدهنده را سریعتر و سادهتر کند.
cURL چیست و چرا دستورات cURL اهمیت دارند؟
پیش از ورود به جزئیات دستورات، ابتدا لازم است مشخص شود که cURL چیست. عبارت cURL مخفف Client URL بوده و یک ابزار خط فرمان (Command line) برای انتقال داده به سرور و دریافت داده از آن است. این ابزار از پروتکلهای متعددی مانند HTTP، HTTPS، FTP، SMTP، SFTP، IMAP و موارد دیگر پشتیبانی میکند.
برای توسعهدهندگان وب،cURL ابزاری ضروری جهت تست API ها، بررسی هدرهای HTTP، دانلود فایلها و خودکارسازی وظایف محسوب میشود. استفاده صحیح و بهینه از cURL جهت توسعه یک وباپلیکیشن، یکپارچهسازی API ها یا عیبیابی مشکلات، میتواند زمان و انرژی زیادی را ذخیره کند.

تصویر(1)
cURL چگونه کار میکند؟
مشابه کاری که یک مرورگر هنگام تعامل با وبسایت ها انجام میدهد، cURL نیز با ارسال درخواست به یک وبسرور و دریافت پاسخ از آن عمل میکند؛ با این تفاوت که دستورات cURL مستقیماً از طریق خط فرمان اجرا میشوند و کنترل بیشتری روی فرایند درخواست و دریافت پاسخ فراهم می نمایند.
در ادامه، نحوه عملکرد آن بهصورت خلاصه توضیح داده میشود:
- ارسال درخواست: هنگامی که دستور cURL اجرا میشود، درخواست HTTP به یک سرور (یا URL) با استفاده از پروتکل مشخصی مانند HTTP، HTTPS یا FTP ارسال میگردد. این درخواست میتواند از نوع GET، POST یا هر متد HTTP پشتیبانیشده دیگر باشد.
- دریافت پاسخ: سرور درخواست را پردازش کرده و یک پاسخ بازمیگرداند. این پاسخ میتواند شامل دادههای یک وبسایت، خروجی API یا فایل دانلودی باشد که مستقیماً در ترمینال نمایش داده می شود یا درون یک فایل ذخیره می گردد.
- مدیریت دادهها: cURL دادهها را به روشهای مختلفی همچون نمایش آنها در ترمینال، ذخیره تحت فایل یا ارسال برای یک پردازش دیگر، مدیریت میکند. همچنین امکان بررسی هدرها، تحلیل پاسخ و عیب یابی خطاها نیز وجود دارد.
در مجموع، cURL عملکردی مشابه مرورگر اما با قدرت و انعطافپذیری بسیار بیشتر دارد. این ابزار برای توسعهدهندگانی طراحی شده است که نیاز به تست API، بررسی پاسخ سرور یا خودکارسازی مستقیم درخواستها از طریق خط فرمان دارند.

تصویر(2)
مهمترین دستورات cURL برای توسعهدهندگان
اکنون که مفاهیم پایه بررسی شد، در ادامه 10 دستور مهم cURL که هر توسعهدهنده وب باید بر آنها مسلط باشد معرفی میگردد.
۱. ارسال درخواست GET
پایهایترین و رایجترین دستور در cURL، درخواست GET است که برای دریافت داده از یک URL استفاده میشود. مثال:
curl https://api.example.com/data
این دستور دادهها را از URL مشخصشده دریافت میکند. این دستور را میتوان برای دریافت اطلاعات از API ها یا بررسی وضعیت یک وبسایت استفاده کرد.
۲. ارسال درخواست POST
زمانی که ارسال داده برای سرور نیاز باشد، از درخواست POST استفاده میشود. این متد معمولاً برای ارسال فرمها یا انتقال داده به API ها کاربرد دارد. مثال:
curl -X POST -d "name=John&age=30" https://api.example.com/submit
در این مثال، -X POST نوع درخواست را مشخص کرده و دستور -d دادههای ارسالی را اضافه میکند.
۳. احراز هویت در درخواستها
بسیاری از وبسرویسها و API ها جهت ارائه داده، نیاز به احراز هویت دارند. در cURL امکان مدیریت احراز هویت با وارد کردن نام کاربری و رمز عبور یا استفاده از API Key وجود دارد.
مثال (احراز هویت پایه):
curl -u username:password https://api.example.com/protected
مثال (API Key):
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/data
۴. تست و عیب یابی درخواستهای API
یکی از قابلیتهای قدرتمند دستور cURL، امکان عیب یابی درخواستهای API می باشد. توسط دستور -v میتوان نمایی کامل از درخواست و پاسخ را که برای عیبیابی بسیار کاربردی است، مشاهده کرد.
مثال:
curl -v https://api.example.com/data
این دستور هدرهای درخواست HTTP، وضعیت پاسخ سرور و هرگونه خطای احتمالی را نمایش میدهد.
۵. ارسال داده JSON
بسیاری از API های مدرن در درخواستهای POST انتظار دریافت داده با فرمت JSON را دارند. در cURL میتوان با استفاده از دستور -H برای تنظیم هدر و گزینه -d جهت ارسال داده، JSON را بهسادگی ارسال کرد.
مثال:
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","age":30}' https://api.example.com/submit
در این مثال، نوع محتوای هدر روی application/json تنظیم شده و داده JSON در بخش اصلی درخواست ارسال میشود.

تصویر(3)
۶. دنبال کردن ریدایرکتها
اگر آدرس درخواستی به صفحه دیگری ریدایرکت شود، میتوان با استفاده از گزینه -L به cURL اعلام کرد که ریدایرکت را دنبال کند.
مثال:
curl -L https://api.example.com
این دستور تمام ریدایرکتهای HTTP را بهصورت خودکار دنبال میکند. این قابلیت هنگام کار با وبسایتهایی که آدرس آنها تغییر کرده یا چند مسیر ریدایرکت دارند، بسیار کاربردی است.
۷. مدیریت کوکیها
برخی مواقع، همچون زمانی که تعامل با سیستم ورود (Login) انجام میشود یا وضعیت سشن باید حفظ گردد، هنگام ارسال درخواست لازم است کوکیها مدیریت شوند.
مثال:
curl -c cookies.txt https://api.example.com/login
این دستور کوکیها را در فایلی با نام cookies.txt ذخیره میکند. سپس میتوان در درخواستهای بعدی با استفاده از گزینه -b همان کوکیها را ارسال کرد.
۸. دانلود فایلها
کاربرد دستور cURL تنها به تست API محدود نمیشود؛ این ابزار را میتوان برای دانلود مستقیم فایلها از یک URL نیز استفاده کرد.
مثال:
curl -O https://example.com/file.zip
گزینه -O فایل را با نام اصلی آن ذخیره میکند. این روش برای خودکارسازی دانلود فایلها بسیار کاربردی است.
۹. صرفا مشاهده هدرهای پاسخ
گاهی تنها بررسی هدرهای پاسخ کافی است و نیازی به دریافت بخش اصلی نیست. با استفاده از گزینه -I میتوان صرفا هدرهای پاسخ را دریافت کرد.
مثال:
curl -I https://example.com
این دستور تنها هدرهای HTTP را نمایش میدهد و برای بررسی کد وضعیت و سایر اطلاعات پاسخ، مفید است.
۱۰. محدود کردن زمان اجرای درخواست
اگر لازم باشد تا از طولانی شدن درخواست جلوگیری شود، میتوان حداکثر زمان اجرای آن را مشخص کرد.
مثال:
curl --max-time 10 https://example.com
این دستور تضمین میکند که اگر درخواست طی ۱۰ ثانیه تکمیل نشود، متوقف گردد.
استفاده از دستورات cURL برای ارسال داده
ارسال داده با cURL معمولاً از طریق درخواستهای POST انجام میشود. انعطافپذیری این ابزار امکان ارسال فرمتهای مختلفی از داده مانند فرم، JSON و XML را فراهم میکند. درک نحوه قالببندی و ارسال صحیح این دادهها هنگام تعامل با API ها، اهمیت زیادی دارد.
مثالی از ارسال داده فرم:
curl -X POST -d "name=John&age=30" https://api.example.com/submit

تصویر(4)
دستورات cURL جهت کار با هدرهای HTTP
هدرهای HTTP اطلاعات مهمی درباره درخواست از جمله نوع محتوا (Content-Type)، توکنهای احراز هویت و سیاستهای کش را ارائه میدهند. بهراحتی میتوان هدرها را در cURL مشاهده یا به صورت سفارشی ارسال کرد.
مثال (مشاهده هدرهای پاسخ):
curl -I https://example.com
مثال (ارسال هدر سفارشی):
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/data
جمعبندی
تسلط بر دستورات cURL برای هر توسعهدهنده وب ضروری است. از درخواستهای ساده GET گرفته تا تستهای پیشرفته API و دانلود فایلها، cURL مجموعه ابزارهای قدرتمند و انعطافپذیری را در اختیار کاربر قرار میدهد. توسط آشنایی کامل با این ۱۰ دستور برتر، مدیریت درخواستهای وب، عیبیابی مشکلات و بهینهسازی فرایند توسعه، راحت تر انجام میشود.
با استفاده صحیح از دستورات cURL میتوان فرایند توسعه را سادهتر کرد و تعامل با وبسرویسها را کارآمدتر نمود. بنابراین در مواقعی که نیاز به تست یک API یا بررسی عملکرد سرور وجود دارد، کافی است ترمینال اجرا شود و از این دستورات کاربردی cURL استفاده گردد.