Skip to content

فلگ‌های curl توضیح داده شده

فلگ‌های curl که روزانه به کار می‌روند، گروه‌بندی‌شده بر اساس کار: شکل‌دادن به درخواست، تنظیم هدرها، احراز هویت، ارائه هویت، کنترل خروجی، دنبال‌کردن ریدایرکت‌ها، تنظیم اتصال و اشکال‌زدایی. هر سطر فلگ را با یک فراخوانی واقعی جفت می‌کند.

curl یک درخواست HTTP می‌فرستد و بدنه پاسخ را چاپ می‌کند. بیشتر توان آن در فلگ‌هاست: متد را انتخاب می‌کنند، هدرها و داده را می‌چسبانند، احراز هویت را مدیریت می‌کنند و تصمیم می‌گیرند چه چیزی چاپ شود. شکل بلند هر جا روشن‌تر باشد نشان داده می‌شود؛ شکل کوتاه همان تک‌حرف است. URLها را داخل گیومه بگذارید تا shell رشته کوئری را نخورد.

جدول مرجع · 54 ورودی
54 of 54 rows
شکل درخواست
متد HTTP را تنظیم می‌کند.curl -X POST https://api.test
یک هدر درخواست اضافه می‌کند.curl -H "Accept: application/json" URL
بدنه می‌فرستد (متد POST و یک content type پیش‌فرض را تنظیم می‌کند).curl -d "name=Ada" URL
مقادیر -d را به‌صورت پارامترهای کوئری به یک GET می‌چسباند.curl -G -d "q=hi" URL
داده فرم multipart می‌فرستد (بارگذاری فایل).curl -F "file=@photo.png" URL
داده فرم را با اعمال کدگذاری URL می‌فرستد.curl --data-urlencode "name=Ada Lovelace" URL
یک فایل را با PUT بارگذاری می‌کند.curl -T big.zip URL
بارگذاری را به فایل راهور می‌چسباند به‌جای جایگزینی آن.curl -a -T log.txt ftp://server.test/logs/log.txt
JSON و API
JSON را با content type درست می‌فرستد.curl -H "Content-Type: application/json" -d '{"a":1}' URL
محتوای یک فایل را به‌عنوان بدنه می‌فرستد.curl -d @body.json URL
JSON را بدون تنظیم دستی هدرها می‌فرستد (curl 7.82+).curl --json '{"a":1}' URL
احراز هویت
احراز هویت HTTP Basic با نام کاربری و رمز عبور.curl -u ada:s3cr3t URL
یک توکن bearer از OAuth می‌فرستد.curl --oauth2-bearer TOKEN URL
هر طرح توکنی را به‌صورت دستی می‌فرستد.curl -H "Authorization: Bearer TOKEN" URL
گواهی کلاینت و کلید آن را برای TLS دوطرفه ارائه می‌کند.curl --cert client.pem --key key.pem URL
سرور را با یک فایل باندل CA تأیید می‌کند.curl --cacert ca.pem URL
سرور را با یک پوشه از CAها تأیید می‌کند.curl --capath /etc/ssl/certs URL
درخواست را از طریق پروکسی می‌فرستد.curl -x http://proxy.test:8080 URL
تأیید TLS را فقط برای پرش پروکسی رد می‌کند.curl -x https://proxy.test:8443 --proxy-insecure URL
TLS 1.3 را به‌عنوان کمترین نسخه الزامی می‌کند.curl --tlsv1.3 URL
هویت
یک رشته User-Agent سفارشی می‌فرستد.curl -A "Mozilla/5.0" URL
هدر Referer می‌فرستد.curl -e https://example.com/page URL
کوکی‌ها را همراه درخواست می‌فرستد.curl -b "session=abc123" URL
کوکی‌های پاسخ را در یک فایل ذخیره می‌کند.curl -c cookies.txt URL
خروجی
بدنه را در یک فایل می‌نویسد.curl -o page.html URL
بدنه را با نام فایل راهور ذخیره می‌کند.curl -O https://site/file.tgz
هدرهای پاسخ را بالای بدنه چاپ می‌کند.curl -i URL
فقط هدرها را می‌گیرد (HEAD می‌فرستد).curl -I URL
شمارنده پیشرفت و خطاها را پنهان می‌کند.curl -s URL
یک رشته قالب‌بندی را بعد از بدنه چاپ می‌کند (زمان‌بندی، وضعیت).curl -w "%{http_code}\n" -o /dev/null URL
در خطاهای HTTP با کد غیرصفر خارج می‌شود و بدنه خطا را رد می‌کند.curl -f URL
در خطاهای HTTP با کد غیرصفر خارج می‌شود ولی بدنه همچنان چاپ می‌شود.curl --fail-with-body URL
نام فایل ذخیره‌شده را از هدر Content-Disposition می‌گیرد.curl -OJ URL
انتقال ناتمام را از جایی که متوقف شده از سر می‌گیرد.curl -C - -O URL
به‌جای شمارنده پیش‌فرض یک نوار پیشرفت نشان می‌دهد.curl -# -O URL
حتی در حالت بی‌صدا خطاها را چاپ می‌کند.curl -sS URL
هدرهای پاسخ را در یک فایل می‌نویسد.curl -D headers.txt URL
پاسخ فشرده درخواست می‌کند و آن را رمزگشایی می‌کند.curl --compressed URL
پوشه‌های گمشده در مسیر -o را می‌سازد.curl -o cache/api/data.json --create-dirs URL
ریدایرکت‌ها و اتصال
ریدایرکت‌های 3xx را دنبال می‌کند.curl -L URL
حداکثر ثانیه‌های انتظار برای اتصال TCP.curl --connect-timeout 5 URL
حداکثر ثانیه‌ها برای کل درخواست.curl --max-time 30 URL
تأیید گواهی TLS را رد می‌کند.curl -k https://self-signed.test
خطاهای گذرا را تا N بار دوباره امتحان می‌کند.curl --retry 3 URL
در هر خطایی دوباره امتحان می‌کند، نه فقط خطاهای گذرا.curl --retry 3 --retry-all-errors URL
اتصال را روی IPv4 یا IPv6 اجباری می‌کند.curl -4 URL
یک میزبان و پورت را به یک نشانی نگاشت می‌کند و DNS را دور می‌زند.curl --resolve api.test:443:127.0.0.1 https://api.test
انتقال را به یک رابط شبکه یا نشانی مقید می‌کند.curl --interface eth0 URL
چند URL را هم‌زمان منتقل می‌کند.curl -Z URL1 URL2
برای انتقال از HTTP/2 یا HTTP/3 استفاده می‌کند.curl --http3 URL
بدنه را هم‌طور که می‌رسد پخش می‌کند به‌جای بافر کردن.curl -N URL
فلگ‌های بعدی را از یک فایل پیکربندی می‌خواند.curl -K flags.cfg URL
اشکال‌زدایی
تبادل کامل درخواست و پاسخ را چاپ می‌کند.curl -v URL
همه چیز ارسال‌شده و دریافتی را hex-dump می‌کند.curl --trace - URL