دستور cURL در اکثر سیستم های مبتنی بر یونیکس در دسترس است. این مخفف عبارت Client URL است. دستورات cURL طوری طراحی شده اند که به عنوان راهی برای تأیید اتصال به URL ها و به عنوان ابزاری عالی برای انتقال داده ها عمل کنند. بیایید ببینیم چگونه می توانید از آن در لینوکس استفاده کنید.
وب سایت روناک هاست بزرگترین مرجع خرید و فروش انواع سرویس های ابری و میزبانی وب است که از جلمه آن ها می توان به موارد زیر اشاره کرد:
سرور مجازی NVME | یک مدل سرور مجازی که به هارد های NVME پر سعرت مجهز شده است که بتواند سایت ها و اطلاعات را با سرعت بالا بارگذاری کند
سرور مجازی بورس | نوعی سرور مجازی که مخصوص کسانی است که برای بورس ، فارکس و انجام معاملات مالی و جهانی می خواهد سرویسی ایمن و سریع داشته باشند
سرور مجازی ترید | نوعی دیگر از سرور های مجازی است که مخصوص افراد تریدر و کسانی که در بازار های مالی و ارز دیجیتال فعالیت می کنند ساخته شده است
سرور اختصاصی | یکی دیگر از سرویس های روناک هاست که مخصوص افراد حرفه ای و کارهای سنگین برای کسانی که فعالیت های اختصاصی روی سرور می خواهند انجام دهند
هاست وردپرس ارزان | یک هاست محبوب برای سایت های وردپرسی با قیمت مناسب و بالاترین کیفیت و پشتیبانی عالی
هاست ووکامرس | یک هاست وردپسی اما مناسب برای سایت های فروشگاهی و آنلاین شاپ ها با سرعت بالا و قیمت بسیار مناسب
دستور cURL در لینوکس از لیست پروتکل های زیر پشتیبانی می کند
- HTTP and HTTPS
- FTP and FTPS
- IMAP and IMAPS
- POP3 and POP3S
- SMB and SMBS
- SFTP
- SCP
- TELNET
- GOPHER
- LDAP and LDAPS
- SMTP and SMTPS
این پروتکل ها مهم ترین هستند، اما موارد دیگری نیز وجود دارد. cURL توسط libcurl، که یک کتابخانه انتقال URL رایگان در سمت مشتری است، پشتیبانی میشود.
نسخه یا ورژن cURL را بررسی کنید
قبل از شروع کار با cURL، باید به VPS خود متصل شویم. اگر به کمک نیاز دارید، این آموزش SSH را بررسی کنید. ابتدا بیایید بررسی کنیم که کدام نسخه از cURL با دستور زیر موجود است:
curl –version
نتیجه نسخه cURL و لیستی از پروتکل های پشتیبانی شده را نشان می دهد. اکنون می توانیم نمونه ای از دستورات cURL را ببینیم.
دستور اولیه و اساسی cURL
بیایید نحوه استفاده از دستورات cURL را بیاموزیم. نحو اصلی cURL به شکل زیر است:
curl [OPTIONS] [URL]
ساده ترین استفاده از cURL نمایش محتوای یک صفحه است. مثال زیر برای نمایش صفحه اصلی سایت domaintest.com استفاده می شود.
curl domaintest.com
این کد منبع کامل صفحه اصلی دامنه را فراهم می کند. اگر هیچ پروتکلی مشخص نشده باشد، cURL آن را به عنوان HTTP تفسیر می کند.
گزینه های دستور cURL در لینوکس برای فایل ها
دستورات cURL برای دانلود فایل ها از راه دور استفاده می شود. شما می توانید این کار را به دو روش مختلف انجام دهید:
- -O یک فایل را دانلود می کند و آن را در پوشه کاری فعلی با همان نام فایل ذخیره می کند.
- -o به شما امکان می دهد نام فایل یا مکان دیگری را مشخص کنید.
در اینجا یک نمونه از این نوع عمل آورده شده است:
curl -O http://testdomain.com/testfile.tar.gz
دستور بالا فایل را به عنوان testfile.tar.gz ذخیره می کند. حال به دستور بعدی توجه کنید.
curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz
دستور بالا فایل را به عنوان newtestfile.tar.gz ذخیره می کند.
اگر به دلیلی دانلود قطع شد، می توانید با استفاده از cURL آن را از سر بگیرید. با دستور زیر می توانید این کار را انجام دهید:
curl -C – -O http://testdomain.com/testfile.tar.gz
با استفاده از cURL میتوانیم چندین فایل را با استفاده از دستور زیر آپلود کنیم:
curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz
اگر می خواهید چندین فایل را از چندین URL دانلود کنید، همه آنها را در یک فایل فهرست کنید. دستور cURL را می توان با xargs برای دانلود URL های مختلف ترکیب کرد.
به عنوان مثال، اگر ما یک فایل allUrls.txt داریم که حاوی لیستی از همه URL های دانلود است، از مثال دستورزیر می توان برای دانلود همه فایل ها استفاده کرد.
xargs –n 1 curl -O < allUrls.txt
دستور cURL در لینوکس برای http
cURL همچنین می تواند زمانی که یک سرور پروکسی وجود دارد استفاده شود. اگر پشت یک سرور پراکسی هستید که از پورت 8090 در exampleproxy.com استفاده می کند، فایل ها را مطابق شکل زیر دانلود کنید:
curl -x proxyexample.com:8090 -U username:password -O http://testdomain.com/testfile.tar.gz
در مثال بالا، اگر پروکسی به روش احراز هویت نیاز ندارد، میتوانید از پارامتر -U username:password صرف نظر کنید.
یک درخواست HTTP معمولی همیشه حاوی یک هدر است. هدر HTTP اطلاعات اضافی را با درخواست فعلی به وب سرور راه دور ارسال می کند. اگرچه ابزارهای توسعه دهنده مرورگر به شما امکان می دهد اطلاعات هدر را تأیید کنید، می توانید با استفاده از دستور cURL آن را تأیید کنید. در زیر نمونه ای از نحوه بازیابی اطلاعات هدر از یک وب سایت آورده شده است.
curl -I www.testdomain.com
با استفاده از cURL می توانید درخواست GET و POST را صادر کنید. یک درخواست GET به شکل زیر است:
curl http://testdomain.com
نمونه ای با درخواست POST در زیر نشان داده شده است:
curl –data “texte=Bonjour” https://mondomaine.com/premierePage.jsp
در اینجا text=Hello پارامتر درخواست POST است. این روش مشابه روشی است که برای فرم های HTML استفاده می شود. همچنین می توانید چندین روش HTTP را در یک دستور curl مشخص کنید. برای این کار از گزینه -next مانند زیر استفاده کنید:
curl –data “texte=Bonjour” https://mydomain.com/firstPage.jsp –next https://mydomain.com/showResultat.jsp
این شامل یک درخواست POST و به دنبال آن یک درخواست GET است.
هر درخواست HTTP یک عامل کاربر دارد که به عنوان بخشی از درخواست ارسال می شود. این نشان دهنده جزئیات مرورگر وب مشتری است. بهطور پیشفرض، درخواست cURL حاوی cURL و شماره نسخه به عنوان جزئیات عامل کاربر است. یک نمونه نتیجه در زیر نشان داده شده است:
“GET/HTTP/1.1” 200 “_” ”curl/7/29/0”
شما می توانید این اطلاعات عامل پیش فرض کاربر را با استفاده از دستور زیر تغییر دهید:
curl -I http://mydomain.com –user-agent “My new browser”
حالا نتیجه اصلاح شده این خواهد بود:
“GET / HTTP/1.1” 200 “_” “My new browser”
دستور cURL در لینوکس برای کوکی های وب سایت
دستور cURL را می توان برای بررسی اینکه کدام کوکی ها در هر URL دانلود شده اند استفاده می شود. بنابراین اگر به https://www.examplewebsite.com بروید، میتوانید یک فایل ایجاد کنید، کوکیها را ذخیره کنید و با استفاده از cat یا ویرایشگر VIM آنها را مشاهده کنید. در زیر نمونه ای از چنین دستوری آورده شده است:
curl –cookie-jar Mycookies.txt https://www.examplewebsite.com/index.html -O
به همین ترتیب، اگر کوکی ها را در یک فایل دارید، می توانید آن را به وب سایت ارسال کنید. نمونه ای از این دستور در زیر نشان داده شده است:
curl –cookie Mycookies.txt https://www.examplewebsite.com
cURL برای FTP
دستور cURL از FTP پشتیبانی می کند! می توانید از آن برای دانلود فایل ها از یک سرور راه دور استفاده کنید.
curl -u username:password -O ftp://exampleftpserver/testfile.tar.gz
در دستور بالا، ftp://exampleftpserver یک سرور FTP است که اتصالات را می پذیرد. نام کاربری و رمز عبور را می توان برای اتصالات FTP ناشناس نادیده گرفت. دستور را تایپ کرده و پر شدن نوار پیشرفت را تماشا کنید. همچنین می توانید با دستور زیر فایل ها را آپلود کنید:
curl -u username:password -T testfile.tar.gz ftp://exampleserverftp
باز هم میتوانیم نام کاربری و رمز عبور اتصالات FTP ناشناس را نادیده بگیریم.
محدود کردن نتایج دستور cURL در لینوکس
با استفاده از cURL، نمی توانید اندازه نتیجه را بدانید. می توانید پهنای باند را محدود کنید تا اطمینان حاصل کنید که توسط cURL اشباع نشده است.دستور زیر پهنای باند را به 100K محدود می کند:
curl –limit-rate 100K http://testdomain.com/testfile.tar.gz -O
لیست برخی از مواردی که توسط دستور cURL در لینوکس پشتیبانی می شوند
Explanation | Option |
این دستور تعیین میکند که در اتصال از چه رمزنگاریهایی استفاده شود. لیست رمزنگاریها باید معتبر باشد. | –ciphers
|
تعیین حداکثر زمانی که اجازه دارید به سرور متصل باشید.( برحسب ثانیه) | –connect-timeout
|
یک کوکی را در درخواست ارسال کنید، به عنوان مثال؛ -b “name=value” or –cookie “name=value”. | –cookie or -b
|
یک هدر سفارشی به درخواست اضافه کنید، به عنوان مثال؛ -H “Content-Type: application/json” or –header “Content-Type: application/json”. | –header or -H
|
نام کاربری و رمز عبور را برای احراز هویت پایه basic authentication)) ارسال کنید، به عنوان مثال؛-u “username:password” or –user “username:password”. | –user or -u
|
فقط هدرهای پاسخ را ارسال کنید، نه بدنه (محتوا) آن. | -I or –head
|
دنبالههای (ریدایرکت) را دنبال کنید. | -L or –location
|
یک فایل مشخص کنید تا پاسخ را در آن ذخیره کنید، به عنوان مثال، -o response.txt یا –output response.txt. | –output or -o
|
خروجی دستور را بیصدا میکند و فقط خطاها را نمایش میدهد. | –silent or -s
|
خطاها را نمایش میدهد، اما خروجی عادی را نمایش نمیدهد. | –show-error or -S
|
نتیجه گیری
cURL یک دستور قدرتمند و گستردهاست و به طور گستردهای استفاده میشود. این دستور مفید است زمانی که بستگی به خط فرمان دارید. این دستور چندین گزینه دارد و چندین پروتکل را پشتیبانی میکند. اینجا یک دلیل عالی برای یادگیری این دستور وجود دارد!
فراموش نکنید که اگر میخواهید دستورات پیشرفته را یاد بگیرید، فقط کافی است به راهنمایی مراجعه کنید که باید در همه نسخههای یونیکس وجود داشته باشد.
man curl
امیدواریم این آموزش برای شما مفید بوده باشد. برای مطالعه ی آموزش های دیگر می توانید، مقالات دیگری از سایت را مطالعه کنید.