.\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) Daniel Stenberg, , et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" * SPDX-License-Identifier: curl .\" * .\" ************************************************************************** .\" .\" DO NOT EDIT. Generated by the curl project managen man page generator. .\" .TH curl 1 "2026-09-02" "curl 8.22.0" "curl Manual" .SH "نام (NAME)" curl \- ابزاری برای انتقال داده از یا به سرور با استفاده از نشانیهای اینترنتی (URL) .SH "خلاصه دستور (SYNOPSIS)" \fBcurl [options / URLs]\fP .SH "توضیحات (DESCRIPTION)" \fBcurl\fP ابزاری برای انتقال داده از یا به یک سرور با استفاده از نشانیهای اینترنتی (URL) است. این ابزار از این پروتکلها پشتیبانی میکند: DICT، FILE، FTP، FTPS، GOPHER، GOPHERS، HTTP، HTTPS، IMAP، IMAPS، LDAP، LDAPS، MQTT، MQTTS، POP3، POP3S، RTSP، SCP، SFTP، SMB، SMBS، SMTP، SMTPS، TELNET، TFTP، WS و WSS. curl برای تمامی ویژگیهای مربوط به انتقال، از libcurl نیرو میگیرد. برای جزئیات \fIlibcurl(3)\fP را ببینید. .SH "نشانی اینترنتی (URL)" نحو URL وابسته به پروتکل است. میتوانید توضیحات دقیق آن را در RFC 3986 بیابید. اگر یک URL را بدون طرحواره ابتدایی "protocol://" مشخص کنید، curl حدس میزند چه پروتکلی مد نظر شماست. سپس بهطور پیشفرض روی HTTP قرار میگیرد، اما بر اساس پیشوندهای پرکاربرد نام میزبان موارد دیگر را در نظر میگیرد. برای مثال، برای نامهای میزبانی که با "ftp." شروع میشوند، curl فرض میکند شما FTP میخواهید. شما میتوانید هر تعداد URL را در خط فرمان مشخص کنید. آنها بهصورت متوالی و به همان ترتیبی که مشخص شدهاند دریافت میشوند، مگر اینکه از \fI\-\-parallel\fP استفاده کنید. میتوانید گزینههای خط فرمان و URLها را بهصورت ترکیبی و با هر ترتیبی در خط فرمان مشخص کنید. curl هنگام انجام چندین انتقال تلاش میکند از اتصالات مجدداً استفاده کند، به طوری که دریافت فایلهای متعدد از یک سرور، اتصالات و دستتکانیهای راهاندازی چندگانه مصرف نکند. این کار سرعت را بهبود میبخشد. استفاده مجدد از اتصال تنها برای URLهایی که در یک فراخوانی خط فرمان مشخص شدهاند قابل انجام است و نمیتوان آن را بین اجراهای مجزای curl انجام داد. curl هر آنچه را که در خط فرمان ارائه شود و گزینه خط فرمان یا آرگومان آن نباشد، یک URL فرض کرده و با آن به همین صورت رفتار میکند. .SH "تطبیق الگو (GLOBBING)" شما میتوانید با نوشتن فهرستها درون آکولادها یا بازهها درون براکتها، چندین URL یا بخشهایی از URLها را مشخص کنید. ما این قابلیت را "globbing" (تطبیق الگو) مینامیم. یک فهرست با سه نام مختلف را به این صورت مشخص کنید: .nf https://fun.example/{one,two,three}.jpg sftp://{one,two,three}.example/README .fi دنبالههایی از سریهای حرفی\-عددی را با استفاده از [] ایجاد کنید، مانند: .nf ftp://ftp.example.com/file[1\-100].txt .fi با صفرهای پیشرو: .nf ftp://ftp.example.com/file[001\-100].txt .fi با حروف الفبا: .nf ftp://ftp.example.com/file[a\-z].txt .fi دنبالههای تو در تو پشتیبانی نمیشوند، اما میتوانید از چندین دنباله در کنار یکدیگر استفاده کنید: .nf https://example.com/archive[1996\-1999]/vol[1\-4]/part{a,b,c}.html .fi میتوانید یک گامشمار برای بازهها مشخص کنید تا هر Nاُمین عدد یا حرف را دریافت کنید: .nf https://example.com/file[1\-100:10].txt https://example.com/file[a\-z:2].txt .fi هنگام استفاده از دنبالههای [] یا {} در فراخوانی از اعلان خط فرمان، احتمالاً باید کل URL را درون علامت نقل قول دوگانه قرار دهید تا از تداخل پوسته با آن جلوگیری شود. این موضوع همچنین برای سایر نویسههایی که خاص تلقی میشوند، مانند \(aq&\(aq، \(aq?\(aq و \(aq*\(aq نیز صدق میکند. بخشهای مجزای تطبیق الگو (globbing) را میتوان در گزینه \fI\-\-output\fP ارجاع داد تا امکان استفاده مجدد از آنها در نام فایل مقصد فراهم شود. از نسخه 8.21.0 در curl به بعد، بخشهای مجزای تطبیق الگو میتوانند نامگذاری شده و با نامهایشان مورد ارجاع قرار گیرند. این نام حرفی\-عددی و حساس به بزرگی و کوچکی حروف، درون براکتهای زاویهدار پس از نویسه آغازین قرار میگیرد. مثالها: .nf https://fun.example/{one,two,three}.jpg ftp://ftp.example.com/file[1\-100].txt .fi تنظیم دو بار یک نام یکسان برای glob یک خطا است. تطبیق الگو را با \fI\-\-globoff\fP غیرفعال کنید. .SH "متغیرها (VARIABLES)" curl از متغیرهای خط فرمان پشتیبانی میکند (اضافه شده در 8.3.0). متغیرها را با \fI\-\-variable\fP name=content یا \fI\-\-variable\fP name@file مقداردهی کنید (جایی که "file" در صورت تنظیم روی یک خط تیره منفرد (\-) میتواند stdin باشد). محتوای متغیر را میتوان با استفاده از "{{name}}" در پارامترهای گزینه گسترش داد، در صورتی که نام گزینه دارای پیشوند "\fI\-\-expand\-\fP" باشد. این کار محتوای متغیر "name" را درج میکند، یا در صورتی که این نام به عنوان متغیر وجود نداشته باشد، یک مقدار خالی درج میشود. برای درج دقیق "{{" در رشته، یک بکاسلش به عنوان پیشوند به آن اضافه کنید، مانند "\\{{". شما میتوانید با وارد کردن متغیرهای محیطی از طریق \&"\fI\-\-variable\fP %name" به آنها دسترسی داشته باشید و آنها را گسترش دهید. این کار متغیری به نام "name" را وارد میکند، اما در صورتی که آن متغیر محیطی از قبل تنظیم نشده باشد، با یک خطا خارج میشود. برای ارائه یک مقدار پیشفرض در صورتی که از قبل تنظیم نشده باشد، از "\fI\-\-variable\fP %name=content" یا \&"\fI\-\-variable\fP %name@content" استفاده کنید. مثال: دریافت متغیر محیطی USER و گسترش آن در URL؛ در صورتی که USER تنظیم نشده باشد با شکست مواجه میشود: .nf -\-variable \(aq%USER\(aq -\-expand\-url = "https://example.com/api/{{USER}}/method" .fi هنگام گسترش متغیرها، curl از مجموعهای از توابع پشتیبانی میکند که میتوانند استفاده از محتوای متغیر را راحتتر کنند. این ابزار میتواند فاصلههای خالی ابتدا و انتها را با "trim" حذف کند، محتوا را با \&"json" به صورت یک رشته با گیومههای JSON خروجی دهد، رشته را با "url" کدگذاری URL کند، با "b64" آن را کدگذاری base64 کند و با "64dec" آن را رمزگشایی base64 نماید. برای اعمال توابع روی گسترش متغیر، آنها را با علامت دونقطه (colon) در سمت راست متغیر اضافه کنید. محتوای متغیری که دارای بایتهای null باشد و هنگام گسترش کدگذاری نشود، باعث ایجاد خطا میشود. مثال: دریافت محتوای فایلی به نام $HOME/.secret در متغیری به نام "fix". اطمینان حاصل کنید که محتوا هنگام ارسال به عنوان داده POST، پیراسته (trimmed) شده و percent\-encoded باشد: .nf -\-variable %HOME -\-expand\-variable fix@{{HOME}}/.secret -\-expand\-data "{{fix:trim:url}}" https://example.com .fi متغیرها و گسترشهای خط فرمان در 8.3.0 اضافه شدند. .SH "خروجی (OUTPUT)" اگر دستور دیگری داده نشود، curl دادههای دریافتی را در stdout مینویسد. میتوان به آن دستور داد که در عوض با استفاده از گزینههای \fI\-\-output\fP یا \fI\-\-remote\-name\fP آن دادهها را در یک فایل محلی ذخیره کند. اگر چندین URL برای انتقال در خط فرمان به curl داده شود، به طور مشابه به چندین گزینه برای مشخص کردن محل ذخیره آنها نیاز خواهد داشت. curl محتوایی را که دریافت میکند یا به عنوان خروجی مینویسد، تجزیه یا به اصطلاح "درک" نمیکند. هیچگونه کدگذاری یا رمزگشایی انجام نمیدهد، مگر اینکه صریحاً با گزینههای اختصاصی خط فرمان از آن خواسته شود. .SH "پروتکلها (PROTOCOLS)" curl از پروتکلهای متعددی پشتیبانی میکند، یا به بیان اصطلاحات URL: طرحها (schemes). ساخت (build) خاص شما ممکن است از همه آنها پشتیبانی نکند. .IP DICT به شما امکان میدهد واژهها را با استفاده از فرهنگهای لغت آنلاین جستجو کنید. .IP FILE خواندن یا نوشتن فایلهای محلی. curl از دسترسی به URLهای "file://" از راه دور پشتیبانی نمیکند، اما هنگام اجرا بر روی Microsoft Windows استفاده از رویکرد بومی UNC کار میکند. فقط مسیرهای مطلق. .IP FTP(S) curl با ترفندها و اهرمهای کنترلی فراوان از File Transfer Protocol پشتیبانی میکند. با یا بدون استفاده از TLS. .IP GOPHER(S) دریافت فایلها. .IP HTTP(S) curl با گزینهها و گونههای متعددی از HTTP پشتیبانی میکند. بسته به گزینههای ساخت (build) و گزینههای صحیح خط فرمان، میتواند با نسخههای 0.9، 1.0، 1.1، 2 و 3 پروتکل HTTP ارتباط برقرار کند. .IP IMAP(S) با استفاده از این پروتکل خواندن ایمیل، curl میتواند ایمیلها را برای شما دریافت کند. با یا بدون استفاده از TLS. .IP LDAP(S) curl میتواند جستجوهای دایرکتوری را با یا بدون TLS برای شما انجام دهد. .IP MQTT curl از پروتکل MQTT نسخه 3 پشتیبانی میکند. دانلود از طریق MQTT معادل اشتراک در یک تاپیک (subscribing to a topic) است، در حالی که بارگذاری/ارسال (uploading/posting) معادل انتشار در یک تاپیک (publishing on a topic) است. در حال حاضر MQTT بر روی TLS پشتیبانی نمیشود (هنوز). .IP POP3(S) دانلود از یک سرور pop3 به معنای دریافت یک ایمیل است. با یا بدون استفاده از TLS. .IP RTSP curl از دانلودهای RTSP 1.0 پشتیبانی میکند. .IP SCP curl از انتقالهای scp در پروتکل SSH نسخه 2 پشتیبانی میکند. .IP SFTP curl از SFTP (پیشنویس 5) انجامشده بر روی SSH نسخه 2 پشتیبانی میکند. .IP SMB(S) curl از SMB نسخه 1 برای بارگذاری و بارگیری پشتیبانی میکند. .IP SMTP(S) بارگذاری محتوا در یک سرور SMTP به معنای ارسال ایمیل است. با یا بدون TLS. .IP TELNET واکشی یک URL مربوط به telnet یک نشست تعاملی را آغاز میکند که در آن آنچه را از stdin میخواند ارسال کرده و آنچه را سرور میفرستد در خروجی نمایش میدهد. .IP TFTP curl میتواند بارگیریها و بارگذاریهای TFTP را انجام دهد. .IP WS(S) WebSocket روی HTTP/1 انجام میشود. WSS دلالت بر این دارد که روی HTTPS کار میکند. .SH "نشانگر پیشرفت (PROGRESS METER)" curl بهطور معمول در حین عملیات یک نشانگر پیشرفت را نمایش میدهد که نشاندهنده مقدار داده منتقلشده، سرعت انتقال، زمان تخمینی باقیمانده و موارد دیگر است. نشانگر پیشرفت، نرخ انتقال را بر حسب بایت بر ثانیه نمایش میدهد. پسوندهای بهکار رفته ("k" برای کیلو، "M" برای مگا، "G" برای گیگا، "T" برای ترا، "P" برای پتا و "E" برای اگزا) بر پایه 1024 هستند. برای مثال 1k برابر با 1024 بایت است. 1M برابر با 1048576 بایت است. به بیان دقیق، این امر واحدها را کیبیبایت و مبیبایت و غیره میسازد. curl این دادهها را بهطور پیشفرض در ترمینال نمایش میدهد، بنابراین اگر curl را برای انجام عملیاتی فراخوانی کنید و در شرف نوشتن داده در ترمینال باشد، نشانگر پیشرفت را \fIغیرفعال میکند\fP چرا که در غیر این صورت با ترکیب شدن نشانگر پیشرفت و دادههای پاسخ، خروجی به هم میریزد. اگر برای درخواستهای HTTP POST یا PUT خواستار یک نشانگر پیشرفت هستید، باید با استفاده از تغییر مسیر شل (>)، \fI\-\-output\fP یا موارد مشابه، خروجی پاسخ را به یک فایل هدایت کنید. این موضوع برای بارگذاری FTP صدق نمیکند، زیرا آن عملیات هیچ داده پاسخی را به ترمینال ارسال نمیکند. اگر به جای نشانگر معمولی، یک نوار پیشرفت را ترجیح میدهید، \fI\-\-progress\-bar\fP به کارتان میآید. همچنین میتوانید با گزینه \fI\-\-silent\fP نشانگر پیشرفت را بهطور کامل غیرفعال کنید. .SH "نسخه (VERSION)" این صفحه راهنما curl 8.22.0 را شرح میدهد. اگر از نسخه جدیدتری استفاده میکنید، احتمال دارد که این صفحه راهنما آن را بهطور کامل مستند نکرده باشد. اگر از نسخه قدیمیتر استفاده میکنید، این سند تلاش میکند اطلاعات مربوط به نسخهای را که تغییرات را معرفی کرده است شامل شود. همواره میتوانید با اجرای دستور زیر مطلع شوید که آخرین نسخه curl کدام است: .nf curl https://curl.se/info .fi نسخه آنلاین این صفحه راهنما همواره آخرین نگارش را نشان میدهد: https://curl.se/docs/manpage.html .SH "گزینهها (OPTIONS)" گزینهها با یک یا دو خط تیره آغاز میشوند. بسیاری از گزینهها نیازمند یک مقدار اضافی در کنار خود هستند. اگر متن ارائهشده با یک خط تیره آغاز نشود، فرض میشود که یک URL است و با آن بهعنوان یک URL برخورد میشود. فرم کوتاه "single\-dash" گزینهها، برای مثال \-d، میتواند با یا بدون فاصله بین آن و مقدارش استفاده شود، اگرچه وجود یک فاصله بهعنوان جداکننده توصیه میشود. فرم بلند دو خط تیره، برای مثال \fI\-\-data\fP، به یک فاصله بین خود و مقدارش نیاز دارد. گزینههای نسخه کوتاه که به مقادیر اضافی نیاز ندارند، میتوانند بلافاصله در کنار یکدیگر استفاده شوند؛ مانند اینکه میتوانید تمام گزینههای \fI\-O\fP، \fI\-L\fP و \fI\-v\fP را یکجا بهصورت \fI\-OLv\fP مشخص کنید. بهطور کلی، تمام گزینههای بولی با \--\fBoption\fP فعال شده و مجدداً با \--\fBno\-\fPoption غیرفعال میشوند. یعنی شما از همان نام گزینه استفاده میکنید اما پیشوند "no\-" را به ابتدای آن میافزایید. در این فهرست ما بیشتر نسخه \--\fBoption\fP آنها را نشان میدهیم. هنگامی که از \fI\-\-next\fP استفاده میشود، وضعیت تجزیهگر بازنشانی شده و بهجز گزینههایی که سراسری هستند، دوباره با یک وضعیت تمیز از گزینهها شروع میکنید. گزینههای سراسری حتی پس از \fI\-\-next\fP نیز مقدار و معنای خود را حفظ میکنند. اگر نام گزینه طولانی به علامت مساوی ("=") ختم شود، آرگومان همان متنی است که در سمت راست آن قرار دارد. (افزودهشده در 8.16.0) نخستین آرگومانی که دقیقاً دو خط تیره ("\--") باشد، پایان گزینهها را مشخص میکند؛ هر آرگومانی پس از پایان گزینهها بهعنوان یک آرگومان URL تفسیر میشود، حتی اگر با یک خط تیره شروع شود. curl بررسی اندکی بر روی محتوای آرگومانهای خط فرمان انجام میدهد یا اصلاً اعتبارسنجی نمیکند. ارسال "بایتهای خلاقانه" مانند خطوط جدید ممکن است نتایج غیرمنتظرهای در پی داشته باشد. گزینههای زیر سراسری هستند: \fI\-\-fail\-early\fP، \fI\-\-libcurl\fP، \fI\-\-parallel\-immediate\fP، \fI\-\-parallel\-max\-host\fP، \fI\-\-parallel\-max\fP، \fI\-\-parallel\fP، \fI\-\-progress\-bar\fP، \fI\-\-rate\fP، \fI\-\-show\-error\fP، \fI\-\-stderr\fP، \fI\-\-styled\-output\fP، \fI\-\-trace\-ascii\fP، \fI\-\-trace\-config\fP، \fI\-\-trace\-ids\fP، \fI\-\-trace\-time\fP، \fI\-\-trace\fP و \fI\-\-verbose\fP. .SH "همه گزینهها (ALL OPTIONS)" .IP "\-\-abstract\-unix\-socket " (HTTP) به جای استفاده از شبکه، از طریق یک سوکت انتزاعی دامنه یونیکس (abstract Unix domain socket) به سرور متصل شوید. نکته: netstat مسیر یک سوکت انتزاعی را با پیشوند \&"@" نشان میدهد، با این حال آرگومان نباید این نویسه ابتدایی را داشته باشد. اگر \fI\-\-abstract\-unix\-socket\fP چندین بار مشخص شود، آخرین مقدار تنظیمشده استفاده میشود. مثال: .nf curl --abstract-unix-socket socketpath https://example.com .fi همچنین ببینید \fI\-\-unix\-socket\fP. .IP "\-\-alt\-svc " (HTTPS) تجزیه‌گر alt\-svc را فعال می‌کند. اگر نام فایل به یک فایل کَش موجود alt\-svc اشاره کند، از آن استفاده می‌شود. پس از یک انتقال کامل‌شده، در صورت تغییر، کَش دوباره در همان نام فایل ذخیره می‌شود. یک نام فایل "" (با طول صفر) مشخص کنید تا از بارگذاری/ذخیره‌سازی جلوگیری شود و curl کَش را در حافظه مدیریت کند. ممکن است بخواهید umask خود را محدود کنید تا از دسترسی سایر کاربران در همان سیستم به فایل ایجادشده جلوگیری شود. اگر این گزینه چندین بار استفاده شود، curl محتویات را از همهٔ فایل‌ها بارگذاری می‌کند اما آخرین مورد برای ذخیره‌سازی استفاده می‌شود. \fI\-\-alt\-svc\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --alt-svc svc.txt https://example.com .fi همچنین \fI\-\-resolve\fP و \fI\-\-connect\-to\fP را ببینید. .IP "\-\-anyauth" (HTTP) روش احراز هویت را به‌طور خودکار تشخیص داده و از امن‌ترین روشی که سایت مقصد ادعا می‌کند پشتیبانی می‌کند، استفاده می‌کند. این کار با انجام یک درخواست اولیه و بررسی response\-headers انجام می‌شود، بنابراین ممکن است یک رفت‌وبرگشت اضافی شبکه ایجاد کند. این گزینه به‌جای تنظیم یک روش احراز هویت خاص استفاده می‌شود، کاری که می‌توانید با \fI\-\-basic\fP، \fI\-\-digest\fP، \fI\-\-ntlm\fP و \fI\-\-negotiate\fP انجام دهید. در صورتی که بارگذاری را از stdin انجام می‌دهید، استفاده از \fI\-\-anyauth\fP توصیه نمی‌شود، زیرا ممکن است نیاز باشد داده‌ها دو بار ارسال شوند و سپس کلاینت باید بتواند به عقب برگردد (rewind کند). اگر این نیاز هنگام بارگذاری از stdin پیش بیاید، عملیات بارگذاری با شکست مواجه می‌شود. همراه با \fI\-\-user\fP استفاده می‌شود. مثال: .nf curl --anyauth --user me:pwd https://example.com .fi همچنین \fI\-\-proxy\-anyauth\fP، \fI\-\-basic\fP و \fI\-\-digest\fP را ببینید. .IP "\-a, \-\-append" (FTP SFTP) هنگام استفاده در یک بارگذاری، این گزینه باعث می‌شود curl به‌جای بازنویسی فایل مقصد، به انتهای آن اضافه کند. اگر فایل دوردست وجود نداشته باشد، ایجاد می‌شود. توجه داشته باشید که این پرچم توسط برخی از سرورهای SFTP (از جمله OpenSSH) نادیده گرفته می‌شود. ارائهٔ چندین‌بارهٔ \fI\-\-append\fP تأثیر اضافه‌ای ندارد. دوباره با \-\-no-append آن را غیرفعال کنید. مثال: .nf curl --upload-file local --append ftp://example.com/ .fi همچنین \fI\-\-range\fP و \fI\-\-continue\-at\fP را ببینید. .IP "\-\-aws\-sigv4 " (HTTP) استفاده از احراز هویت با امضای AWS V4 در انتقال. آرگومان provider رشته‌ای است که هنگام ایجاد سرآیندهای احراز هویت خروجی، توسط الگوریتم استفاده می‌شود. آرگومان region رشته‌ای است که در صورت حذف نام منطقه از endpoint، به یک منطقهٔ جغرافیایی از یک مجموعه منابع (region\-code) اشاره می‌کند. آرگومان service رشته‌ای است که در صورت حذف نام سرویس از endpoint، به یک تابع ارائه‌شده توسط ابر (service\-code) اشاره می‌کند. اگر \fI\-\-aws\-sigv4\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --aws-sigv4 "aws:amz:us-east-2:es" --user "key:secret" https://example.com .fi در 7.75.0 اضافه شد. همچنین \fI\-\-basic\fP و \fI\-\-user\fP را ببینید. .IP "\-\-basic" (HTTP) از احراز هویت HTTP Basic با میزبان دوردست استفاده می‌کند. این روش پیشفرض است و این گزینه معمولاً بی‌فایده است، مگر اینکه از آن برای جایگزینی یک گزینهٔ از پیش تنظیم‌شده که روش احراز هویت متفاوتی تعیین می‌کند (مانند \fI\-\-ntlm\fP، \fI\-\-digest\fP یا \fI\-\-negotiate\fP) استفاده کنید. همراه با \fI\-\-user\fP استفاده می‌شود. ارائهٔ چندین‌بارهٔ \fI\-\-basic\fP تأثیر اضافه‌ای ندارد. دوباره با \-\-no-basic آن را غیرفعال کنید. مثال: .nf curl -u name:password --basic https://example.com .fi همچنین \fI\-\-proxy\-basic\fP را ببینید. .IP "\-\-ca\-native" (TLS) از مخزن بومی CA سیستم‌عامل برای اعتبارسنجی گواهی استفاده می‌کند. این گزینه مستقل از سایر مکان‌های گواهی CA تعیین‌شده در زمان اجرا یا زمان ساخت است. آن مکان‌ها علاوه بر مخزن بومی CA جستجو می‌شوند. این گزینه با OpenSSL و شاخه‌های آن (BoringSSL، LibreSSL و غیره) در Windows (اضافه‌شده در 7.71.0) و در سیستم‌عامل Apple در صورتی که libcurl با فعال بودن Apple SecTrust ساخته شده باشد، کار می‌کند. (اضافه‌شده در 8.17.0) این گزینه با wolfSSL در Windows، Linux (توزیع‌های Debian، Ubuntu، Gentoo، Fedora، RHEL)، macOS، Android و iOS کار می‌کند. (اضافه‌شده در 8.3.0) این گزینه با GnuTLS کار می‌کند (اضافه‌شده در 8.5.0) و همچنین در صورتی که libcurl با آن ساخته شده باشد، از Apple SecTrust استفاده می‌کند. (اضافه‌شده در 8.17.0) این گزینه با Rustls در Windows، macOS، Android و iOS کار می‌کند. در Linux این گزینه معادل استفاده از بسته گواهی CA متعلق به Mozilla است. هنگام استفاده با Rustls، \fIتنها\fP به مخزن بومی CA مراجعه می‌شود، نه به مکان‌های دیگرِ تعیین‌شده در زمان اجرا یا زمان ساخت. (اضافه‌شده در 8.13.0) این گزینه در حال حاضر هیچ تاثیری برای Schannel ندارد. این کتابخانه بومی TLS از طرف Microsoft است که به‌طور پیشفرض از مخزن بومی CA برای اعتبارسنجی استفاده می‌کند، مگر اینکه با تنظیم مکان گواهی CA بازنویسی شده باشد. ارائه چندباره \fI\-\-ca\-native\fP تاثیر مضاعفی ندارد. آن را مجدداً با \-\-no-ca-native غیرفعال کنید. مثال: .nf curl --ca-native https://example.com .fi اضافه‌شده در 8.2.0. همچنین ببینید \fI\-\-cacert\fP، \fI\-\-capath\fP، \fI\-\-dump\-ca\-embed\fP، \fI\-\-insecure\fP و \fI\-\-proxy\-ca\-native\fP. .IP "\-\-cacert " (TLS) از پرونده گواهی مشخص‌شده برای اعتبارسنجی طرف مقابل (peer) استفاده می‌کند. این پرونده ممکن است حاوی چندین گواهی CA باشد. گواهی(ها) باید در قالب PEM باشند. به‌طور معمول curl برای استفاده از یک پرونده پیشفرض برای این منظور ساخته می‌شود، بنابراین این گزینه معمولاً برای تغییر آن پرونده پیشفرض استفاده می‌شود. اگر متغیر محیطی با نام \(aqCURL_CA_BUNDLE\(aq تنظیم شده باشد و بک‌اند TLS ابزار Schannel نباشد، curl آن را شناسایی کرده و از مسیر ارائه‌شده به‌عنوان مسیر بسته گواهی CA استفاده می‌کند. این گزینه آن متغیر را بازنویسی می‌کند. (Windows) ابزار curl به‌طور خودکار به دنبال پرونده گواهی‌های CA به نام \(aqcurl\-ca\-bundle.crt\(aq می‌گردد؛ یا در همان دایرکتوری curl.exe، یا در دایرکتوری کاری فعلی (Current Working Directory)، یا در هر پوشه‌ای در امتداد PATH شما. در curl 8.11.0 یک گزینه در زمان ساخت (build\-time) برای غیرفعال کردن این رفتار جستجو، و گزینه دیگری برای محدود کردن جستجو به دایرکتوری برنامه اضافه شد. (Schannel) این گزینه برای Schannel در Windows 7 یا بالاتر پشتیبانی می‌شود (اضافه‌شده در 7.60.0). این گزینه برای سازگاری عقبروی با سایر موتورهای SSL پشتیبانی می‌شود؛ در عوض توصیه می‌شود از مخزن گواهی‌های ریشه Windows (پیشفرض برای Schannel) استفاده کنید. اگر \fI\-\-cacert\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --cacert CA-file.txt https://example.com .fi همچنین ببینید \fI\-\-capath\fP، \fI\-\-dump\-ca\-embed\fP و \fI\-\-insecure\fP. .IP "\-\-capath " (TLS) از پوشه (دایرکتوری) گواهی مشخص‌شده برای اعتبارسنجی طرف مقابل استفاده می‌کند. اگر curl با OpenSSL ساخته شده باشد، می‌توان با جدا کردن مسیرها توسط جداکننده مخصوص پلتفرم مربوطه، چندین مسیر را ارائه داد (مثلاً "path1:path2:path3" در پلتفرم‌های شبه‌یونیکس برای "path1;path2;path3" در Windows). گواهی‌ها باید در قالب PEM باشند، و در صورتی که curl با OpenSSL ساخته شده باشد، دایرکتوری باید با استفاده از ابزار کمکی c_rehash ارائه‌شده همراه با OpenSSL پردازش شده باشد. اگر پرونده \fI\-\-cacert\fP حاوی تعداد زیادی گواهی CA باشد، استفاده از \fI\-\-capath\fP می‌تواند به curl مبتنی بر OpenSSL امکان دهد تا اتصالات SSL را بسیار کارآمدتر از حالت استفاده از \fI\-\-cacert\fP برقرار کند. اگر این گزینه تنظیم شود، مقدار پیشفرض capath نادیده گرفته می‌شود. اگر \fI\-\-capath\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --capath /local/directory https://example.com .fi همچنین ببینید \fI\-\-cacert\fP، \fI\-\-dump\-ca\-embed\fP و \fI\-\-insecure\fP. .IP "\-E, \-\-cert " (TLS) هنگام دریافت پرونده با HTTPS، FTPS یا پروتکل دیگری مبتنی بر SSL، از پرونده گواهی کلاینت مشخص‌شده استفاده می‌کند. گواهی باید در قالب PEM باشد. اگر گذرواژه اختیاری مشخص نشده باشد، در ترمینال درخواست می‌شود. توجه داشته باشید که این گزینه فرض می‌کند پرونده گواهی، ترکیبی از پیوسته‌شدن کلید خصوصی و گواهی کلاینت است. برای مشخص کردن مستقل آن‌ها، \fI\-\-cert\fP و \fI\-\-key\fP را ببینید. در بخش این آرگومان، باید نویسه \&":" را به‌صورت "\\:" گریز دهید (اسکیپ کنید) تا به‌عنوان جداکننده گذرواژه شناخته نشود. به‌طور مشابه، باید نویسه گیومه دوگانه را به‌صورت \\" گریز دهید تا به‌عنوان نویسه گریز شناخته نشود. اگر curl با OpenSSL ساخته شده باشد و موتور pkcs11 یا ارائه‌دهنده pkcs11 در دسترس باشد، می‌توان از یک نشانی PKCS#11 URI (استاندارد RFC 7512) برای مشخص کردن گواهی موجود در یک دستگاه PKCS#11 استفاده کرد. رشته‌ای که با "pkcs11:" شروع شود، به‌عنوان یک PKCS#11 URI تفسیر می‌شود. اگر یک PKCS#11 URI ارائه شود، در صورتی که گزینه‌ای مشخص نشده باشد، گزینه \fI\-\-engine\fP روی "pkcs11" تنظیم می‌شود و گزینه \fI\-\-cert\-type\fP نیز در صورتی که مشخص نشده باشد، بر روی "ENG" یا "PROV" قرار می‌گیرد (بسته به نسخه OpenSSL). اگر curl با GnuTLS ساخته شده باشد، می‌توان از یک PKCS#11 URI برای مشخص کردن گواهی موجود در یک دستگاه PKCS#11 استفاده کرد. رشته‌ای که با "pkcs11:" شروع شود، به‌عنوان یک PKCS#11 URI تفسیر می‌شود. (Schannel) گواهی‌های کلاینت باید با عبارت مسیر به یک مخزن گواهی مشخص شوند. (بارگذاری \fIPFX\fP پشتیبانی نمی‌شود؛ ابتدا می‌توانید آن را به یک مخزن وارد کنید). می‌توانید از "\\\\" برای اشاره به یک گواهی در مخزن گواهی‌های سیستم استفاده کنید، برای مثال: \fI"CurrentUser\\MY\\934a7ac6f8a5d579285a74fa61e19f23ddfe8d7a"\fP. اثر انگشت (Thumbprint) معمولاً یک رشته هگزادسیمال SHA\-1 است که می‌توانید آن را در جزئیات گواهی مشاهده کنید. مکان‌های مخزن زیر پشتیبانی می‌شوند: \fICurrentUser\fP، \fILocalMachine\fP، \fICurrentService\fP، \fIServices\fP، \fICurrentUserGroupPolicy\fP، \fILocalMachineGroupPolicy\fP و \fILocalMachineEnterprise\fP. اگر \fI\-\-cert\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --cert certfile --key keyfile https://example.com .fi همچنین ببینید \fI\-\-cert\-type\fP، \fI\-\-key\fP و \fI\-\-key\-type\fP. .IP "\-\-cert\-status" (TLS) وضعیت گواهی سرور را با استفاده از افزونهٔ TLS به نام Certificate Status Request (معروف به OCSP stapling) بررسی می‌کند. اگر این گزینه فعال باشد و سرور پاسخی نامعتبر (مثلاً منقضی‌شده) ارسال کند، یا اگر پاسخ نشان دهد که گواهی سرور باطل شده است، یا هیچ پاسخی دریافت نشود، اعتبارسنجی با شکست مواجه می‌شود. این پشتیبانی در حال حاضر تنها در بک‌اندهای OpenSSL و GnuTLS پیاده‌سازی شده است. ارائهٔ چندبارهٔ \fI\-\-cert\-status\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-cert-status دوباره آن را غیرفعال کنید. مثال: .nf curl --cert-status https://example.com .fi همچنین ببینید \fI\-\-pinnedpubkey\fP. .IP "\-\-cert\-type " (TLS) نوع گواهی کلاینت ارائه‌شده را مشخص می‌کند. انواع PEM، DER، ENG، PROV و P12 انواع شناخته‌شده هستند. نوع پیش‌فرض به بک‌اند TLS بستگی دارد و معمولاً PEM است. برای Schannel این نوع P12 است. اگر \fI\-\-cert\fP یک pkcs11: URI باشد، نوع پیش‌فرض ENG یا PROV خواهد بود (بسته به نسخهٔ OpenSSL). اگر \fI\-\-cert\-type\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --cert-type PEM --cert file https://example.com .fi همچنین ببینید \fI\-\-cert\fP، \fI\-\-key\fP و \fI\-\-key\-type\fP. .IP "\-\-ciphers " (TLS) مشخص می‌کند در صورتی که اتصال بر سر TLS 1.2 (یا 1.1، 1.0) مذاکره کند، از کدام مجموعه‌های رمز (cipher suites) در ارتباط استفاده شود. فهرست مجموعه‌های رمز باید رمزهای معتبری را مشخص کند. جزئیات مجموعه‌های رمز را در این نشانی اینترنتی بخوانید: https://curl.se/docs/ssl\-ciphers.html اگر \fI\-\-ciphers\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 https://example.com .fi همچنین ببینید \fI\-\-tls13\-ciphers\fP، \fI\-\-proxy\-ciphers\fP و \fI\-\-curves\fP. .IP "\-\-compressed" (HTTP) درخواست پاسخی فشرده‌شده با استفاده از یکی از الگوریتم‌های مورد پشتیبانی curl می‌دهد و محتوا را به‌طور خودکار از حالت فشرده خارج می‌کند. سرآیندهای پاسخ هنگام ذخیره شدن تغییر داده نمی‌شوند؛ بنابراین اگر بعداً دوباره به‌طور جداگانه «تفسیر» شوند، ممکن است این‌گونه به نظر برسد که می‌گویند محتوا (همچنان) فشرده است؛ در حالی که در واقع قبلاً از حالت فشرده خارج شده است. اگر از این گزینه استفاده شود و سرور یک کدگذاری پشتیبانی‌نشده ارسال کند، curl خطا گزارش می‌دهد. این یک درخواست است، نه یک دستور؛ سرور ممکن است داده‌ها را به‌صورت فشرده تحویل دهد یا ندهد. \fBهشدار\fP: هنگام خارج‌سازی داده‌ها از حالت فشرده، حتی انتقال‌های بسیار کوچک نیز ممکن است باز شده و حجم عظیمی از بایت‌ها ایجاد کنند. شاید بخواهید استفاده از این گزینه را تنها به وبگاه‌های شناخته‌شده و قابل اعتماد با استفاده از پروتکل‌های امن محدود کنید، شاید در ترکیب با \fI\-\-max\-filesize\fP. ارائهٔ چندبارهٔ \fI\-\-compressed\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-compressed دوباره آن را غیرفعال کنید. مثال: .nf curl --compressed https://example.com .fi همچنین ببینید \fI\-\-compressed\-ssh\fP. .IP "\-\-compressed\-ssh" (SCP SFTP) فشرده‌سازی SSH را فعال می‌کند. این یک درخواست است، نه یک دستور؛ سرور ممکن است آن را انجام دهد یا ندهد. این امکان می‌دهد داده‌ها به‌صورت فشرده روی خط ارتباطی ارسال شوند و در مقصد به‌طور خودکار از حالت فشرده خارج گردند تا در پهنای باند صرفه‌جویی شود. ارائهٔ چندبارهٔ \fI\-\-compressed\-ssh\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-compressed-ssh دوباره آن را غیرفعال کنید. مثال: .nf curl --compressed-ssh sftp://example.com/ .fi همچنین ببینید \fI\-\-compressed\fP. .IP "\-K, \-\-config " یک پرونده متنی را برای خواندن آرگومان‌های curl از آن مشخص کنید. آرگومان‌های خط فرمان موجود در این پرونده متنی به‌گونه‌ای استفاده می‌شوند که گویی در خود خط فرمان ارائه شده‌اند. گزینه‌ها و پارامترهای آن‌ها باید در همان خط در پرونده مشخص شوند و با فاصله خالی (whitespace)، دو نقطه یا علامت مساوی از یکدیگر جدا شوند. نام گزینه‌های طولانی را می‌توان به صورت اختیاری در پرونده پیکربندی بدون دو خط تیره ابتدایی ذکر کرد و در این صورت، نویسه‌های دو نقطه یا مساوی می‌توانند به عنوان جداکننده استفاده شوند. اگر گزینه با یک یا دو خط تیره مشخص شود، نباید هیچ نویسه دو نقطه یا مساوی بین گزینه و پارامتر آن وجود داشته باشد. اگر پارامتر حاوی فاصله خالی باشد یا با دو نقطه (:) یا علامت مساوی (=) آغاز شود، باید درون علامت نقل‌قول دوتایی ("like this") محصور شود. در داخل نقل‌قول‌های دوتایی، دنباله‌های گریز زیر در دسترس هستند: \\\\, \\", \\t, \\n, \\r و \\v. وجود یک بک‌اسلش پیش از هر حرف دیگری نادیده گرفته می‌شود. اگر نخستین ستون غیرخالی یک خط پیکربندی نویسه \(aq#\(aq باشد، آن خط به عنوان توضیح (کامنت) در نظر گرفته می‌شود. در پرونده پیکربندی، در هر خط فیزیکی تنها یک گزینه بنویسید. اندازه یک خط نباید بیشتر از ۱۰ مگابایت باشد (از نسخه 8.2.0 به بعد). نام پرونده را برای \fI\-\-config\fP به صورت علامت منفی "\-" مشخص کنید تا curl پرونده را از stdin بخواند. توجه داشته باشید که برای امکان تعیین یک URL در پرونده پیکربندی، باید آن را با استفاده از گزینه \fI\-\-url\fP مشخص کنید، نه با نوشتن URL در یک خط جداگانه به تنهایی. می‌تواند شبیه به این باشد: .nf url = "https://curl.se/docs/" # \--\- Example file \--\- # this is a comment url = "example.com" output = "curlhere.html" user\-agent = "superagent/1.0" # and fetch another URL too url = "example.com/docs/manpage.html" -O referer = "http://nowhereatall.example.com/" # \--\- End of example file \--\- .fi هنگامی که curl فراخوانی می‌شود، (مگر اینکه از \fI\-\-disable\fP استفاده شده باشد) وجود یک پرونده پیکربندی پیش‌فرض را بررسی کرده و در صورت پیدا شدن، حتی زمانی که از \fI\-\-config\fP استفاده شده باشد، از آن استفاده می‌کند. پرونده پیکربندی پیش‌فرض به این ترتیب در مکان‌های زیر جستجو می‌شود: 1) \fB"$CURL_HOME/.curlrc"\fP 2) \fB"$XDG_CONFIG_HOME/curlrc"\fP (افزوده شده در 7.73.0) 3) \fB"$HOME/.curlrc"\fP 4) ویندوز: \fB"%USERPROFILE%\\.curlrc"\fP 5) ویندوز: \fB"%APPDATA%\\.curlrc"\fP 6) ویندوز: \fB"%USERPROFILE%\\Application Data\\.curlrc"\fP 7) غیر ویندوز: استفاده از getpwuid برای یافتن دایرکتوری خانگی 8) در ویندوز، اگر هیچ پرونده \fI.curlrc\fP در ترتیبی که در بالا توصیف شد پیدا نشود، وجود آن را در همان پوشه‌ای که فایل اجرایی curl قرار دارد بررسی می‌کند. در ویندوز برای هر مکان، دو نام پرونده بررسی می‌شود: \fI.curlrc\fP و \fI_curlrc\fP، که اولویت با اولی است. نسخه‌های قدیمی‌تر در ویندوز تنها \fI_curlrc\fP را بررسی می‌کردند. گزینه \fI\-\-config\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --config file.txt https://example.com .fi همچنین ببینید: \fI\-\-disable\fP. .IP "\-\-connect\-timeout " حداکثر زمان بر حسب ثانیه که به برقراری اتصال curl اجازه می‌دهید. این گزینه فقط مرحله اتصال را محدود می‌کند، بنابراین اگر curl در بازه زمانی داده‌شده متصل شود ادامه می‌دهد \- در غیر این صورت خارج می‌شود. این گزینه مقادیر اعشاری را می‌پذیرد. مقدار اعشاری باید با استفاده از نقطه (.) به عنوان جداکننده اعشار ارائه شود \- نه نسخه محلی، حتی اگر از جداکننده دیگری استفاده کند. مرحله اتصال زمانی کامل در نظر گرفته می‌شود که جستجوی DNS و دست‌دهی‌های درخواستی TCP، TLS یا QUIC انجام شده باشند. اگر \fI\-\-connect\-timeout\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده خواهد شد. مثال‌ها: .nf curl --connect-timeout 20 https://example.com curl --connect-timeout 3.14 https://example.com .fi همچنین ببینید: \fI\-\-max\-time\fP. .IP "\-\-connect\-to " برای درخواستی که برای جفت \(dqHOST1:PORT1\(dq در نظر گرفته شده است، در عوض به \(dqHOST2:PORT2\(dq متصل شوید. این گزینه تنها برای برقراری اتصال شبکه استفاده می‌شود. این گزینه بر نام میزبان/شماره درگاه مورد استفاده برای TLS/SSL (مانند SNI، اعتبارسنجی گواهی) یا برای پروتکل‌های کاربردی هیچ تأثیری نمی‌گذارد. مقادیر \(dqHOST1\(dq و \(dqPORT1\(dq می‌توانند رشته‌های خالی باشند، به این معنی که هر میزبان یا هر شماره درگاهی پذیرفته است. همچنین \(dqHOST2\(dq و \(dqPORT2\(dq می‌توانند رشته‌های خالی باشند، به این معنا که از نام میزبان و شماره درگاه اصلی درخواست استفاده شود. نام میزبانی که برای این گزینه مشخص می‌شود به صورت یک رشته مقایسه می‌شود، بنابراین باید با نام استفاده‌شده در URL درخواست مطابقت داشته باشد. این مقدار می‌تواند عددی مانند \(dq127.0.0.1\(dq یا نام کامل میزبان مانند \(dqexample.org\(dq باشد. مثال: هدایت اتصال‌ها از نام میزبان example.com به 127.0.0.1 بدون در نظر گرفتن شماره درگاه: .nf curl \--connect\-to example.com::127.0.0.1: https://example.com .fi مثال: هدایت اتصال‌ها از همه نام‌های میزبان به 127.0.0.1 بدون در نظر گرفتن شماره درگاه: .nf curl \--connect\-to ::127.0.0.1: http://example.com .fi گزینه \fI\-\-connect\-to\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --connect-to example.com:443:example.net:8443 https://example.com .fi همچنین \fI\-\-resolve\fP و \fI\-\-header\fP را ببینید. .IP "\-C, \-\-continue\-at " ادامه انتقال قبلی از آفست بایتی داده‌شده. آفست داده‌شده تعداد دقیق بایت‌هایی است که پیش از انتقال به مقصد، با شمارش از ابتدای پرونده مبدأ نادیده گرفته می‌شوند. در صورت استفاده در بارگذاری‌ها، دستور SIZE سرور FTP توسط curl استفاده نمی‌شود. از \(dq\-C \-\(dq استفاده کنید تا به curl دستور دهید محل و نحوه ادامه انتقال را به طور خودکار پیدا کند. سپس برای پی بردن به آن، از پرونده‌های ورودی/خروجی مشخص‌شده استفاده می‌کند. هنگام استفاده از این گزینه برای بارگذاری‌های HTTP با استفاده از POST یا PUT، عملکرد آن تضمین نمی‌شود. پروتکل HTTP هیچ روش استاندارد و هم‌کنش‌پذیری برای ادامه بارگذاری ندارد و curl برای این منظور از مجموعه‌ای از سرآیندها استفاده می‌کند که زمانی کارکرد آن‌ها برای برخی سرورها به اثبات رسیده است و برای کسانی که آن را مفید می‌دانند باقی مانده‌اند. این گزینه خط فرمان با \fI\-\-range\fP ناسازگار (مانعة‌الجمع) است: شما فقط می‌توانید از یکی از آن‌ها برای یک انتقال استفاده کنید. گزینه‌های \fI\-\-no\-clobber\fP و \fI\-\-remove\-on\-error\fP نمی‌توانند همراه با \fI\-\-continue\-at\fP استفاده شوند. اگر \fI\-\-continue\-at\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال‌ها: .nf curl -C - https://example.com curl -C 400 https://example.com .fi همچنین \fI\-\-range\fP را ببینید. .IP "\-b, \-\-cookie " (HTTP) این گزینه دو عملکرد تا حدی مجزا برای ارسال کوکی دارد. یا: داده‌های دقیقی را که باید در سرآیند Cookie به سرور HTTP ارسال شوند ارسال کنید. فرض بر این است که این داده‌ها قبلاً از سرور در یک خط \(dqSet\-Cookie:\(dq دریافت شده‌اند. داده‌ها باید در قالب \(dqNAME1=VALUE1; NAME2=VALUE2\(dq باشند. هنگامی که مجموعه‌ای از کوکی‌های مشخص به آن داده می‌شود، curl سرآیند کوکی خود را به صراحت با این محتوا در تمام درخواست‌های خروجی پر می‌کند. اگر چندین درخواست به دلیل احراز هویت، دنبال کردن تغییر مسیرها یا موارد مشابه انجام شود، این سرآیند کوکی به همه آن‌ها ارسال می‌گردد. یا: اگر از نماد \(dq=\(dq در آرگومان استفاده نشود، در عوض به عنوان نام پرونده‌ای برای خواندن کوکی‌های از قبل ذخیره‌شده در نظر گرفته می‌شود. این گزینه همچنین موتور کوکی را فعال می‌کند که باعث می‌شود curl کوکی‌های ورودی را ثبت کند، که اگر از آن در ترکیب با گزینه \fI\-\-location\fP استفاده کنید یا چندین انتقال URL را در همان فراخوانی انجام دهید، می‌تواند مفید باشد. اگر نام پرونده یک خط تیره منفرد (\(dq\-\(dq) باشد، curl محتویات را از stdin می‌خواند. اگر نام پرونده یک رشته خالی (\(dq\(dq) باشد و تنها ورودی کوکی باشد، curl موتور کوکی را بدون هیچ کوکی‌ای فعال می‌کند. قالب پرونده‌ای که کوکی‌ها از آن خوانده می‌شوند باید سرآیندهای متنی ساده HTTP (سبک Set\-Cookie) یا قالب پرونده کوکی Netscape/Mozilla باشد. ما استفاده از سبک سرآیند HTTP را توصیه نمی‌کنیم. پرونده مشخص‌شده با \fI\-\-cookie\fP تنها به عنوان ورودی استفاده می‌شود. هیچ کوکی‌ای در آن پرونده نوشته نمی‌شود. برای ذخیره کوکی‌ها، از گزینه \fI\-\-cookie\-jar\fP استفاده کنید. اگر کوکی‌ها را از یک پرونده متنی ساده سرآیندهای HTTP می‌خوانید، مطمئن شوید که هر خط \(dqSet\-Cookie\(dq یک صفت \(dqDomain\(dq را مشخص کرده باشد. بدون یک دامنه صریح، کوکی را نمی‌توان با اطمینان با یک میزبان هدف تطبیق داد و ممکن است به روش‌های غیرمنتظره‌ای اعمال شود. پیشنهاد می‌کنیم در عوض از قالب پرونده Netscape استفاده کنید. کاربران اغلب می‌خواهند هم کوکی‌ها را از یک پرونده بخوانند و هم کوکی‌های به‌روزشده را دوباره در پرونده بنویسند، بنابراین استفاده هم‌زمان از هر دو گزینه \fI\-\-cookie\fP و \fI\-\-cookie\-jar\fP در یک خط فرمان معمول است. curl نام پرونده‌های مشخص‌شده با \fI\-\-cookie\fP را که وجود ندارند یا به یک دایرکتوری اشاره می‌کنند، نادیده می‌گیرد. اگر curl با پشتیبانی از PSL (\fBPublic Suffix List\fP) ساخته شده باشد، کوکی‌هایی را که برای چنین دامنه‌های پسوندی مشخص شده‌اند و نباید مجاز به داشتن کوکی باشند، شناسایی و حذف می‌کند. اگر curl با پشتیبانی از PSL ساخته \fIنشده\fP باشد، هیچ توانایی‌ای برای متوقف کردن سوپرکوکی‌ها ندارد. گزینه \fI\-\-cookie\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال‌ها: .nf curl -b "" https://example.com curl -b cookiefile https://example.com curl -b cookiefile -c cookiefile https://example.com curl -b name=Jane https://example.com .fi همچنین \fI\-\-cookie\-jar\fP و \fI\-\-junk\-session\-cookies\fP را ببینید. .IP "\-c, \-\-cookie\-jar " (HTTP) فایلی را مشخص کنید که می‌خواهید curl پس از تکمیل یک عملیات، تمام کوکی‌ها را در آن بنویسد. curl در پایان عملیات، تمام کوکی‌ها را از فضای ذخیره‌سازی کوکی درون حافظهٔ (in\-memory) خود در فایل داده‌شده می‌نویسد. حتی اگر هیچ کوکی‌ای شناخته نشده باشد، فایلی ایجاد می‌شود تا هرگونه کوکی از قبل موجود را از فایل حذف کند. این فایل از قالب فایل کوکی Netscape استفاده می‌کند. اگر نام فایل را تنها یک خط تیره، "\-"، قرار دهید، کوکی‌ها در stdout نوشته می‌شوند. فایل مشخص‌شده با \fI\-\-cookie\-jar\fP فقط برای خروجی استفاده می‌شود. هیچ کوکی‌ای از این فایل خوانده نمی‌شود. برای خواندن کوکی‌ها، از گزینهٔ \fI\-\-cookie\fP استفاده کنید. هر دو گزینه می‌توانند فایل یکسانی را مشخص کنند. این گزینهٔ خط فرمان، موتور کوکی را فعال می‌کند که باعث می‌شود curl کوکی‌ها را ثبت کرده و از آن‌ها استفاده کند. گزینهٔ \fI\-\-cookie\fP نیز آن را فعال می‌کند. اگر فایل ذخیرهٔ کوکی (cookie jar) ایجاد نشود یا امکان نوشتن در آن نباشد، کل عملیات curl با شکست مواجه نمی‌شود و حتی خطایی را به‌طور واضح گزارش نمی‌کند. استفاده از \fI\-\-verbose\fP باعث نمایش یک هشدار می‌شود، اما این تنها بازخورد قابل مشاهده‌ای است که دربارهٔ این وضعیت احتمالاً خطرناک دریافت می‌کنید. ممکن است بخواهید umask خود را محدود کنید تا از دسترسی سایر کاربران در همان سیستم به فایل ایجادشده جلوگیری شود. اگر \fI\-\-cookie\-jar\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال‌ها: .nf curl -c store-here.txt https://example.com curl -c store-here.txt -b read-these https://example.com .fi همچنین ببینید \fI\-\-cookie\fP و \fI\-\-junk\-session\-cookies\fP. .IP "\-\-create\-dirs" هنگامی که در کنار گزینهٔ \fI\-\-output\fP استفاده شود، curl در صورت نیاز سلسله‌مراتب دایرکتوری‌های محلی لازم را ایجاد می‌کند. این گزینه دایرکتوری‌های ذکرشده در گزینهٔ \fI\-\-output\fP را در ترکیب با مسیری که احتمالاً با \fI\-\-output\-dir\fP تنظیم شده است ایجاد می‌کند. اگر نام فایل خروجی ترکیب‌شده شامل هیچ دایرکتوری‌ای نباشد، یا اگر دایرکتوری‌های ذکرشده از قبل وجود داشته باشند، هیچ دایرکتوری‌ای ایجاد نمی‌شود. دایرکتوری‌های ایجادشده روی سیستم‌های فایل به سبک یونیکس (Unix\-style) با حالت 0750 ساخته می‌شوند. برای ایجاد دایرکتوری‌های راه دور هنگام استفاده از FTP یا SFTP، گزینهٔ \fI\-\-ftp\-create\-dirs\fP را امتحان کنید. مشخص کردن چندبارهٔ \fI\-\-create\-dirs\fP اثر اضافه‌ای ندارد. با \-\-no-create-dirs دوباره آن را غیرفعال کنید. مثال: .nf curl --create-dirs --output local/dir/file https://example.com .fi همچنین ببینید \fI\-\-ftp\-create\-dirs\fP و \fI\-\-output\-dir\fP. .IP "\-\-create\-file\-mode " (SFTP SCP FILE) هنگامی که از curl برای ایجاد فایل‌ها از راه دور با استفاده از یکی از پروتکل‌های پشتیبانی‌شده استفاده می‌شود، این گزینه به کاربر امکان می‌دهد به‌جای حالت پیش‌فرض 0644، مشخص کند چه \(aqmode\(aqی در زمان ایجاد روی فایل تنظیم شود. این گزینه یک عدد در مبنای هشت (اکتال) را به عنوان آرگومان می‌پذیرد. اگر \fI\-\-create\-file\-mode\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --create-file-mode 0777 -T localfile sftp://example.com/new .fi در نسخهٔ 7.75.0 اضافه شد. همچنین ببینید \fI\-\-ftp\-create\-dirs\fP. .IP "\-\-crlf" (FTP SMTP) تبدیل خط جدید (line feed) به بازگشت به ابتدای سطر به‌همراه خط جدید (carriage return به‌علاوهٔ line feed) در هنگام بارگذاری. برای \fBMVS (OS/390)\fP مفید است. مشخص کردن چندبارهٔ \fI\-\-crlf\fP اثر اضافه‌ای ندارد. با \-\-no-crlf دوباره آن را غیرفعال کنید. مثال: .nf curl --crlf -T file ftp://example.com/ .fi همچنین ببینید \fI\-\-use\-ascii\fP. .IP "\-\-crlfile " (TLS) فایلی با قالب PEM حاوی فهرست ابطال گواهی (Certificate Revocation List) ارائه می‌دهد که ممکن است گواهی‌های همتا را که باید باطل‌شده در نظر گرفته شوند، مشخص کند. اگر \fI\-\-crlfile\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --crlfile rejects.txt https://example.com .fi همچنین ببینید \fI\-\-cacert\fP و \fI\-\-capath\fP. .IP "\-\-curves " (TLS) تنظیم منحنی‌های مشخص برای استفاده هنگام برقراری نشست SSL بر اساس RFC 8422، 5.1. می‌توان چندین الگوریتم را با جدا کردن آن‌ها با ":" ارائه داد (مانند "X25519:P\-521"). این پارامتر به‌طور مشابه در ابزارهای \&"s_client" و "s_server" در OpenSSL در دسترس است. \fI\-\-curves\fP به نسخه curl مجهز به OpenSSL اجازه می‌دهد تا اتصالات SSL را دقیقاً با منحنی (EC) درخواستی کلاینت برقرار کند و از مذاکرات غیرشفاف کلاینت/سرور جلوگیری نماید. اگر این گزینه تنظیم شود، فهرست پیش‌فرض منحنی‌های تعبیه‌شده در OpenSSL نادیده گرفته می‌شود. اگر \fI\-\-curves\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --curves X25519 https://example.com .fi در 7.73.0 اضافه شد. همچنین ببینید \fI\-\-ciphers\fP. .IP "\-d, \-\-data " (HTTP MQTT) ارسال داده‌های مشخص‌شده به سرور. برای HTTP(S)، این کار با متد POST به همان شیوه‌ای انجام می‌شود که یک مرورگر هنگام پر کردن فرم HTML توسط کاربر و فشردن دکمه ارسال (submit) انجام می‌دهد. این گزینه باعث می‌شود curl داده‌ها را با استفاده از content\-type به صورت application/x\-www\-form\-urlencoded به سرور منتقل کند. برای MQTT، داده‌ها به صورت یک PUBLISH ارسال می‌شوند. \fI\-\-data\-raw\fP تقریباً مشابه است، اما تفسیر خاصی برای نویسه @ ندارد. برای ارسال داده‌ها به‌صورت کاملاً باینری (دودویی)، باید در عوض از گزینه \fI\-\-data\-binary\fP استفاده کنید. برای URL\-encode کردن مقدار یک فیلد فرم می‌توانید از \fI\-\-data\-urlencode\fP استفاده کنید. اگر هر یک از این گزینه‌ها بیش از یک بار در همان خط فرمان استفاده شوند، بخش‌های داده مشخص‌شده با نماد جداکننده \&\- ادغام می‌شوند. بنابراین، استفاده از \(aq\-d name=daniel \-d skill=lousy\(aq یک قطعه post به صورت \(aqname=daniel&skill=lousy\(aq تولید می‌کند. اگر داده را با نویسه @ آغاز کنید، ادامه آن باید نام پرونده‌ای باشد که داده‌ها از آن خوانده می‌شوند، یا \- اگر می‌خواهید curl داده‌ها را از stdin بخواند. بنابراین، ارسال داده از پرونده‌ای با نام \(aqfoobar\(aq با \fI\-\-data\fP @foobar انجام می‌شود. هنگامی که به \fI\-\-data\fP گفته می‌شود از چنین پرونده‌ای بخواند، نویسه‌های carriage return، خط‌های جدید (newlines) و بایت‌های null حذف می‌شوند. اگر نمی‌خواهید نویسه @ تفسیر خاصی داشته باشد، به جای آن از \fI\-\-data\-raw\fP استفاده کنید. داده‌های این گزینه دقیقاً همان‌طور که در خط فرمان ارائه شده‌اند به سرور منتقل می‌شوند. curl آن‌ها را تبدیل، تغییر یا بهبود نمی‌دهد. ارائه داده‌ها به شکل صحیح بر عهده کاربر است. \fI\-\-data\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال‌ها: .nf curl -d "name=curl" https://example.com curl -d "name=curl" -d "tool=cmdline" https://example.com curl -d @filename https://example.com .fi این گزینه با \fI\-\-form\fP، \fI\-\-head\fP و \fI\-\-upload\-file\fP مانعة‌الجمع است (هم‌زمان قابل استفاده نیستند). همچنین ببینید \fI\-\-data\-binary\fP، \fI\-\-data\-urlencode\fP، \fI\-\-data\-raw\fP و \fI\-\-form\fP. .IP "\-\-data\-ascii " (HTTP) این گزینه یک نام مستعار برای \fI\-\-data\fP است. \fI\-\-data\-ascii\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --data-ascii @file https://example.com .fi همچنین ببینید \fI\-\-data\-binary\fP، \fI\-\-data\-raw\fP و \fI\-\-data\-urlencode\fP. .IP "\-\-data\-binary " (HTTP) ارسال داده‌ها (Post) دقیقاً همان‌گونه که مشخص شده‌اند، بدون هیچ‌گونه پردازش اضافی. اگر داده را با نویسه @ آغاز کنید، ادامه آن باید نام یک پرونده باشد. \&"@\-" باعث می‌شود curl داده‌ها را از stdin بخواند. داده‌ها به شیوه‌ای مشابه با \fI\-\-data\fP ارسال می‌شوند، به جز این‌که خط‌های جدید (newlines) و بازگشت به ابتدای سطر (carriage returns) حفظ می‌شوند و هیچ‌گونه تبدیلی انجام نمی‌شود. مانند \fI\-\-data\fP، نوع محتوای (content\-type) پیش‌فرض ارسال‌شده به سرور application/x\-www\-form\-urlencoded است. اگر می‌خواهید سرور با داده‌ها به عنوان داده‌های باینری دلخواه رفتار کند، content\-type را روی octet\-stream تنظیم کنید: -H "Content\-Type: application/octet\-stream". اگر این گزینه چندین بار استفاده شود، موارد پس از مورد نخست داده‌ها را همان‌گونه که در \fI\-\-data\fP شرح داده شد الحاق (append) می‌کنند. \fI\-\-data\-binary\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --data-binary @filename https://example.com .fi همچنین ببینید \fI\-\-data\-ascii\fP. .IP "\-\-data\-raw " (HTTP) داده‌ها را مشابه \fI\-\-data\fP ارسال (POST) می‌کند، اما بدون تفسیر خاص نویسه @. \fI\-\-data\-raw\fP را می‌توان چندین بار در یک خط فرمان به کار برد. نمونه‌ها: .nf curl --data-raw "hello" https://example.com curl --data-raw "@at@at@" https://example.com .fi همچنین ببینید \fI\-\-data\fP. .IP "\-\-data\-urlencode " (HTTP) داده‌ها را مشابه سایر گزینه‌های \fI\-\-data\fP ارسال (POST) می‌کند، با این استثنا که این گزینه URL\-encoding را انجام می‌دهد. برای سازگاری با CGI، بخش باید با یک \fIname\fP آغاز شود و به دنبال آن یک جداکننده و مشخصه محتوا بیاید. بخش را می‌توان با یکی از نحوهای زیر به curl ارسال کرد: .RS .IP content محتوا را URL\-encode کرده و آن را انتقال می‌دهد. دقت کنید که محتوا شامل هیچ نماد "=" یا "@" نباشد، زیرا باعث می‌شود نحو با یکی از حالت‌های دیگر در زیر مطابقت پیدا کند. .IP =content محتوا را URL\-encode کرده و آن را انتقال می‌دهد. نماد پیشین "=" در داده‌ها گنجانده نمی‌شود. .IP name=content بخش محتوا را URL\-encode کرده و آن را انتقال می‌دهد. توجه داشته باشید که انتظار می‌رود بخش نام از پیش URL\-encode شده باشد. .IP @filename داده‌ها را از فایل داده‌شده (شامل تمام خطوط جدید) بارگیری کرده، آن داده‌ها را URL\-encode می‌کند و در POST انتقال می‌دهد. استفاده از "@\-" باعث می‌شود curl داده‌ها را از stdin بخواند. .IP name@filename داده‌ها را از فایل داده‌شده (شامل تمام خطوط جدید) بارگیری کرده، آن داده‌ها را URL\-encode می‌کند و در POST انتقال می‌دهد. یک علامت مساوی به بخش نام پیوست می‌شود که حاصل آن \fIname=urlencoded\-file\-content\fP خواهد بود. توجه داشته باشید که انتظار می‌رود بخش نام از پیش URL\-encode شده باشد. .RE .IP \fI\-\-data\-urlencode\fP را می‌توان چندین بار در یک خط فرمان استفاده کرد. نمونه‌ها: .nf curl --data-urlencode name=val https://example.com curl --data-urlencode =encodethis https://example.com curl --data-urlencode name@file https://example.com curl --data-urlencode @fileonly https://example.com .fi همچنین ببینید \fI\-\-data\fP و \fI\-\-data\-raw\fP. .IP "\-\-delegation " (GSS/kerberos) تعیین می‌کند که curl در رابطه با اعتبارنامه‌های کاربر مجاز به تفویض چه سطحی (LEVEL) است. .RS .IP none اجازه هیچ‌گونه تفویضی داده نشود. .IP policy تنها در صورتی تفویض انجام می‌شود که پرچم OK\-AS\-DELEGATE در بلیت سرویس Kerberos تنظیم شده باشد، که به خط‌مشی قلمرو (realm policy) مربوط است. .IP always بدون قید و شرط به سرور اجازه تفویض داده شود. .RE .IP اگر \fI\-\-delegation\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. نمونه: .nf curl --delegation "none" https://example.com .fi همچنین ببینید \fI\-\-insecure\fP و \fI\-\-ssl\fP. .IP "\-\-digest" (HTTP) احراز هویت HTTP Digest را فعال می‌کند. این طرح احراز هویت از ارسال گذرواژه به صورت متن آشکار (clear text) از طریق شبکه جلوگیری می‌کند. از این گزینه در ترکیب با گزینه معمولی \fI\-\-user\fP برای تنظیم نام کاربری و گذرواژه استفاده کنید. مشخص کردن چندباره \fI\-\-digest\fP هیچ اثر اضافه‌ای ندارد. دوباره با \-\-no-digest آن را غیرفعال کنید. نمونه: .nf curl -u name:password --digest https://example.com .fi همچنین ببینید \fI\-\-user\fP، \fI\-\-proxy\-digest\fP و \fI\-\-anyauth\fP. .IP "\-q, \-\-disable" اگر به عنوان \fBنخستین\fP پارامتر در خط فرمان استفاده شود، فایل پیکربندی \fIcurlrc\fP خوانده یا استفاده نمی‌شود. برای جزئیات مربوط به مسیر جستجوی پیش‌فرض فایل پیکربندی به \fI\-\-config\fP مراجعه کنید. مشخص کردن چندباره \fI\-\-disable\fP هیچ اثر اضافه‌ای ندارد. دوباره با \-\-no-disable آن را غیرفعال کنید. نمونه: .nf curl -q https://example.com .fi همچنین ببینید \fI\-\-config\fP. .IP "\-\-disable\-eprt" (FTP) غیرفعال کردن استفاده از دستورهای EPRT و LPRT هنگام انجام انتقال‌های فعال FTP. curl معمولاً پیش از استفاده از PORT، ابتدا تلاش می‌کند از EPRT استفاده کند، اما با این گزینه، بلافاصله از PORT استفاده می‌کند. EPRT یک افزونه برای پروتکل اصلی FTP است و روی همه سرورها کار نمی‌کند، اما قابلیت‌های بیشتری را به شیوه‌ای بهتر از دستور سنتی PORT فراهم می‌کند. می‌توان از \fI\-\-eprt\fP برای فعال‌سازی صریح دوبارهٔ EPRT استفاده کرد و \fI\-\-no\-eprt\fP نام مستعاری برای \fI\-\-disable\-eprt\fP است. اگر دسترسی به سرور با استفاده از IPv6 انجام شود، این گزینه هیچ تأثیری ندارد زیرا در این حالت EPRT ضروری است. غیرفعال کردن EPRT تنها رفتار حالت فعال را تغییر می‌دهد. اگر می‌خواهید به حالت غیرفعال بروید، نباید از \fI\-\-ftp\-port\fP استفاده کنید یا اینکه آن را با \fI\-\-ftp\-pasv\fP اجبار نمایید. ارائهٔ چندبارهٔ \fI\-\-disable\-eprt\fP تأثیر مضاعفی ندارد. غیرفعال کردن دوبارهٔ آن با \-\-no-disable-eprt. مثال: .nf curl --disable-eprt ftp://example.com/ .fi همچنین ببینید \fI\-\-disable\-epsv\fP و \fI\-\-ftp\-port\fP. .IP "\-\-disable\-epsv" (FTP) غیرفعال کردن استفاده از دستور EPSV هنگام انجام انتقال‌های غیرفعال FTP. curl معمولاً پیش از PASV، ابتدا تلاش می‌کند از EPSV استفاده کند، اما با این گزینه، EPSV را امتحان نمی‌کند. می‌توان از \fI\-\-epsv\fP برای فعال‌سازی صریح دوبارهٔ EPSV استفاده کرد و \fI\-\-no\-epsv\fP نام مستعاری برای \fI\-\-disable\-epsv\fP است. اگر سرور یک میزبان IPv6 باشد، این گزینه هیچ تأثیری ندارد زیرا در این صورت EPSV ضروری است. غیرفعال کردن EPSV تنها رفتار غیرفعال را تغییر می‌دهد. اگر می‌خواهید به حالت فعال تغییر وضعیت دهید، باید از \fI\-\-ftp\-port\fP استفاده کنید. ارائهٔ چندبارهٔ \fI\-\-disable\-epsv\fP تأثیر مضاعفی ندارد. غیرفعال کردن دوبارهٔ آن با \-\-no-disable-epsv. مثال: .nf curl --disable-epsv ftp://example.com/ .fi همچنین ببینید \fI\-\-disable\-eprt\fP و \fI\-\-ftp\-port\fP. .IP "\-\-disallow\-username\-in\-url" در صورت دریافت یک URL حاوی نام کاربری، با خطا خارج می‌شود. این گزینه احتمالاً زمانی بیشترین کاربرد را دارد که URL در زمان اجرا یا موارد مشابه مشخص شده باشد. پذیرش و استفاده از اطلاعات اعتباری در یک URL معمولاً یک خطر امنیتی به شمار می‌رود، زیرا از این طریق به آسانی نشت پیدا می‌کنند. ارائهٔ چندبارهٔ \fI\-\-disallow\-username\-in\-url\fP تأثیر مضاعفی ندارد. غیرفعال کردن دوبارهٔ آن با \-\-no-disallow-username-in-url. مثال: .nf curl --disallow-username-in-url https://example.com .fi همچنین ببینید \fI\-\-proto\fP. .IP "\-\-dns\-interface " (DNS) ارسال درخواست‌های خروجی DNS از طریق رابط مشخص‌شده. این گزینه همتای \fI\-\-interface\fP است (که بر DNS اثر نمی‌گذارد). رشتهٔ ارائه‌شده باید نام یک رابط باشد (نه یک نشانی). اگر \fI\-\-dns\-interface\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --dns-interface eth0 https://example.com .fi برای کارکرد \fI\-\-dns\-interface\fP، لازم است که libcurl زیرین با قابلیت پشتیبانی از c-ares ساخته شده باشد. همچنین ببینید \fI\-\-dns\-ipv4\-addr\fP و \fI\-\-dns\-ipv6\-addr\fP. .IP "\-\-dns\-ipv4\-addr
" (DNS) مقید شدن به یک نشانی IP مشخص هنگام برقراری درخواست‌های DNS از نوع IPv4، به طوری که درخواست‌های DNS از این نشانی سرچشمه بگیرند. آرگومان باید یک نشانی منفرد IPv4 باشد. اگر \fI\-\-dns\-ipv4\-addr\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --dns-ipv4-addr 10.1.2.3 https://example.com .fi برای کارکرد \fI\-\-dns\-ipv4\-addr\fP، لازم است که libcurl زیرین با قابلیت پشتیبانی از c-ares ساخته شده باشد. همچنین ببینید \fI\-\-dns\-interface\fP و \fI\-\-dns\-ipv6\-addr\fP. .IP "\-\-dns\-ipv6\-addr
" (DNS) هنگام برقراری درخواست‌های DNS از نوع IPv6، به یک نشانی IP مشخص متصل می‌شود تا درخواست‌های DNS از این نشانی سرچشمه بگیرند. آرگومان باید یک نشانی IPv6 منفرد باشد. اگر \fI\-\-dns\-ipv6\-addr\fP چند بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --dns-ipv6-addr 2a04:4e42::561 https://example.com .fi برای اینکه \fI\-\-dns\-ipv6\-addr\fP کار کند، نیاز است که libcurl زیرین به همراه پشتیبانی از c-ares ساخته شده باشد. همچنین ببینید \fI\-\-dns\-interface\fP و \fI\-\-dns\-ipv4\-addr\fP. .IP "\-\-dns\-servers " (DNS) فهرست سرورهای DNS مورد استفاده به جای پیش‌فرض سیستم را تنظیم می‌کند. نشانی‌های IP در فهرست باید با کاما از هم جدا شوند. شماره‌های درگاه (پورت) نیز می‌توانند به صورت اختیاری و با دونقطه در انتهای نشانی IP اضافه شوند. اگر \fI\-\-dns\-servers\fP چند بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com curl --dns-servers 10.0.0.1:53 https://example.com .fi برای اینکه \fI\-\-dns\-servers\fP کار کند، نیاز است که libcurl زیرین به همراه پشتیبانی از c-ares ساخته شده باشد. همچنین ببینید \fI\-\-dns\-interface\fP و \fI\-\-dns\-ipv4\-addr\fP. .IP "\-\-doh\-cert\-status" (DNS) مشابه \fI\-\-cert\-status\fP است اما برای DoH (DNS\-over\-HTTPS) استفاده می‌شود. وضعیت گواهی سرورهای DoH را با استفاده از افزونهٔ TLS به نام Certificate Status Request (معروف به OCSP stapling) بررسی می‌کند. اگر این گزینه فعال باشد و سرور DoH پاسخی نامعتبر (مانند منقضی‌شده) ارسال کند، یا پاسخ نشان دهد که گواهی سرور باطل شده است، یا اصلاً هیچ پاسخی دریافت نشود، اعتبارسنجی با شکست مواجه می‌شود. این پشتیبانی در حال حاضر فقط در بک‌اندهای OpenSSL و GnuTLS پیاده‌سازی شده است. ارائهٔ چندبارهٔ \fI\-\-doh\-cert\-status\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-doh-cert-status می‌توانید دوباره آن را غیرفعال کنید. مثال: .nf curl --doh-cert-status --doh-url https://doh.example https://example.com .fi اضافه‌شده در 7.76.0. همچنین ببینید \fI\-\-doh\-insecure\fP. .IP "\-\-doh\-insecure" (DNS) به طور پیش‌فرض، پیش از انجام فرایند انتقال، امن بودن هر اتصالی که curl با یک سرور DoH برقرار می‌کند بررسی می‌شود. این گزینه به curl می‌گوید از مرحلهٔ اعتبارسنجی صرف‌نظر کند و بدون بررسی ادامه دهد. \fBهشدار\fP: استفاده از این گزینه فرایند انتقال DoH و تحلیل نام (name resolution) را ناامن می‌کند. این گزینه معادل \fI\-\-insecure\fP و \fI\-\-proxy\-insecure\fP است اما تنها برای DoH (DNS\-over\-HTTPS) به کار می‌رود. ارائهٔ چندبارهٔ \fI\-\-doh\-insecure\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-doh-insecure می‌توانید دوباره آن را غیرفعال کنید. مثال: .nf curl --doh-insecure --doh-url https://doh.example https://example.com .fi اضافه‌شده در 7.76.0. همچنین ببینید \fI\-\-doh\-url\fP، \fI\-\-insecure\fP و \fI\-\-proxy\-insecure\fP. .IP "\-\-doh\-url " (DNS) سرور DNS\-over\-HTTPS (DoH) مورد نظر برای تحلیل نام‌های میزبان را به جای استفاده از سازوکار پیش‌فرض تحلیل‌گر نام مشخص می‌کند. نشانی اینترنتی (URL) باید HTTPS باشد. برخی گزینه‌های SSL که برای انتقال خود تنظیم می‌کنید، برای DoH نیز اعمال می‌شوند چرا که جستجوی نام‌ها از طریق SSL انجام می‌گیرد. تنظیمات اعتبارسنجی گواهی به ارث برده نمی‌شوند، بلکه به طور جداگانه از طریق \fI\-\-doh\-insecure\fP و \fI\-\-doh\-cert\-status\fP کنترل می‌شوند. به صورت پیش‌فرض، هنگام جستجوی اولیهٔ رکوردهای DNS مربوط به سرور DoH، از DoH صرف‌نظر می‌شود. برای اجتناب از این وضعیت می‌توانید نشانی(های) IP سرور DoH را با \fI\-\-resolve\fP مشخص کنید. اگر یک رشتهٔ خالی "" به عنوان URL استفاده شود، این گزینه لغو تنظیم می‌شود. (اضافه‌شده در 7.85.0) اگر \fI\-\-doh\-url\fP چند بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --doh-url https://doh.example https://example.com curl --doh-url https://doh.example --resolve doh.example:443:192.0.2.1 https://example.com .fi همچنین ببینید \fI\-\-doh\-insecure\fP. .IP "\-\-dump\-ca\-embed" (TLS) بسته‌ی CA جاسازی‌شده در curl را در خروجی استاندارد نوشته و سپس خارج می‌شود. اگر curl بدون بسته‌ی CA پیش‌فرضِ جاسازی‌شده ساخته شده باشد، خروجی خالی است. ارائه دادن چندباره‌ی \fI\-\-dump\-ca\-embed\fP اثر اضافه‌ای ندارد. با \-\-no-dump-ca-embed دوباره آن را غیرفعال کنید. مثال: .nf curl --dump-ca-embed .fi در 8.10.0 افزوده شد. همچنین ببینید: \fI\-\-ca\-native\fP، \fI\-\-cacert\fP، \fI\-\-capath\fP، \fI\-\-proxy\-ca\-native\fP، \fI\-\-proxy\-cacert\fP و \fI\-\-proxy\-capath\fP. .IP "\-D, \-\-dump\-header " (HTTP FTP) سرایندهای پروتکل دریافت‌شده را در فایل مشخص‌شده می‌نویسد. اگر هیچ سرایندی دریافت نشود، استفاده از این گزینه یک فایل خالی ایجاد می‌کند. برای نوشتن در خروجی استاندارد (stdout)، مقدار "\-" (یک علامت منفی منفرد) را به عنوان نام فایل مشخص کنید. از curl 8.10.0 به بعد، مشخص کردن "%" (یک علامت درصد منفرد) به عنوان نام فایل، خروجی را در stderr می‌نویسد. هنگام استفاده در FTP، خطوط پاسخ سرور FTP به عنوان "سرایندها" تلقی شده و بنابراین در آنجا ذخیره می‌شوند. از curl 8.11.0 به بعد، استفاده از گزینه‌ی \fI\-\-create\-dirs\fP همچنین می‌تواند بخش‌های ناموجود دایرکتوری را برای مسیر ارائه‌شده در \fI\-\-dump\-header\fP ایجاد کند. داشتن چندین انتقال در یک مجموعه عملیات (یعنی URLها در یک عبارت \fI\-\-next\fP)، آنها را با یک خط خالی جداکننده به انتهای همان فایل اضافه می‌کند. اگر \fI\-\-dump\-header\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال‌ها: .nf curl --dump-header store.txt https://example.com curl --dump-header - https://example.com -o save .fi همچنین ببینید: \fI\-\-output\fP. .IP "\-\-ech " (HTTPS) نحوه‌ی انجام ECH (Encrypted Client Hello) را مشخص می‌کند. مقادیر مجاز برای عبارتند از: .RS .IP false برای ECH تلاشی نمی‌کند. این مقدار پیش‌فرض است. .IP grease ارسال یک افزونه‌ی GREASE ECH .IP true در صورت امکان برای ECH تلاش می‌کند، اما در صورتی که ECH انجام نشود ناموفق نمی‌شود. (اگر برای ECH تلاش شود ولی شکست بخورد، اتصال با شکست مواجه می‌شود.) .IP hard برای ECH تلاش می‌کند و در صورت عدم امکان، با شکست مواجه می‌شود. ECH تنها با TLS 1.3 کار می‌کند و همچنین نیازمند استفاده از DoH یا ارائه‌ی یک ECHConfigList در خط فرمان است. .IP ecl: یک ECHConfigList کدگذاری‌شده با base64 که برای ECH استفاده می‌شود. .IP pn: نامی برای بازنویسی (over\-ride) فیلد "public_name" در یک ECHConfigList (تنها با پشتیبانی TLS در OpenSSL در دسترس است) .RE .IP بیشتر خطاهای مرتبط با ECH باعث بروز خطای \fICURLE_ECH_REQUIRED\fP (101) می‌شوند. اگر \fI\-\-ech\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --ech true https://example.com .fi در 8.8.0 افزوده شد. همچنین ببینید: \fI\-\-doh\-url\fP. .IP "\-\-egd\-file " (TLS) گزینه‌ی منسوخ‌شده (افزوده در 7.84.0). پیش از آن، تنها در صورتی بر curl تأثیر داشت که برای استفاده از نسخه‌های قدیمی OpenSSL ساخته شده باشد. مسیر سوکت دیمن گردآوری آنتروپی (Entropy Gathering Daemon) را مشخص می‌کند. این سوکت برای مقداردهی اولیه‌ی موتور تصادفی در اتصالات SSL استفاده می‌شود. اگر \fI\-\-egd\-file\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --egd-file /random/here https://example.com .fi همچنین ببینید: \fI\-\-random\-file\fP. .IP "\-\-engine " (TLS) موتور رمزنگاری OpenSSL را برای عملیات رمزگذاری انتخاب می‌کند. از "\fI\-\-engine\fP list" برای چاپ فهرستی از موتورهای پشتیبانی‌شده در زمان ساخت استفاده کنید. توجه داشته باشید که ممکن است همه‌ی (و احتمالاً هیچ‌یک از) موتورها در زمان اجرا در دسترس نباشند. مفهوم "engines" در OpenSSL با "providers" در OpenSSL 3 جایگزین شده است، و این گزینه برای مشخص کردن آنها نیز به خوبی کار می‌کند. اگر \fI\-\-engine\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --engine flavor https://example.com .fi همچنین ببینید: \fI\-\-ciphers\fP و \fI\-\-curves\fP. .IP "\-\-etag\-compare " (HTTP) یک درخواست شرطی HTTP برای ETag مشخص خوانده‌شده از پرونده داده‌شده، با ارسال یک سرآیند سفارشی If\-None\-Match با استفاده از ETag ذخیره‌شده برقرار می‌کند. برای نتایج درست، مطمئن شوید که پرونده مشخص‌شده تنها شامل یک خط با ETag مورد نظر است. با یک پرونده ناموجود یا خالی به عنوان یک ETag خالی برخورد می‌شود. ابتدا از گزینه \fI\-\-etag\-save\fP برای ذخیره ETag از یک پاسخ استفاده کنید، و سپس از این گزینه برای مقایسه با ETag ذخیره‌شده در درخواست بعدی استفاده کنید. از این گزینه تنها با یک URL استفاده کنید. اگر \fI\-\-etag\-compare\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --etag-compare etag.txt https://example.com .fi در 7.68.0 اضافه شد. همچنین \fI\-\-etag\-save\fP و \fI\-\-time\-cond\fP را ببینید. .IP "\-\-etag\-save " (HTTP) یک ETag مربوط به HTTP را در پرونده مشخص‌شده ذخیره می‌کند. یک ETag یک سرآیند مربوط به حافظه پنهان (caching) است که معمولاً در پاسخ بازگردانده می‌شود. از این گزینه تنها با یک URL استفاده کنید. اگر هیچ ETagای توسط سرور ارسال نشود، یک پرونده خالی ایجاد می‌شود. در بسیاری از شرایط ممکن است بخواهید از یک etag موجود در درخواست استفاده کنید تا از بارگیری مجدد همان منبع جلوگیری شود، اما در عین حال در صورت تغییر واقعی آن، etag جدید را نیز ذخیره کنید؛ این کار با استفاده هم‌زمان از هر دو گزینه etag یعنی \fI\-\-etag\-save\fP و \fI\-\-etag\-compare\fP با نام پرونده یکسان، در همان خط فرمان انجام می‌شود. از نسخه curl 8.12.0، استفاده از گزینه \fI\-\-create\-dirs\fP همچنین می‌تواند مؤلفه‌های ناموجود دایرکتوری را برای مسیر ارائه‌شده در \fI\-\-etag\-save\fP ایجاد کند. اگر \fI\-\-etag\-save\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --etag-save storetag.txt https://example.com .fi در 7.68.0 اضافه شد. همچنین \fI\-\-etag\-compare\fP را ببینید. .IP "\-\-expect100\-timeout " (HTTP) حداکثر زمان بر حسب ثانیه که به curl اجازه می‌دهید منتظر پاسخ 100\-continue بماند، هنگامی که curl سرآیند Expects: 100\-continue را در درخواست خود ارسال می‌کند. به‌طور پیش‌فرض، curl یک ثانیه منتظر می‌ماند. این گزینه مقادیر اعشاری را می‌پذیرد. وقتی curl از انتظار دست می‌کشد، طوری ادامه می‌دهد که گویی پاسخی دریافت شده است. مقدار اعشاری باید با استفاده از یک نقطه (".") به عنوان جداکننده اعشار ارائه شود \- نه نگارش محلی، حتی اگر از جداکننده دیگری استفاده کند. اگر \fI\-\-expect100\-timeout\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --expect100-timeout 2.5 -T file https://example.com .fi همچنین \fI\-\-connect\-timeout\fP را ببینید. .IP "\-f, \-\-fail" (HTTP) برای انتقال‌های HTTP که کدهای پاسخ HTTP برابر با 400 یا بزرگ‌تر برمی‌گردانند، با کد خطای 22 و بدون هیچ‌گونه خروجی بدنه پاسخ با شکست مواجه می‌شود. در شرایط عادی، هنگامی که یک سرور HTTP در تحویل یک سند ناموفق باشد، بدنه متنی‌ای حاوی اعلام این موضوع (که اغلب دلیل آن و موارد بیشتر را نیز توضیح می‌دهد) و یک کد پاسخ HTTP 4xx بازمی‌گرداند. این گزینه خط فرمان از خروجی دادن آن داده‌ها توسط curl جلوگیری کرده و در عوض زودتر خطای 22 را بازمی‌گرداند. به‌طور پیش‌فرض، curl کدهای پاسخ HTTP را نشان‌دهنده شکست تلقی نمی‌کند. برای دریافت کد خطا و همچنین ذخیره محتوا، در عوض از \fI\-\-fail\-with\-body\fP استفاده کنید. این روش کاملاً خطاناپذیر (fail\-safe) نیست و مواردی پیش می‌آید که کدهای پاسخ ناموفق نادیده گرفته می‌شوند، به‌ویژه زمانی که احراز هویت در میان باشد (کدهای پاسخ 401 و 407). ارائه چندباره \fI\-\-fail\fP تأثیر اضافی ندارد. آن را دوباره با \-\-no-fail غیرفعال کنید. مثال: .nf curl --fail https://example.com .fi این گزینه با \fI\-\-fail\-with\-body\fP ناسازگار (مانعة‌الجمع) است. همچنین \fI\-\-fail\-with\-body\fP و \fI\-\-fail\-early\fP را ببینید. .IP "\-\-fail\-early" با اولین خطای شناسایی‌شده در انتقال، با شکست مواجه شده و خارج می‌شود. هنگامی که از curl برای انجام چندین انتقال در خط فرمان استفاده می‌شود، تلاش می‌کند روی تک‌تک URLهای داده‌شده، یکی پس از دیگری عمل کند. به‌طور پیش‌فرض، اگر URLهای بیشتری داده شده باشد خطاها را نادیده می‌گیرد و موفقیت آخرین URL تعیین‌کننده کد خطایی است که curl بازمی‌گرداند. شکست‌های اولیه توسط انتقال‌های موفق بعدی «پنهان» می‌شوند. با استفاده از این گزینه، curl در عوض به محض شکست اولین انتقال، صرف‌نظر از تعداد URLهای ارائه‌شده در خط فرمان، یک خطا بازمی‌گرداند. بدین ترتیب، هیچ شکست انتقالی از دید اسکریپت‌ها و موارد مشابه پنهان نمی‌ماند. این گزینه به معنای \fI\-\-fail\fP نیست، که باعث می‌شود انتقال‌ها به دلیل کد وضعیت HTTP سرور با شکست مواجه شوند. می‌توانید این دو گزینه را با هم ترکیب کنید، با این حال توجه داشته باشید که \fI\-\-fail\fP سراسری نیست و بنابراین توسط \fI\-\-next\fP محدود می‌شود. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. ارائه چندباره \fI\-\-fail\-early\fP تأثیر اضافی ندارد. آن را دوباره با \-\-no-fail-early غیرفعال کنید. مثال: .nf curl --fail-early https://example.com https://two.example .fi همچنین \fI\-\-fail\fP و \fI\-\-fail\-with\-body\fP را ببینید. .IP "\-\-fail\-with\-body" (HTTP) در خطاهای سرور که کد پاسخ HTTP برابر با 400 یا بیشتر است، یک خطا بازمی‌گرداند. در حالت عادی هنگامی که یک سرور HTTP در ارائهٔ یک سند با شکست مواجه می‌شود، یک سند HTML بازمی‌گرداند که این وضعیت را گزارش می‌کند (که اغلب دلیل آن و موارد بیشتری را نیز شرح می‌دهد). این گزینه به curl اجازه می‌دهد تا آن محتوا را در خروجی نمایش داده و ذخیره کند، اما همچنین کد خطای 22 را بازگرداند. این گزینه، جایگزینی برای \fI\-\-fail\fP است که باعث می‌شود curl در شرایط مشابه با خطا مواجه شود، اما بدون اینکه محتوا را ذخیره کند. ارائهٔ چندبارهٔ \fI\-\-fail\-with\-body\fP اثر اضافه‌ای ندارد. با \-\-no-fail-with-body دوباره آن را غیرفعال کنید. مثال: .nf curl --fail-with-body https://example.com .fi این گزینه با \fI\-\-fail\fP ناسازگار است. در نسخهٔ 7.76.0 اضافه شد. همچنین ببینید: \fI\-\-fail\fP و \fI\-\-fail\-early\fP. .IP "\-\-false\-start" (TLS) در حال حاضر هیچ بک‌اند TLS از این قابلیت پشتیبانی نمی‌کند. استفاده از شروع زودهنگام (false start) در طول دست‌تکانی TLS. شروع زودهنگام حالتی است که در آن کلاینت TLS پیش از اعتبارسنجی پیام Finished سرور، ارسال داده‌های برنامه را آغاز می‌کند و بدین ترتیب هنگام انجام یک دست‌تکانی کامل، در یک رفت‌وبرگشت صرفه‌جویی می‌شود. ارائهٔ چندبارهٔ \fI\-\-false\-start\fP اثر اضافه‌ای ندارد. با \-\-no-false-start دوباره آن را غیرفعال کنید. مثال: .nf curl --false-start https://example.com .fi همچنین ببینید: \fI\-\-tcp\-fastopen\fP. .IP "\-\-follow" (HTTP) به curl دستور می‌دهد تا تغییرمسیرهای HTTP را دنبال کند و هنگام دنبال کردن تغییرمسیرها، متد درخواست سفارشی تنظیم‌شده با \fI\-\-request\fP را همان‌طور که مشخصات فنی HTTP بیان می‌کند انجام دهد. رشتهٔ متد تنظیم‌شده با \fI\-\-request\fP در درخواست‌های بعدی برای کدهای وضعیت 307 یا 308 استفاده می‌شود، اما ممکن است برای 301، 302 و 303 به GET بازنشانی شود. این گزینه تفاوت ظریفی با \fI\-\-location\fP دارد، زیرا آن گزینه همیشه متد سفارشی را صرف‌نظر از کد پاسخ در تمام درخواست‌های بعدی تنظیم می‌کند. پروتکل‌هایی را که یک تغییرمسیر مجاز به دنبال کردن آن‌ها است با \fI\-\-proto\-redir\fP محدود کنید. هنگامی که \fI\-\-netrc\fP در ترکیب با این گزینه استفاده می‌شود، اطلاعات احراز هویت برای میزبان‌های مقصد تغییرمسیر نیز ممکن است از آن پرونده انتخاب شود. ارائهٔ چندبارهٔ \fI\-\-follow\fP اثر اضافه‌ای ندارد. با \-\-no-follow دوباره آن را غیرفعال کنید. مثال: .nf curl -X POST --follow https://example.com .fi در نسخهٔ 8.16.0 اضافه شد. همچنین ببینید: \fI\-\-request\fP، \fI\-\-location\fP، \fI\-\-proto\-redir\fP و \fI\-\-max\-redirs\fP. .IP "\-F, \-\-form " (HTTP SMTP IMAP) برای خانوادهٔ پروتکل‌های HTTP، یک فرم پرشده را شبیه‌سازی می‌کند که در آن کاربر دکمهٔ ارسال (submit) را فشرده است. این باعث می‌شود curl داده‌ها را با استفاده از Content\-Type با مقدار multipart/form\-data مطابق با RFC 2388 ارسال (POST) کند. برای پروتکل‌های SMTP و IMAP، این گزینه یک پیام ایمیل چندبخشی (multipart) را برای ارسال ایجاد می‌کند. این گزینه بارگذاری پرونده‌های باینری و غیره را امکان‌پذیر می‌سازد. برای اجبار بخش \(aqcontent\(aq به اینکه یک پرونده باشد، پیشوند نام پرونده را با علامت @ مشخص کنید. برای دریافت بخش محتوا از یک پرونده، پیشوند نام پرونده را با نماد < مشخص کنید. تفاوت بین @ و < در این است که @ باعث می‌شود پرونده به عنوان بارگذاری پرونده در ارسال ضمیمه شود، در حالی که < یک فیلد متنی ایجاد کرده و محتوای آن فیلد متنی را از یک پرونده دریافت می‌کند. با استفاده از یک "\-" تکی به عنوان نام پرونده، محتوا را به جای پرونده از stdin بخوانید. این موضوع برای هر دو ساختار @ و < صدق می‌کند. هنگامی که از stdin استفاده می‌شود، محتوا ابتدا توسط curl در حافظه بافر می‌شود تا اندازهٔ آن مشخص شود و امکان ارسال مجدد در صورت نیاز فراهم گردد. تعریف داده‌های یک بخش از یک پروندهٔ غیرعادی نام‌گذاری‌شده (مانند لولهٔ نام‌گذاری‌شده یا مشابه آن) مشمول بافر شدن نیست و در عوض در زمان انتقال خوانده می‌شود؛ از آنجا که اندازهٔ کامل پیش از شروع انتقال مشخص نیست، چنین داده‌هایی در HTTP به صورت تکه‌تکه (chunks) ارسال شده و توسط IMAP رد می‌شوند. مثال: ارسال یک تصویر به یک سرور HTTP، که در آن \(aqprofile\(aq نام فیلد فرم است که پروندهٔ \fBportrait.jpg\fP ورودی آن است: .nf curl \-F profile=@portrait.jpg https://example.com/upload.cgi .fi مثال: ارسال نام و اندازهٔ کفش خود در دو فیلد متنی به سرور: .nf curl \-F name=John \-F shoesize=11 https://example.com .fi مثال: ارسال مقالهٔ خود در یک فیلد متنی به سرور. آن را به عنوان یک فیلد متنی ساده ارسال کنید، اما محتوای آن را از یک پروندهٔ محلی بگیرید: .nf curl \-F "story=HTML message;type=text/html\(aq \\ \-F \(aq=)\(aq \-F \(aq=@textfile.txt\(aq ... smtp://example.com .fi داده را می‌توان با استفاده از encoder= برای انتقال کدگذاری کرد. کدگذاری‌های موجود عبارتند از \fIbinary\fP و \fI8bit\fP که کاری جز افزودن سرآیند Content\-Transfer\-Encoding متناظر انجام نمی‌دهند، \fI7bit\fP که تنها نویسه‌های 8\-bit را با یک خطای انتقال رد می‌کند، و \fIquoted\-printable\fP و \fIbase64\fP که داده‌ها را بر اساس طرح‌های متناظر کدگذاری کرده و طول خطوط را به ۷۶ نویسه محدود می‌کنند. مثال: ارسال ایمیل multipart با یک پیام متنی quoted\-printable و یک فایل ضمیمه‌شده با base64: .nf curl \-F \(aq=text message;encoder=quoted\-printable\(aq \\ \-F \(aq=@localfile;encoder=base64\(aq ... smtp://example.com .fi \fI\-\-form\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --form "name=curl" --form "file=@loadthis" https://example.com .fi این گزینه با \fI\-\-data\fP، \fI\-\-head\fP و \fI\-\-upload\-file\fP مانعة‌الجمع است. همچنین ببینید \fI\-\-data\fP، \fI\-\-form\-string\fP و \fI\-\-form\-escape\fP. .IP "\-\-form\-escape" (HTTP IMAP SMTP) نام فیلدهای فرم multipart و فایل‌ها را به‌جای percent\-encoding با استفاده از backslash\-escaping ارسال می‌کند. اگر \fI\-\-form\-escape\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --form-escape -F 'field\\name=curl' -F 'file=@load"this' https://example.com .fi در 7.81.0 اضافه شد. همچنین ببینید \fI\-\-form\fP. .IP "\-\-form\-string " (HTTP SMTP IMAP) مشابه \fI\-\-form\fP است، با این تفاوت که رشتهٔ مقدار برای پارامترِ نام‌برده به صورت تحت‌اللفظی به کار می‌رود. نویسه‌های آغازین @ و < و رشتهٔ ";type=" در مقدار هیچ معنای خاصی ندارند. اگر این احتمال وجود دارد که مقدار رشته تصادفاً قابلیت‌های @ یا < در \fI\-\-form\fP را فعال کند، استفاده از این گزینه را به \fI\-\-form\fP ترجیح دهید. \fI\-\-form\-string\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --form-string "name=data" https://example.com .fi همچنین ببینید: \fI\-\-form\fP. .IP "\-\-ftp\-account " (FTP) هنگامی که یک سرور FTP پس از ارائهٔ نام کاربری و گذرواژه، درخواست "account data" می‌کند، این داده با استفاده از دستور ACCT ارسال می‌شود. اگر \fI\-\-ftp\-account\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --ftp-account "mr.robot" ftp://example.com .fi همچنین ببینید: \fI\-\-user\fP. .IP "\-\-ftp\-alternative\-to\-user " (FTP) اگر احراز هویت با دستورهای USER و PASS شکست بخورد، این دستور ارسال می‌شود. هنگام اتصال به سرور Tumbleweed\(aqs Secure Transport از طریق FTPS با استفاده از گواهی کلاینت، استفاده از "SITE AUTH" به سرور اعلام می‌کند که نام کاربری را از گواهی بازیابی کند. اگر \fI\-\-ftp\-alternative\-to\-user\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --ftp-alternative-to-user "U53r" ftp://example.com .fi همچنین ببینید: \fI\-\-ftp\-account\fP و \fI\-\-user\fP. .IP "\-\-ftp\-create\-dirs" (FTP SFTP) هنگامی که یک عملیات یا URL در FTP یا SFTP از مسیری استفاده می‌کند که در حال حاضر روی سرور وجود ندارد، رفتار پیش‌فرض curl شکست در عملیات است. با استفاده از این گزینه، curl در عوض تلاش می‌کند دایرکتوری‌های ناموجود را ایجاد کند. مشخص کردن چندبارهٔ \fI\-\-ftp\-create\-dirs\fP تأثیر اضافه‌ای ندارد. غیرفعال کردن دوبارهٔ آن با \-\-no-ftp-create-dirs انجام می‌شود. مثال: .nf curl --ftp-create-dirs -T file ftp://example.com/remote/path/file .fi همچنین ببینید: \fI\-\-create\-dirs\fP. .IP "\-\-ftp\-method " (FTP) مشخص می‌کند که curl باید از چه روشی برای دسترسی به یک فایل روی سرور FTP(S) استفاده کند. آرگومان method باید یکی از گزینه‌های جایگزین زیر باشد: .RS .IP multicwd برای هر بخش از مسیر در URL داده‌شده، یک عملیات CWD منفرد انجام می‌دهد. برای سلسله‌مراتب‌های عمیق، این کار به معنای دستورهای بسیار است. طبق گفتهٔ RFC 1738 این کار باید به همین شیوه انجام شود. این حالت رفتار پیش‌فرض است، اما کندترین رفتار به شمار می‌رود. .IP nocwd به هیچ عنوان CWD انجام نمی‌دهد. curl دستورهای SIZE، RETR، STOR و غیره را اجرا کرده و برای هر یک از این دستورها مسیر کامل را به سرور می‌دهد. این سریع‌ترین رفتار است. .IP singlecwd یک CWD با کل دایرکتوری مقصد انجام می‌دهد و سپس \&"به‌طور معمول" (مانند حالت multicwd) روی فایل عمل می‌کند. این روش تا حدودی بیشتر از "nocwd" با استانداردها سازگار است، اما جریمهٔ کامل کارایی در "multicwd" را ندارد. .RE .IP اگر \fI\-\-ftp\-method\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --ftp-method multicwd ftp://example.com/dir1/dir2/file curl --ftp-method nocwd ftp://example.com/dir1/dir2/file curl --ftp-method singlecwd ftp://example.com/dir1/dir2/file .fi همچنین ببینید: \fI\-\-list\-only\fP. .IP "\-\-ftp\-pasv" (FTP) از حالت غیرفعال (passive) برای اتصال داده استفاده می‌کند. حالت غیرفعال، رفتار پیش‌فرض داخلی است، اما استفاده از این گزینه می‌تواند برای نادیده گرفتن گزینهٔ قبلی \fI\-\-ftp\-port\fP به کار رود. بازگرداندن حالت غیرفعالِ اجباری واقعاً امکان‌پذیر نیست، بلکه در عوض باید دوباره گزینهٔ \fI\-\-ftp\-port\fP درست را اعمال کنید. حالت غیرفعال بدین معناست که curl ابتدا دستور EPSV و سپس PASV را امتحان می‌کند، مگر اینکه \fI\-\-disable\-epsv\fP استفاده شده باشد. مشخص کردن چندبارهٔ \fI\-\-ftp\-pasv\fP تأثیر اضافه‌ای ندارد. مثال: .nf curl --ftp-pasv ftp://example.com .fi این گزینه با \fI\-\-ftp\-port\fP مانعة‌الجمع است. همچنین ببینید: \fI\-\-disable\-epsv\fP. .IP "\-P, \-\-ftp\-port
" (FTP) معکوس کردن نقش‌های پیش‌فرض آغازگر/شنونده هنگام اتصال با FTP. این گزینه باعث می‌شود curl از حالت فعال (active mode) استفاده کند. سپس curl به سرور دستور می‌دهد که به نشانی و پورت مشخص‌شده‌ی کلاینت متصل شود، در حالی که حالت غیرفعال (passive mode) از سرور می‌خواهد یک نشانی IP و پورت برای اتصال به آن برپا کند.
باید یکی از موارد زیر باشد: .RS .IP interface برای نمونه \fBeth0\fP برای مشخص کردن این‌که می‌خواهید از نشانی IP کدام رابط استفاده کنید (تنها در یونیکس) .IP "IP address" برای نمونه \fB192.168.10.1\fP برای مشخص کردن نشانی دقیق IP .IP hostname برای نمونه \fBmy.host.domain\fP برای مشخص کردن ماشین میزبان .IP - باعث می‌شود curl همان نشانی IP را انتخاب کند که پیش‌تر برای اتصال کنترلی استفاده شده است. این انتخاب، گزینه‌ی توصیه‌شده است. .RE .IP غیرفعال کردن استفاده از PORT با \fI\-\-ftp\-pasv\fP. غیرفعال کردن تلاش برای استفاده از دستور EPRT به جای PORT با استفاده از \fI\-\-disable\-eprt\fP. دستور EPRT در واقع همان PORT++ است. شما همچنین می‌توانید ":[start]\-[end]" را به سمت راست نشانی اضافه کنید، تا به curl بگویید از چه بازه پورت TCP استفاده کند. این بدان معناست که شما یک بازه پورت، از یک شماره کمتر به بیشتر را مشخص می‌کنید. یک شماره تکی نیز کار می‌کند، اما توجه داشته باشید که ریسک شکست را افزایش می‌دهد زیرا ممکن است آن پورت در دسترس نباشد. اگر \fI\-\-ftp\-port\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال‌ها: .nf curl -P - ftp:/example.com curl -P eth0 ftp:/example.com curl -P 192.168.0.2 ftp:/example.com .fi همچنین ببینید \fI\-\-ftp\-pasv\fP و \fI\-\-disable\-eprt\fP. .IP "\-\-ftp\-pret" (FTP) ارسال دستور PRET پیش از PASV (و EPSV). برخی سرورهای FTP، عمدتاً drftpd، برای فهرست‌گیری دایرکتوری و همچنین بارگذاری و بارگیری در حالت PASV به این دستور غیر استاندارد نیاز دارند. مشخص کردن چندباره‌ی \fI\-\-ftp\-pret\fP هیچ اثر اضافی ندارد. آن را مجدداً با \-\-no-ftp-pret غیرفعال کنید. مثال: .nf curl --ftp-pret ftp://example.com .fi همچنین ببینید \fI\-\-ftp\-port\fP و \fI\-\-ftp\-pasv\fP. .IP "\-\-ftp\-skip\-pasv\-ip" (FTP) هنگام برقراری اتصال داده توسط curl، از نشانی IP که سرور در پاسخ به دستور PASV برنامه curl پیشنهاد می‌دهد استفاده نکنید. در عوض curl از همان نشانی IP که پیش‌تر برای اتصال کنترلی استفاده کرده است، دوباره استفاده می‌کند. این گزینه به صورت پیش‌فرض فعال است (در نسخه‌ی 7.74.0 اضافه شد). اگر به جای PASV از PORT، EPRT یا EPSV استفاده شود، این گزینه هیچ اثری ندارد. مشخص کردن چندباره‌ی \fI\-\-ftp\-skip\-pasv\-ip\fP هیچ اثر اضافی ندارد. آن را مجدداً با \-\-no-ftp-skip-pasv-ip غیرفعال کنید. مثال: .nf curl --ftp-skip-pasv-ip ftp://example.com .fi همچنین ببینید \fI\-\-ftp\-pasv\fP. .IP "\-\-ftp\-ssl\-ccc" (FTP) استفاده از CCC (کانال شفاف فرمان / Clear Command Channel). لایه‌ی SSL/TLS را پس از احراز هویت خاموش می‌کند. ادامه‌ی ارتباطات کانال کنترلی بدون رمزگذاری خواهد بود. این کار به روترهای NAT اجازه می‌دهد تراکنش FTP را دنبال کنند. حالت پیش‌فرض passive است. مشخص کردن چندباره‌ی \fI\-\-ftp\-ssl\-ccc\fP هیچ اثر اضافی ندارد. آن را مجدداً با \-\-no-ftp-ssl-ccc غیرفعال کنید. مثال: .nf curl --ftp-ssl-ccc ftps://example.com .fi همچنین ببینید \fI\-\-ssl\fP و \fI\-\-ftp\-ssl\-ccc\-mode\fP. .IP "\-\-ftp\-ssl\-ccc\-mode " (FTP) تنظیم حالت CCC. حالت passive خاموش‌سازی را آغاز نمی‌کند، بلکه منتظر می‌ماند تا سرور این کار را انجام دهد، و به خاموش‌سازی از طرف سرور پاسخی نمی‌دهد. حالت active خاموش‌سازی را آغاز کرده و منتظر پاسخی از طرف سرور می‌ماند. مشخص کردن چندباره‌ی \fI\-\-ftp\-ssl\-ccc\-mode\fP هیچ اثر اضافی ندارد. آن را مجدداً با \-\-no-ftp-ssl-ccc-mode غیرفعال کنید. مثال: .nf curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com .fi همچنین ببینید \fI\-\-ftp\-ssl\-ccc\fP. .IP "\-\-ftp\-ssl\-control" (FTP) الزام استفاده از SSL/TLS برای ورود به FTP، و ارسال شفاف (رمزگذاری‌نشده) برای انتقال داده‌ها. این گزینه احراز هویت امن را امکان‌پذیر می‌سازد، اما برای کارایی بیشتر، داده‌ها را بدون رمزگذاری منتقل می‌کند. اگر سرور از SSL/TLS پشتیبانی نکند، انتقال با شکست مواجه می‌شود. در صورت تنظیم، این گزینه بر \fI\-\-ssl\fP تقدم دارد. ارائه چندباره \fI\-\-ftp\-ssl\-control\fP تأثیر اضافه‌ای ندارد. با \-\-no-ftp-ssl-control دوباره آن را غیرفعال کنید. مثال: .nf curl --ftp-ssl-control ftp://example.com .fi همچنین ببینید \fI\-\-ssl\fP. .IP "\-G, \-\-get" (HTTP) هنگام استفاده، این گزینه باعث می‌شود تمام داده‌های مشخص‌شده با \fI\-\-data\fP، \fI\-\-data\-binary\fP یا \fI\-\-data\-urlencode\fP به جای درخواست POST که در غیر این صورت استفاده می‌شد، در یک درخواست HTTP GET به کار بروند. curl داده‌های ارائه‌شده را به عنوان یک رشته جستار (query string) به نشانی اینترنتی (URL) پیوست می‌کند. در صورت استفاده در ترکیب با \fI\-\-head\fP، داده‌های POST در عوض همراه با یک درخواست HEAD به نشانی اینترنتی پیوست می‌شوند. ارائه چندباره \fI\-\-get\fP تأثیر اضافه‌ای ندارد. با \-\-no-get دوباره آن را غیرفعال کنید. مثال‌ها: .nf curl --get https://example.com curl --get -d "tool=curl" -d "age=old" https://example.com curl --get -I -d "tool=curl" https://example.com .fi همچنین ببینید \fI\-\-data\fP و \fI\-\-request\fP. .IP "\-g, \-\-globoff" قابلیت تطبیق الگو (globbing) در URL را غیرفعال می‌کند. هنگامی که این گزینه را تنظیم می‌کنید، می‌توانید نشانی‌های اینترنتی حاوی نویسه‌های {}[] را بدون این که خود curl آن‌ها را تفسیر کند، مشخص کنید. توجه داشته باشید که این نویسه‌ها محتوای قانونی و معمول URL نیستند و باید مطابق با استاندارد URI کدگذاری شوند. هنگامی که نشانی‌های عددی IPv6 در URL استفاده می‌شوند، curl آن‌ها را تشخیص داده و از این قاعده مستثنی می‌کند، بنابراین همچنان می‌توان بدون نیاز به غیرفعال‌سازی globbing از آن‌ها استفاده کرد. ارائه چندباره \fI\-\-globoff\fP تأثیر اضافه‌ای ندارد. با \-\-no-globoff دوباره آن را غیرفعال کنید. مثال: .nf curl -g "https://example.com/{[]}}}}" .fi همچنین ببینید \fI\-\-config\fP و \fI\-\-disable\fP. .IP "\-\-happy\-eyeballs\-timeout\-ms " تنظیم مهلت زمانی (timeout) برای Happy Eyeballs. الگوریتم Happy Eyeballs سازوکاری است که برای میزبان‌های دوپشته‌ای (dual\-stack) تلاش می‌کند به هر دو نشانی IPv4 و IPv6 متصل شود، و به IPv6 به اندازه تعداد میلی‌ثانیه‌های مشخص‌شده فرجه زمانی اولیه می‌دهد. اگر در این مدت اتصال به نشانی IPv6 برقرار نشود، تلاش برای برقراری اتصال به نشانی IPv4 به طور موازی انجام می‌گیرد. نخستین اتصالی که برقرار شود، همان اتصالی است که استفاده خواهد شد. محدوده مقادیر مفید پیشنهادی محدود است. در RFC 6555 مربوط به Happy Eyeballs آمده است: \&"توصیه می‌شود که تلاش‌های برقراری اتصال با فاصله 150\-250 ms از یکدیگر زمان‌بندی شوند تا بین عوامل انسانی و بار شبکه تعادل برقرار گردد." در حال حاضر پیش‌فرض libcurl برابر 200 ms است. پیش‌فرض Firefox و Chrome در حال حاضر 300 ms است. اگر \fI\-\-happy\-eyeballs\-timeout\-ms\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده خواهد شد. مثال: .nf curl --happy-eyeballs-timeout-ms 500 https://example.com .fi همچنین ببینید \fI\-\-max\-time\fP و \fI\-\-connect\-timeout\fP. .IP "\-\-haproxy\-clientip " (HTTP) یک IP کلاینت را در سربرگ پروتکل HAProxy PROXY نسخه 1 در ابتدای اتصال تنظیم می‌کند. برای درخواست‌های معتبر، نشانی‌های IPv4 باید دقیقاً به صورت دنباله‌ای از ۴ عدد صحیح در محدوده شامل [0..255] با نمایش ده‌دهی مشخص شوند که دقیقاً با یک نقطه از یکدیگر جدا شده‌اند. صفرهای ابتدایی پیش از اعداد مجاز نیستند تا از هرگونه ابهام احتمالی با اعداد در مبنای ۸ (اکتال) جلوگیری شود. نشانی‌های IPv6 باید به صورت دنباله‌ای از ۴ رقم هگزادسیمال (حروف بزرگ یا کوچک) مشخص شوند که با دونقطه از یکدیگر جدا شده‌اند، همراه با پذیرش یک توالی دونقطهٔ دوتایی برای جایگزینی بزرگ‌ترین محدوده مجاز از صفرهای متوالی. تعداد کل بیت‌های رمزگشایی‌شده باید دقیقاً ۱۲۸ باشد. در غیر این صورت، هر رشته‌ای می‌تواند برای IP کلاینت پذیرفته و ارسال شود. در صورت استفاده، این گزینه جایگزین \fI\-\-haproxy\-protocol\fP می‌شود و نیازی به مشخص کردن هر دو گزینه نیست. اگر \fI\-\-haproxy\-clientip\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده خواهد شد. مثال: .nf curl --haproxy-clientip $IP .fi در نسخه 8.2.0 اضافه شد. همچنین ببینید \fI\-\-proxy\fP. .IP "\-\-haproxy\-protocol" (HTTP) در ابتدای اتصال، یک هدر HAProxy PROXY protocol v1 ارسال می‌کند. این مورد توسط برخی از متعادل‌کننده‌های بار و پروکسی‌های معکوس برای مشخص کردن نشانی IP و پورت واقعی کلاینت استفاده می‌شود. این گزینه در درجه اول هنگام ارسال درخواست‌های آزمایشی به سرویسی که انتظار این هدر را دارد، مفید است. ارائه چندباره \fI\-\-haproxy\-protocol\fP تأثیر اضافه‌ای ندارد. با \-\-no-haproxy-protocol دوباره آن را غیرفعال کنید. مثال: .nf curl --haproxy-protocol https://example.com .fi همچنین ببینید \fI\-\-proxy\fP. .IP "\-I, \-\-head" (HTTP FTP FILE) تنها هدرها را دریافت می‌کند. سرورهای HTTP دارای دستور HEAD هستند که این گزینه برای دریافت چیزی جز هدر یک سند از آن استفاده می‌کند. هنگام استفاده روی یک URL با پروتکل FTP یا FILE، ابزار curl تنها اندازه فایل و زمان آخرین تغییر را نمایش می‌دهد. ارائه چندباره \fI\-\-head\fP تأثیر اضافه‌ای ندارد. با \-\-no-head دوباره آن را غیرفعال کنید. مثال: .nf curl -I https://example.com .fi همچنین ببینید \fI\-\-get\fP، \fI\-\-verbose\fP و \fI\-\-trace\-ascii\fP. .IP "\-H, \-\-header
" (HTTP IMAP SMTP) هدر اضافی برای گنجاندن در اطلاعات ارسالی. هنگام استفاده درون یک درخواست HTTP، به هدرهای معمول درخواست اضافه می‌شود. برای یک ایمیل آپلودشده با قالب MIME در IMAP یا SMTP که با گزینه‌های \fI\-\-form\fP ساخته شده باشد، این هدر به ابتدای سند MIME حاصل اضافه می‌شود و عملاً آن را در سطح سراسری ایمیل می‌گنجاند. این مورد روی ایمیل‌های خام آپلودشده تأثیری ندارد. شما می‌توانید هر تعداد هدر اضافی را مشخص کنید. توجه داشته باشید اگر یک هدر سفارشی اضافه کنید که نام آن با یکی از هدرهای داخلی مورد استفاده curl یکسان باشد، هدر تنظیم‌شده خارجی شما به‌جای هدر داخلی استفاده خواهد شد. این به شما امکان می‌دهد کارهای ظریف‌تر و پیچیده‌تری نسبت به آنچه curl به‌طور معمول انجام می‌دهد، انجام دهید. نباید هدرهای تنظیم‌شده داخلی را جایگزین کنید مگر اینکه کاملاً بدانید چه کاری انجام می‌دهید. با تعیین یک جایگزین بدون محتوا در سمت راست دونقطه، یک هدر داخلی را حذف کنید؛ مانند: \-H "Host:". اگر هدر سفارشی را بدون مقدار ارسال می‌کنید، آنگاه هدر باید با یک نقطه‌ویرگول پایان یابد؛ مانند \-H \&"X\-Custom\-Header;" برای ارسال "X\-Custom\-Header:". ابزار curl اطمینان حاصل می‌کند که هر هدر اضافه‌شده/جایگزین‌شده با نشانگر انتهای خط مناسب ارسال شود، بنابراین \fBنباید\fP آن را به عنوان بخشی از محتوای هدر اضافه کنید: خطوط جدید یا نویسه‌های بازگشت به اول خط (carriage return) اضافه نکنید، زیرا آنها فقط کار را برای شما خراب می‌کنند. curl رشته متنی ارائه‌شده توسط شما را عیناً بدون هیچ فیلتر یا سایر تدابیر ایمنی ارسال می‌کند. این شامل فاصله‌های خالی و نویسه‌های کنترلی نیز می‌شود. این گزینه می‌تواند آرگومانی به سبک @filename بپذیرد که در این صورت برای هر سطر در فایل ورودی، یک هدر اضافه می‌کند. استفاده از @\- باعث می‌شود curl فایل هدر را از stdin بخواند. لطفاً توجه داشته باشید که بیشتر ابزارهای ضد هرزنامه، وجود و مقدار چندین هدر ایمیل MIME را بررسی می‌کنند: از جمله این هدرها می‌توان به "From:"، "To:"، "Date:" و "Subject:" اشاره کرد که باید با این گزینه اضافه شوند. برای ارسال هدرهای سفارشی در نظر گرفته‌شده برای یک پروکسی HTTP، به \fI\-\-proxy\-header\fP نیاز دارید. ارسال هدر "Transfer\-Encoding: chunked" هنگام انجام یک درخواست HTTP همراه با بدنه درخواست، باعث می‌شود curl داده‌ها را با استفاده از کدگذاری تکه‌تکه (chunked encoding) ارسال کند. \fBهشدار\fP: هدرهای تنظیم‌شده با این گزینه در تمام درخواست‌های HTTP تنظیم می‌شوند \- حتی پس از دنبال کردن تغییر مسیرها، مانند زمانی که با \fI\-\-location\fP مشخص شده باشد. این می‌تواند منجر به ارسال هدر به میزبان‌هایی غیر از میزبان اصلی شود، بنابراین هدرهای حساس در صورت ترکیب با دنبال کردن تغییر مسیرها باید با احتیاط استفاده شوند. هدرهای \&"Authorization:" و "Cookie:" هنگام دنبال کردن تغییر مسیرها به مبداهای دیگر، صراحتاً در درخواست‌های HTTP \fIارسال نمی‌شوند\fP، مگر اینکه از \fI\-\-location\-trusted\fP استفاده شود. \fI\-\-header\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال‌ها: .nf curl -H "X-First-Name: Joe" https://example.com curl -H "User-Agent: yes-please/2000" https://example.com curl -H "Host:" https://example.com curl -H @headers.txt https://example.com .fi همچنین ببینید \fI\-\-user\-agent\fP، \fI\-\-referer\fP و \fI\-\-proxy\-header\fP. .IP "\-h, \-\-help " راهنمای استفاده. برای موضوعی که به عنوان یک آرگومان اختیاری داده می‌شود، راهنما ارائه می‌دهد. اگر هیچ آرگومانی ارائه نشود، curl مهم‌ترین آرگومان‌های خط فرمان را نمایش می‌دهد. این آرگومان می‌تواند یک \fBدسته‌بندی\fP یا یک \fBگزینه خط فرمان\fP باشد. هنگامی که یک دسته‌بندی ارائه شود، curl تمام گزینه‌های خط فرمان درون آن دسته‌بندی را نشان می‌دهد. برای فهرست کردن همه گزینه‌های موجود، دسته‌بندی "all" را مشخص کنید. اگر "category" مشخص شود، curl تمام دسته‌بندی‌های راهنمای موجود را نمایش می‌دهد. اگر موضوع ارائه‌شده در عوض یک گزینه خط فرمان موجود باشد، که یا به شکل کوتاه با یک خط تیره و یک حرف یا به شکل بلند با دو خط تیره و یک نام طولانی‌تر مشخص شده باشد، curl متن راهنما را برای آن گزینه در ترمینال نمایش می‌دهد. خروجی راهنما برای برخی از گزینه‌ها مفصل است. اگر گزینه خط فرمان ارائه‌شده ناشناخته باشد، curl این موضوع را اعلام می‌کند. مثال‌ها: .nf curl --help all curl --help --insecure curl --help -f .fi همچنین ببینید \fI\-\-verbose\fP. .IP "\-\-hostpubmd5 " (SFTP SCP) یک رشته حاوی ۳۲ رقم هگزادسیمال ارسال کنید. این رشته باید چکسام ۱۲۸ بیتی \fBMD5\fP از کلید عمومی میزبان دوردست باشد؛ curl اتصال به میزبان را رد می‌کند مگر اینکه چکسام‌ها مطابقت داشته باشند. اگر \fI\-\-hostpubmd5\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/ .fi همچنین \fI\-\-hostpubsha256\fP را ببینید. .IP "\-\-hostpubsha256 " (SFTP SCP) یک رشته حاوی هش SHA256 کدگذاری‌شده با Base64 از کلید عمومی میزبان دوردست ارسال کنید. curl اتصال به میزبان را رد می‌کند مگر اینکه هش‌ها مطابقت داشته باشند. اگر \fI\-\-hostpubsha256\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/ .fi در 7.80.0 اضافه شد. همچنین \fI\-\-hostpubmd5\fP را ببینید. .IP "\-\-hsts " (HTTPS) قابلیت HSTS را برای انتقال فعال کنید. اگر نام فایل به یک فایل کش HSTS موجود اشاره کند، از آن استفاده می‌شود. پس از تکمیل انتقال، در صورتی که کش تغییر یافته باشد، دوباره در فایل ذخیره می‌شود. اگر چندین اجرای curl را به طور هم‌زمان با استفاده از یک فایل کش HSTS اجرا کنید، ممکن است به شیوه‌های ناخواسته‌ای با یکدیگر تداخل پیدا کنند. اگر به curl گفته شود که برای انتقالی شامل نام میزبانی که در کش HSTS وجود دارد از "http://" استفاده کند، انتقال را به استفاده از HTTPS ارتقا می‌دهد. هر ورودی کش HSTS دارای طول عمر مشخصی است که پس از پایان آن، ارتقا دیگر انجام نمی‌شود. یک نام فایل "" (با طول صفر) مشخص کنید تا از بارگذاری/ذخیره‌سازی جلوگیری شده و curl مدیریت HSTS را در حافظه انجام دهد. شاید بخواهید umask خود را محدود کنید تا از دسترسی سایر کاربران همان سیستم به فایل ایجادشده جلوگیری شود. اگر این گزینه چندین بار استفاده شود، curl محتوای تمام فایل‌ها را بارگذاری می‌کند، اما آخرین فایل برای ذخیره‌سازی استفاده می‌شود. از curl 8.20.0 به بعد، curl حداکثر ۱۰٬۰۰۰ نام میزبان یکتای HSTS را که اخیراً اضافه شده‌اند نگه‌داری می‌کند. \fI\-\-hsts\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --hsts cache.txt https://example.com .fi در 7.74.0 اضافه شد. همچنین \fI\-\-proto\fP را ببینید. .IP "\-\-http0.9" (HTTP) یک پاسخ نسخه 0.9 پروتکل HTTP را بپذیرید. HTTP/0.9 پاسخی بدون سرایند است و بنابراین می‌توانید با این گزینه به سرورهای غیر HTTP نیز متصل شده و همچنان پاسخ دریافت کنید، چرا که curl \- در صورت مجاز بودن \- به طور شفاف به نسخه پایین‌تر تنزل می‌یابد. HTTP/0.9 به طور پیشفرض غیرفعال است (در 7.66.0 اضافه شد) ارائه چندباره \fI\-\-http0.9\fP تأثیر اضافه‌ای ندارد. با \-\-no-http0.9 دوباره آن را غیرفعال کنید. مثال: .nf curl --http0.9 https://example.com .fi همچنین \fI\-\-http1.1\fP، \fI\-\-http2\fP و \fI\-\-http3\fP را ببینید. .IP "\-0, \-\-http1.0" (HTTP) از نسخه 1.0 پروتکل HTTP به جای نسخه ترجیحی داخلی آن استفاده کنید. ارائه چندباره \fI\-\-http1.0\fP تأثیر اضافه‌ای ندارد. مثال: .nf curl --http1.0 https://example.com .fi این گزینه با \fI\-\-http1.1\fP، \fI\-\-http2\fP، \fI\-\-http2\-prior\-knowledge\fP و \fI\-\-http3\fP مانعةالجمع است. همچنین \fI\-\-http0.9\fP و \fI\-\-http1.1\fP را ببینید. .IP "\-\-http1.1" (HTTP) از نسخه 1.1 پروتکل HTTP استفاده کنید. این حالت پیشفرض برای نشانی‌های "http://" است. ارائه چندباره \fI\-\-http1.1\fP تأثیر اضافه‌ای ندارد. مثال: .nf curl --http1.1 https://example.com .fi این گزینه با \fI\-\-http1.0\fP، \fI\-\-http2\fP، \fI\-\-http2\-prior\-knowledge\fP و \fI\-\-http3\fP مانعةالجمع است. همچنین \fI\-\-http1.0\fP و \fI\-\-http0.9\fP را ببینید. .IP "\-\-http2" (HTTP) استفاده از HTTP/2. برای HTTPS، این بدان معناست که curl در مصافحه TLS بر سر HTTP/2 مذاکره می‌کند. curl این کار را به صورت پیش‌فرض انجام می‌دهد. برای HTTP، این بدان معناست که curl تلاش می‌کند با استفاده از سرآیند درخواست Upgrade:، درخواست را به HTTP/2 ارتقا دهد. هنگامی که curl از HTTP/2 روی HTTPS استفاده می‌کند، خود بر روی TLS 1.2 یا بالاتر اصرار نمی‌ورزد حتی اگر این مورد در مشخصات الزامی شده باشد. کاربر می‌تواند این الزام نسخه را با \fI\-\-tlsv1.2\fP اضافه کند. ارائه چندباره \fI\-\-http2\fP اثر اضافه‌ای ندارد. مثال: .nf curl --http2 https://example.com .fi برای کارکردن \fI\-\-http2\fP، لازم است که libcurl زیرین با پشتیبانی از HTTP/2 ساخته شده باشد. این گزینه با \fI\-\-http1.1\fP، \fI\-\-http1.0\fP، \fI\-\-http2\-prior\-knowledge\fP و \fI\-\-http3\fP مانعةالجمع است. همچنین \fI\-\-http1.1\fP، \fI\-\-http3\fP، \fI\-\-no\-alpn\fP و \fI\-\-proxy\-http2\fP را ببینید. .IP "\-\-http2\-prior\-knowledge" (HTTP) ارسال یک درخواست HTTP بدون TLS با استفاده مستقیم از HTTP/2 بدون ارتقای HTTP/1.1. این کار نیازمند آگاهی قبلی از این است که سرور بلافاصله از HTTP/2 پشتیبانی می‌کند. درخواست‌های HTTPS همچنان HTTP/2 را به روش استاندارد و با نسخه‌های پروتکل مذاکره‌شده در مصافحه TLS انجام می‌دهند. از نسخه 8.10.0 به بعد، اگر این گزینه برای یک درخواست HTTPS تنظیم شود، نسخه پروتکل لایه کاربرد (ALPN) ارائه‌شده به سرور فقط HTTP/2 خواهد بود. پیش از آن، هر دو نسخه HTTP/1.1 و HTTP/2 ارائه می‌شدند. ارائه چندباره \fI\-\-http2\-prior\-knowledge\fP اثر اضافه‌ای ندارد. با \-\-no-http2-prior-knowledge دوباره آن را غیرفعال کنید. مثال: .nf curl --http2-prior-knowledge https://example.com .fi برای کارکردن \fI\-\-http2\-prior\-knowledge\fP، لازم است که libcurl زیرین با پشتیبانی از HTTP/2 ساخته شده باشد. این گزینه با \fI\-\-http1.1\fP، \fI\-\-http1.0\fP، \fI\-\-http2\fP و \fI\-\-http3\fP مانعةالجمع است. همچنین \fI\-\-http2\fP و \fI\-\-http3\fP را ببینید. .IP "\-\-http3" (HTTP) تلاش برای استفاده از HTTP/3 با میزبان موجود در URL، اما بازگشت به نسخه‌های قبلی HTTP در صورتی که برقراری اتصال HTTP/3 ناموفق باشد یا به کندی انجام شود. HTTP/3 فقط برای URLهای HTTPS در دسترس است و نه برای URLهای HTTP. این گزینه به کاربر امکان می‌دهد در صورتی که می‌دانید یا حدس می‌زنید هدف روی میزبان و درگاه داده‌شده با HTTP/3 ارتباط برقرار می‌کند، از به‌کارگیری روش Alt\-Svc برای ارتقا به HTTP/3 اجتناب کند. هنگامی که از curl خواسته می‌شود از HTTP/3 استفاده کند، تلاشی جداگانه را با اندکی تأخیر برای استفاده از نسخه‌های قدیمی‌تر HTTP انجام می‌دهد؛ بنابراین اگر انتقال HTTP/3 با شکست مواجه شود یا کند باشد، curl همچنان تلاش می‌کند با یک نسخه قدیمی‌تر HTTP پیش برود. این بازگشت به عقب، مذاکره معمول میان HTTP/1 و HTTP/2 را انجام می‌دهد. برای قابلیتی مشابه \fIبدون\fP بازگشت به عقب، از \fI\-\-http3\-only\fP استفاده کنید. curl نمی‌تواند HTTP/3 را روی هیچ پروکسی‌ای انجام دهد. ارائه چندباره \fI\-\-http3\fP اثر اضافه‌ای ندارد. مثال: .nf curl --http3 https://example.com .fi برای کارکردن \fI\-\-http3\fP، لازم است که libcurl زیرین با پشتیبانی از HTTP/3 ساخته شده باشد. این گزینه با \fI\-\-http1.1\fP، \fI\-\-http1.0\fP، \fI\-\-http2\fP، \fI\-\-http2\-prior\-knowledge\fP و \fI\-\-http3\-only\fP مانعةالجمع است. اضافه‌شده در 7.66.0. همچنین \fI\-\-http1.1\fP و \fI\-\-http2\fP را ببینید. .IP "\-\-http3\-only" (HTTP) به curl دستور می‌دهد تا برای میزبان موجود در URL از HTTP/3 بدون هیچ بازگشتی به نسخه‌های قبلی HTTP استفاده کند. HTTP/3 تنها برای URLهای HTTPS قابل استفاده است و نه برای URLهای HTTP. برای HTTP، این گزینه باعث بروز خطا می‌شود. این گزینه به کاربر امکان می‌دهد در صورتی که می‌دانید هدف روی میزبان و درگاه داده‌شده با HTTP/3 ارتباط برقرار می‌کند، از به‌کارگیری روش Alt\-Svc برای ارتقا به HTTP/3 اجتناب کند. این گزینه باعث می‌شود در صورتی که اتصال QUIC برقرار نشود curl با شکست مواجه گردد؛ این گزینه به خودی خود هیچ نسخه دیگر HTTP را امتحان نمی‌کند. برای قابلیتی مشابه \fIهمراه با\fP بازگشت به عقب، از \fI\-\-http3\fP استفاده کنید. ارائه چندباره \fI\-\-http3\-only\fP اثر اضافه‌ای ندارد. مثال: .nf curl --http3-only https://example.com .fi برای کارکردن \fI\-\-http3\-only\fP، لازم است که libcurl زیرین با پشتیبانی از HTTP/3 ساخته شده باشد. این گزینه با \fI\-\-http1.1\fP، \fI\-\-http1.0\fP، \fI\-\-http2\fP، \fI\-\-http2\-prior\-knowledge\fP و \fI\-\-http3\fP مانعةالجمع است. اضافه‌شده در 7.88.0. همچنین \fI\-\-http1.1\fP، \fI\-\-http2\fP و \fI\-\-http3\fP را ببینید. .IP "\-\-httpsig\-algo " (HTTP) **هشدار**: این گزینه آزمایشی است. در محیط عملیاتی استفاده نکنید. امضای درخواستهای خروجی HTTP با استفاده از امضاهای پیام HTTP طبق RFC 9421. این گزینه مشخص میکند که از کدام الگوریتم امضا استفاده شود. مقادیر پشتیبانیشده عبارتند از \fBed25519\fP و \fBhmac\-sha256\fP. در صورت مشخص نشدن، \fBed25519\fP استفاده میشود. هر مقدار دیگری باعث خروج curl با خطا میشود. امضاهای پیام HTTP زمانی فعال میشوند که هر یک از \fI\-\-httpsig\-algo\fP، \fI\-\-httpsig\-key\fP، \fI\-\-httpsig\-keyid\fP یا \fI\-\-httpsig\-headers\fP داده شده باشد. در صورت فعال بودن، \fI\-\-httpsig\-key\fP و \fI\-\-httpsig\-keyid\fP الزامی هستند. بدون هیچ‌یک از این گزینهها هیچ امضایی انجام نمیشود. بهطور پیشفرض، مؤلفههای امضاشده عبارتند از "method"، "authority"، "path" و \&"query" (هنگامی که رشته پرسمان وجود داشته باشد). برای جایگزینی مجموعه مؤلفههای گنجاندهشده در امضا از \fI\-\-httpsig\-headers\fP استفاده کنید. اگر \fI\-\-httpsig\-algo\fP چندین بار ارائه شود، آخرین مقدار تنظیمشده استفاده میشود. مثالها: .nf curl --httpsig-key key.hex --httpsig-keyid "my-key" https://example.com curl --httpsig-algo hmac-sha256 --httpsig-key secret.hex --httpsig-keyid "shared" https://example.com .fi در 8.22.0 اضافه شد. همچنین ببینید \fI\-\-httpsig\-key\fP، \fI\-\-httpsig\-keyid\fP و \fI\-\-httpsig\-headers\fP. .IP "\-\-httpsig\-headers " (HTTP) **هشدار**: این گزینه آزمایشی است. در محیط عملیاتی استفاده نکنید. فهرستی جداشده با فاصله از مؤلفهها برای گنجاندن در امضای پیام HTTP طبق RFC 9421. مؤلفههای اشتقاقیافته به صورت نامهای خالی آورده میشوند: "method"، "authority"، \&"path" و "query". فیلدهای سرایند HTTP همراه با یک دونقطه در انتها مشخص میشوند، برای مثال "content\-type:" و "content\-digest:". در صورت مشخص نشدن، مجموعه پیشفرض عبارت است از "method authority path" (بهعلاوه "query" هنگامی که رشته پرسمان در URL وجود داشته باشد). .RS .IP "امضای سرایندهای درخواست" مؤلفههای سرایند فقط از گزینههای "\-H" / "\fI\-\-header\fP" گرفته میشوند. سرایندهایی که curl بهطور پیشفرض اضافه میکند (مانند "User\-Agent") امضا نمیشوند مگر اینکه آنها را صراحتاً تنظیم کنید، برای مثال: .nf curl \--httpsig\-algo ed25519 \\ \--httpsig\-key k.hex \\ \--httpsig\-keyid mykey \\ \-H "User\-Agent: MyApp/1.0" \\ \--httpsig\-headers \\ "method authority path user\-agent:" \\ $URL .fi هر مؤلفه تنها یک بار میتواند ظاهر شود. شناسههای تکراری در \&"\fI\-\-httpsig\-headers\fP" باعث خروج curl با خطا میشوند. .RE .IP اگر \fI\-\-httpsig\-headers\fP چندین بار ارائه شود، آخرین مقدار تنظیمشده استفاده میشود. مثال: .nf curl --httpsig-algo ed25519 --httpsig-key key.hex --httpsig-keyid "my-key" --httpsig-headers "method authority content-type:" https://example.com .fi در 8.22.0 اضافه شد. همچنین ببینید \fI\-\-httpsig\-algo\fP، \fI\-\-httpsig\-key\fP و \fI\-\-httpsig\-keyid\fP. .IP "\-\-httpsig\-key " (HTTP) **هشدار**: این گزینه آزمایشی است. در محیط عملیاتی استفاده نکنید. کلید مورد استفاده برای امضاهای پیام HTTP طبق RFC 9421. آن را همانگونه که هست یا به صورت \&"@filename" ارائه دهید. اگر آرگومان با یک "@" شروع شود، باقی آن به عنوان نام پرونده برای کلید در نظر گرفته میشود. کلید به صورت دنبالهای از ارقام هگزادسیمال در یک خط قالببندی میشود. برای \fBed25519\fP، این همان seed خصوصی 32 بایتی (64 نویسه هگزادسیمال) است. برای \fBhmac\-sha256\fP، این همان راز مشترک (shared secret) است. پروندههای PEM پشتیبانی نمیشوند. .RS .IP "تولید کلیدهای Ed25519" با OpenSSL 3: .nf openssl genpkey \-algorithm ED25519 \-out k.pem openssl pkey \-in k.pem \-outform RAW \-out k.raw xxd \-p \-c 64 k.raw | tr \-d \(aq\\n\(aq > k.hex .fi از "@k.hex" با "\fI\-\-httpsig\-key\fP" استفاده کنید. .RE .IP اگر \fI\-\-httpsig\-key\fP چندین بار ارائه شود، آخرین مقدار تنظیمشده استفاده میشود. مثالها: .nf curl --httpsig-algo ed25519 --httpsig-key @key.hex --httpsig-keyid "my-key" https://example.com curl --httpsig-key 123a56fb72197633bc --httpsig-keyid "my-key" https://example.com .fi در 8.22.0 اضافه شد. همچنین ببینید \fI\-\-httpsig\-algo\fP و \fI\-\-httpsig\-keyid\fP. .IP "\-\-httpsig\-keyid " (HTTP) **هشدار**: این گزینه آزمایشی است. در محیط عملیاتی از آن استفاده نکنید. شناسه کلید برای قرار گرفتن در سرآیند "Signature\-Input" هنگام استفاده از RFC 9421 HTTP Message Signatures. این مقدار به عنوان پارامتر "keyid" ظاهر می‌شود و به سرور اجازه می‌دهد کلید اعتبارسنجی صحیح را جستجو کند. اگر \fI\-\-httpsig\-keyid\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --httpsig-algo ed25519 --httpsig-key key.hex --httpsig-keyid "my-key" https://example.com .fi در نسخه 8.22.0 افزوده شد. همچنین ببینید \fI\-\-httpsig\-algo\fP و \fI\-\-httpsig\-key\fP. .IP "\-\-ignore\-content\-length" (FTP HTTP) برای HTTP، سرآیند Content\-Length را نادیده می‌گیرد. این ویژگی به‌ویژه برای سرورهایی که با Apache 1.x کار می‌کنند و Content\-Length نادرستی را برای پرونده‌های بزرگ‌تر از 2 گیگابایت گزارش می‌دهند، مفید است. برای FTP، این گزینه باعث می‌شود curl پیش از بارگیری پرونده، از اجرای دستور SIZE برای یافتن اندازه آن صرف‌نظر کند. مشخص کردن چندباره \fI\-\-ignore\-content\-length\fP تأثیر مضاعفی ندارد. با \-\-no-ignore-content-length دوباره آن را غیرفعال کنید. مثال: .nf curl --ignore-content-length https://example.com .fi همچنین ببینید \fI\-\-ftp\-skip\-pasv\-ip\fP. .IP "\-k, \-\-insecure" (TLS SFTP SCP) به‌طور پیش‌فرض، هر اتصال امنی که curl برقرار می‌کند، پیش از انجام انتقال از نظر امن بودن اعتبارسنجی می‌شود. این گزینه باعث می‌شود curl مرحله اعتبارسنجی را نادیده گرفته و بدون بررسی ادامه دهد. هنگامی که از این گزینه برای پروتکل‌های مبتنی بر TLS استفاده نشود، curl پیش از ادامه، گواهی TLS سرور را اعتبارسنجی می‌کند: این که گواهی حاوی نام درستی باشد که با نام میزبان ارائه‌شده در URL مطابقت دارد و این که گواهی توسط یک گواهی CA موجود در مخزن گواهی‌ها امضا شده باشد. برای جزئیات بیشتر به این منبع برخط مراجعه کنید: \fBhttps://curl.se/docs/sslcerts.html\fP برای SFTP و SCP، این گزینه باعث می‌شود curl از اعتبارسنجی \fIknown_hosts\fP صرف‌نظر کند. \fIknown_hosts\fP پرونده‌ای است که معمولاً در پوشه خانگی کاربر در زیرپوشه \&".ssh" ذخیره می‌شود و شامل نام میزبان‌ها و کلیدهای عمومی آن‌ها است. \fBهشدار\fP: استفاده از این گزینه باعث ناامن شدن انتقال می‌شود. هنگامی که curl از پروتکل‌های امن استفاده می‌کند، به پاسخ‌ها اعتماد کرده و برای نمونه اجازه می‌دهد اطلاعات HSTS و Alt\-Svc ذخیره شده و پس از آن مورد استفاده قرار گیرند. استفاده از \fI\-\-insecure\fP می‌تواند باعث شود curl به چنین اطلاعاتی از سوی سرورهای مخرب اعتماد کرده و از آن‌ها استفاده کند. مشخص کردن چندباره \fI\-\-insecure\fP تأثیر مضاعفی ندارد. با \-\-no-insecure دوباره آن را غیرفعال کنید. مثال: .nf curl --insecure https://example.com .fi همچنین ببینید \fI\-\-proxy\-insecure\fP، \fI\-\-cacert\fP و \fI\-\-capath\fP. .IP "\-\-interface " انجام عملیات با استفاده از یک رابط مشخص‌شده. شما می‌توانید نام رابط، نشانی IP یا نام میزبان را وارد کنید. اگر ترجیح می‌دهید دقیق‌تر مشخص کنید، می‌توانید از نحو ویژه زیر استفاده کنید: .RS .IP if! نام رابط. اگر نام ارائه‌شده با یک رابط موجود مطابقت نداشته باشد، curl با خطای 45 خارج می‌شود. .IP host! نشانی IP یا نام میزبان. .IP ifhost!! نام رابط و نشانی IP یا نام میزبان. این نحو به libcurl 8.9.0 یا بالاتر نیاز دارد. اگر نام ارائه‌شده با یک رابط موجود مطابقت نداشته باشد، curl با خطای 45 خارج می‌شود. .RE .IP curl در Windows از استفاده از نام‌های رابط شبکه برای این گزینه پشتیبانی نمی‌کند. در صورت ارائه نام میزبان، آن عملیات تحلیل نام حتی در صورت تنظیم بودن \fI\-\-doh\-url\fP از DNS\-over\-HTTPS استفاده \fBنمی‌کند\fP. در لینوکس از این گزینه می‌توان برای تعیین یک دستگاه \fBVRF\fP (Virtual Routing and Forwarding) استفاده کرد، اما در این صورت فایل اجرایی یا باید قابلیت \fBCAP_NET_RAW\fP را داشته باشد یا به عنوان کاربر root اجرا شود. اگر \fI\-\-interface\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --interface eth0 https://example.com curl --interface "host!10.0.0.1" https://example.com curl --interface "if!enp3s0" https://example.com .fi همچنین ببینید \fI\-\-dns\-interface\fP. .IP "\-\-ip\-tos " تنظیم نوع سرویس (TOS) برای IPv4 یا کلاس ترافیک (Traffic Class) برای IPv6. مقادیر مجاز برای می‌تواند یک مقدار عددی بین 1 و 255 یا یکی از موارد زیر باشد: CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43, EF, VOICE\-ADMIT, ECT1, ECT0, CE, LE, LOWCOST, LOWDELAY, THROUGHPUT, RELIABILITY, MINCOST اگر \fI\-\-ip\-tos\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --ip-tos CS5 https://example.com .fi در 8.9.0 افزوده شد. همچنین \fI\-\-tcp\-nodelay\fP و \fI\-\-vlan\-priority\fP را ببینید. .IP "\-\-ipfs\-gateway " (IPFS) مشخص می‌کند که از کدام درگاه برای URLهای IPFS و IPNS استفاده شود. در صورت عدم تعیین این گزینه، curl بررسی می‌کند که آیا متغیر محیطی IPFS_GATEWAY تنظیم شده است، یا پرونده "~/.ipfs/gateway" حاوی URL درگاه وجود دارد یا خیر. اگر یک گره محلی IPFS را اجرا می‌کنید، این درگاه به طور پیشفرض تحت \&"http://localhost:8080" در دسترس است. یک URL نمونه کامل به این شکل خواهد بود: .nf curl \--ipfs\-gateway http://localhost:8080 \\ ipfs://bafybeigagd5nmnn2iys2f3 .fi درگاه‌های عمومی IPFS متعددی وجود دارند. برای نمونه ببینید: https://ipfs.github.io/public\-gateway\-checker اگر تصمیم به استفاده از یک درگاه دوردست بگیرید، باید آگاه باشید که کاملاً به آن درگاه اعتماد می‌کنید. این موضوع ممکن است در درگاه‌های محلی که خودتان میزبانی می‌کنید بدون مشکل باشد. اما در درگاه‌های دوردست، ممکن است عوامل مخربی وجود داشته باشند که داده‌هایی مغایر با درخواست شما را بازگردانند، درخواست را بازرسی کنند یا حتی در آن مداخله نمایند. هنگام استفاده از curl ممکن است متوجه این موضوع نشوید. یک راهکار کاهش خطر می‌تواند استفاده از یک درگاه "trustless" باشد. این بدان معناست که شما داده‌ها را به صورت محلی اعتبارسنجی می‌کنید. برای اطلاعات بیشتر در مورد trusted در برابر trustless، به صفحه مستندات مراجعه کنید: https://docs.ipfs.tech/reference/http/gateway/#trusted\-vs\-trustless اگر \fI\-\-ipfs\-gateway\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --ipfs-gateway https://example.com ipfs:// .fi در 8.4.0 افزوده شد. همچنین \fI\-\-help\fP و \fI\-\-manual\fP را ببینید. .IP "\-4, \-\-ipv4" هنگام تحلیل نام‌های میزبان، فقط نشانی‌های IPv4 را درخواست می‌کند و برای نمونه هیچ نشانی IPv6 را درخواست نمی‌کند. مشخص کردن چندباره \fI\-\-ipv4\fP هیچ اثر اضافه‌ای ندارد. مثال: .nf curl --ipv4 https://example.com .fi این گزینه با \fI\-\-ipv6\fP مانعةالجمع است. همچنین \fI\-\-http1.1\fP و \fI\-\-http2\fP را ببینید. .IP "\-6, \-\-ipv6" هنگام تحلیل نام‌های میزبان، فقط نشانی‌های IPv6 را درخواست می‌کند و برای نمونه هیچ نشانی IPv4 را درخواست نمی‌کند. تحلیل‌گر نام شما (resolver) ممکن است همچنان به یک درخواست تحلیل فقط-IPv6 با بازگرداندن نشانی‌های IPv6 که به دلایل سازگاری حاوی نشانی‌های IPv4 «نگاشت‌شده» ("mapped") هستند، پاسخ دهد. macOS به انجام این کار شناخته شده است. مشخص کردن چندباره \fI\-\-ipv6\fP هیچ اثر اضافه‌ای ندارد. مثال: .nf curl --ipv6 https://example.com .fi این گزینه با \fI\-\-ipv4\fP مانعةالجمع است. همچنین \fI\-\-http1.1\fP و \fI\-\-http2\fP را ببینید. .IP "\-\-json " (HTTP) ارسال داده‌های JSON مشخص‌شده در یک درخواست POST به سرور HTTP. گزینه \fI\-\-json\fP به عنوان یک میانبر برای ارسال این سه گزینه عمل می‌کند: .nf -\-data\-binary [arg] -\-header "Content\-Type: application/json" -\-header "Accept: application/json" .fi \fBهیچ اعتبارسنجی‌ای\fP مبنی بر اینکه داده‌های ارائه‌شده واقعاً JSON هستند یا نحو آن صحیح است، صورت نمی‌گیرد. اگر داده را با حرف @ آغاز کنید، ادامه آن باید نام یک پرونده برای خواندن داده از آن باشد، یا یک خط تیره منفرد (\-) در صورتی که بخواهید curl داده را از stdin بخواند. بنابراین ارسال داده از پرونده‌ای به نام \(aqfoobar\(aq با \fI\-\-json\fP @foobar انجام می‌شود و برای خواندن داده از stdin در عوض، از \fI\-\-json\fP @\- استفاده کنید. اگر از این گزینه بیش از یک بار در همان خط فرمان استفاده شود، بخش‌های داده اضافی پیش از ارسال به موارد قبلی متصل می‌شوند. سرآیندهایی که این گزینه تنظیم می‌کند را می‌توان طبق معمول با \fI\-\-header\fP بازنویسی کرد. \fI\-\-json\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال‌ها: .nf curl --json '{ "drink": "coffee" }' https://example.com curl --json '{ "drink":' --json ' "coffee" }' https://example.com curl --json @prepared https://example.com curl --json @- https://example.com < json.txt .fi این گزینه با \fI\-\-form\fP، \fI\-\-head\fP و \fI\-\-upload\-file\fP مانعةالجمع است. در 7.82.0 افزوده شد. همچنین \fI\-\-data\-binary\fP و \fI\-\-data\-raw\fP را ببینید. .IP "\-j, \-\-junk\-session\-cookies" (HTTP) هنگامی که به curl گفته می‌شود کوکی‌ها را از یک پرونده مشخص بخواند، این گزینه باعث می‌شود که تمام کوکی‌های نشست دور ریخته شوند. این کار اثری مشابه شروع یک نشست جدید دارد. مرورگرهای معمولی نیز هنگام بسته شدن، کوکی‌های نشست را دور می‌اندازند. کوکی‌های نشست، کوکی‌هایی بدون زمان انقضای مشخص هستند. آنها طوری طراحی شده‌اند که تنها برای «یک نشست» باقی بمانند. ارائه چندباره \fI\-\-junk\-session\-cookies\fP اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-junk-session-cookies غیرفعال کنید. مثال: .nf curl --junk-session-cookies -b cookies.txt https://example.com .fi همچنین ببینید: \fI\-\-cookie\fP و \fI\-\-cookie\-jar\fP. .IP "\-\-keepalive\-cnt " حداکثر تعداد کاوش‌های keepalive را تعیین می‌کند که TCP باید پیش از قطع کردن اتصال ارسال کند اما پاسخی دریافت نکند. این گزینه معمولاً در ترکیب با \fI\-\-keepalive\-time\fP استفاده می‌شود. این گزینه در Linux، *BSD/macOS، Windows >=10.0.16299، Solaris 11.4 و نسخه‌های جدید AIX، HP\-UX و موارد دیگر پشتیبانی می‌شود. این گزینه در صورت استفاده از \fI\-\-no\-keepalive\fP هیچ اثری ندارد. در صورت تعیین نشدن، مقدار پیش‌فرض این گزینه 9 است. اگر \fI\-\-keepalive\-cnt\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --keepalive-cnt 3 https://example.com .fi اضافه‌شده در 8.9.0. همچنین ببینید: \fI\-\-keepalive\-time\fP و \fI\-\-no\-keepalive\fP. .IP "\-\-keepalive\-time " مدت زمانی را که یک اتصال باید پیش از ارسال کاوش‌های keepalive غیرفعال بماند و همچنین فاصله زمانی میان هر یک از کاوش‌های keepalive را تنظیم می‌کند. این گزینه در حال حاضر روی سیستم‌عامل‌هایی که گزینه‌های سوکت "TCP_KEEPIDLE" و "TCP_KEEPINTVL" را ارائه می‌دهند (یعنی Linux، *BSD/macOS، Windows، Solaris و نسخه‌های اخیر AIX، HP\-UX و بیشتر) موثر است. قابلیت Keepalive توسط پشته TCP برای شناسایی شبکه‌های قطع‌شده در اتصالات غیرفعال استفاده می‌شود. تعداد کاوش‌های بی‌پاسخ keepalive پیش از اعلام قطعی اتصال، به سیستم‌عامل بستگی دارد و معمولاً 8 (*BSD/macOS/AIX)، 9 (Linux/AIX) یا 5/10 (Windows) است، و این عدد را می‌توان با تعیین گزینه "keepalive\-cnt" در curl تغییر داد. توجه داشته باشید که این گزینه در صورت استفاده از \fI\-\-no\-keepalive\fP هیچ اثری ندارد. در صورت تعیین نشدن، مقدار پیش‌فرض این گزینه 60 ثانیه است. اگر \fI\-\-keepalive\-time\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --keepalive-time 20 https://example.com .fi همچنین ببینید: \fI\-\-no\-keepalive\fP، \fI\-\-keepalive\-cnt\fP و \fI\-\-max\-time\fP. .IP "\-\-key " (TLS SCP SFTP) نام پرونده کلید خصوصی. به شما اجازه می‌دهد کلید خصوصی خود را در این پرونده جداگانه ارائه دهید. برای SSH، در صورت مشخص نشدن، curl نامزدهای زیر را به ترتیب امتحان می‌کند: \&"~/.ssh/id_rsa"، "~/.ssh/id_dsa"، "./id_rsa"، "./id_dsa". اگر curl با کتابخانه OpenSSL کامپایل شده باشد و موتور pkcs11 یا ارائه‌دهنده pkcs11 در دسترس باشد، می‌توان از یک PKCS#11 URI (RFC 7512) برای تعیین یک کلید خصوصی مستقر در یک دستگاه PKCS#11 استفاده کرد. رشته‌ای که با "pkcs11:" آغاز شود به عنوان یک PKCS#11 URI تفسیر می‌شود. اگر یک PKCS#11 URI ارائه شود، در صورت تعیین نشدن، گزینه \fI\-\-engine\fP روی "pkcs11" تنظیم می‌شود و در صورت تعیین نشدن، گزینه \fI\-\-key\-type\fP روی "ENG" یا "PROV" تنظیم می‌شود (بسته به نسخه OpenSSL). اگر curl با Schannel کامپایل شده باشد، این گزینه برای پروتکل‌های TLS (HTTPS و غیره) نادیده گرفته می‌شود. آن بک‌اند انتظار دارد که کلید خصوصی از قبل در keychain یا پرونده PKCS#12 حاوی گواهی موجود باشد. اگر \fI\-\-key\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --cert certificate --key here https://example.com .fi همچنین ببینید: \fI\-\-key\-type\fP و \fI\-\-cert\fP. .IP "\-\-key\-type " (TLS) نوع پرونده کلید خصوصی. نوع کلید خصوصی ارائه‌شده با \fI\-\-key\fP را مشخص کنید. فرمت‌های DER، PEM و ENG پشتیبانی می‌شوند. در صورت مشخص نشدن، PEM فرض می‌شود. اگر \fI\-\-key\-type\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --key-type DER --key here https://example.com .fi همچنین ببینید: \fI\-\-key\fP. .IP "\-\-knownhosts " (SCP SFTP) هنگام انجام انتقال‌های SCP و SFTP، curl به‌طور خودکار پایگاه‌داده‌ای حاوی اطلاعات شناسایی تمام میزبان‌هایی را که تاکنون با آن‌ها استفاده شده بررسی می‌کند تا تأیید کند میزبانی که به آن متصل می‌شود همان میزبان قبلی است. کلیدهای میزبان در چنین پرونده‌ای از میزبان‌های شناخته‌شده ذخیره می‌شوند. curl به‌طور پیش‌فرض از ~/.ssh/known_hosts در پوشه خانگی کاربر استفاده می‌کند. این گزینه به کاربر امکان می‌دهد پرونده مشخصی را برای بررسی میزبان تعیین کند. بررسی میزبان‌های شناخته‌شده را می‌توان با \fI\-\-insecure\fP غیرفعال کرد، اما این کار انتقال را ناامن می‌کند و اکیداً توصیه نمی‌شود. اگر \fI\-\-knownhosts\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --knownhosts filename --key here https://example.com .fi در 8.17.0 افزوده شد. همچنین ببینید \fI\-\-hostpubsha256\fP، \fI\-\-hostpubmd5\fP، \fI\-\-insecure\fP و \fI\-\-key\fP. .IP "\-\-krb " (FTP) گزینه منسوخ‌شده (افزوده شده در 8.17.0). این گزینه دیگر هیچ عملکردی ندارد. احراز هویت و استفاده از Kerberos را فعال می‌کند. سطح (level) باید وارد شود و باید یکی از "clear"، "safe"، "confidential" یا "private" باشد. اگر از سطحی استفاده کنید که یکی از این موارد نباشد، از "private" استفاده می‌شود. اگر \fI\-\-krb\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --krb clear ftp://example.com .fi برای کارکرد \fI\-\-krb\fP، لازم است که libcurl زیرین با پشتیبانی از Kerberos ساخته شده باشد. همچنین ببینید \fI\-\-delegation\fP و \fI\-\-ssl\fP. .IP "\-\-libcurl " با افزودن این گزینه به هر خط فرمان معمولی curl، کد منبع C مبتنی بر libcurl در پرونده نوشته می‌شود که معادل همان کاری است که عملیات خط فرمان شما انجام می‌دهد. کد منبع خروجی باید به عنوان کد نمونه در نظر گرفته شود و آماده استفاده در محیط عملیاتی نیست. باید دوباره بررسی کنید که کد واقعاً همان کاری را که می‌خواهید انجام می‌دهد. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. اگر \fI\-\-libcurl\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --libcurl client.c https://example.com .fi همچنین ببینید \fI\-\-verbose\fP. .IP "\-\-limit\-rate " حداکثر نرخ انتقالی را که می‌خواهید curl استفاده کند \- هم برای بارگیری‌ها و هم بارگذاری‌ها \- مشخص کنید. این قابلیت زمانی مفید است که اتصال محدودی دارید و می‌خواهید انتقال شما از تمام پهنای باندتان استفاده نکند، تا آن را کندتر از آنچه در غیر این صورت می‌بود کند. سرعت داده‌شده بر حسب بایت/ثانیه اندازه‌گیری می‌شود، مگر اینکه پسوندی به آن اضافه شود. افزودن \(aqk\(aq یا \(aqK\(aq عدد را به عنوان کیلوبایت محاسبه می‌کند، \(aqm\(aq یا \(aqM\(aq آن را به مگابایت تبدیل می‌کند و غیره. پسوندهای پشتیبانی‌شده (k، M، G، T، P) مبتنی بر 1024 هستند؛ برای مثال 1k برابر با 1024 است. مثال‌ها: 200K، 3m و 1G. منطق محدودسازی نرخ بر پایه میانگین‌گیری از سرعت انتقال کار می‌کند تا در طول یک دوره چند ثانیه‌ای از آستانه تعیین‌شده فراتر نرود. اگر از گزینه \fI\-\-speed\-limit\fP نیز استفاده کنید، آن گزینه اولویت دارد و ممکن است محدودسازی نرخ را اندکی مختل کند تا به حفظ کارکرد منطق speed\-limit کمک نماید. با شروع از curl 8.19.0، نرخ را می‌توان با استفاده از یک کسر مانند \&"2.5M" برای دو و نیم مگابایت بر ثانیه مشخص کرد. این قابلیت صرف‌نظر از ترجیح locale شما، فقط با جداکننده نقطه (".") کار می‌کند. اگر \fI\-\-limit\-rate\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --limit-rate 123.45K https://example.com curl --limit-rate 1000 https://example.com curl --limit-rate 10M https://example.com curl --limit-rate 200K --max-time 60 https://example.com .fi همچنین ببینید \fI\-\-rate\fP، \fI\-\-speed\-limit\fP و \fI\-\-speed\-time\fP. .IP "\-l, \-\-list\-only" (FTP POP3 SFTP FILE) هنگام فهرست‌کردن یک پوشه FTP، نمای فقط\-نام را اجباری می‌کند. اگر کاربر بخواهد محتوای یک پوشه FTP را به‌صورت ماشینی تجزیه کند می‌تواند بسیار مفید باشد، زیرا نمای عادی پوشه از قالب یا ظاهر استانداردی استفاده نمی‌کند. هنگامی که به این صورت استفاده شود، این گزینه باعث می‌شود دستور NLST به جای LIST به سرور ارسال شود. نکته: برخی از سرورهای FTP در پاسخ به NLST فقط پرونده‌ها را فهرست می‌کنند؛ آن‌ها زیرپوشه‌ها و پیوندهای نمادین را شامل نمی‌شوند. هنگام فهرست‌کردن یک پوشه SFTP، این سوییچ نمای فقط\-نام را به صورت یک مورد در هر خط اجباری می‌کند. این قابلیت به‌ویژه زمانی مفید است که کاربر بخواهد محتوای یک پوشه SFTP را به‌صورت ماشینی تجزیه کند، زیرا نمای عادی پوشه اطلاعات بیشتری نسبت به نام پرونده‌ها ارائه می‌دهد. هنگام دریافت یک ایمیل مشخص از POP3، این سوییچ اجرای دستور LIST را به جای RETR اجباری می‌کند. این قابلیت به‌ویژه زمانی مفید است که کاربر بخواهد بررسی کند آیا message\-id خاصی روی سرور وجود دارد یا خیر و اندازه آن چقدر است. برای FILE، این گزینه هنوز هیچ اثری ندارد زیرا پوشه‌ها همیشه در این حالت فهرست می‌شوند. نکته: در صورت ترکیب با \fI\-\-request\fP، می‌توان از این گزینه برای ارسال دستور UIDL به جای آن استفاده کرد، تا کاربر بتواند به جای message\-id از شناسه یکتای ایمیل برای انجام درخواست استفاده کند. مشخص کردن چندباره \fI\-\-list\-only\fP تأثیر اضافه‌ای ندارد. دوباره با \-\-no-list-only آن را غیرفعال کنید. مثال: .nf curl --list-only ftp://example.com/dir .fi همچنین ببینید \fI\-\-quote\fP و \fI\-\-request\fP. .IP "\-\-local\-port " یک شماره منفرد یا بازه‌ای (FROM\-TO) ترجیحی از شماره پورت‌های محلی را برای استفاده در اتصال(ها) تنظیم می‌کند. توجه داشته باشید که شماره پورت‌ها ذاتاً منبعی محدود هستند، بنابراین تنظیم این بازه روی مقداری بیش از حد محدود ممکن است باعث شکست غیرضروری در برقراری اتصال شود. اگر \fI\-\-local\-port\fP چند بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --local-port 1000-3000 https://example.com .fi همچنین \fI\-\-globoff\fP را ببینید. .IP "\-L, \-\-location" (HTTP) اگر سرور گزارش دهد که صفحه درخواست‌شده به مکان دیگری منتقل شده است (که با سربرگ Location: و یک کد پاسخ 3XX مشخص می‌شود)، این گزینه باعث می‌شود curl درخواست را به مکان جدید دوباره انجام دهد. اگر همراه با \fI\-\-show\-headers\fP یا \fI\-\-head\fP استفاده شود، سربرگ‌های همه صفحات درخواست‌شده نمایش داده می‌شوند. هنگامی که احراز هویت در خط فرمان مشخص شده باشد (برای مثال \fI\-\-user\fP یا \fI\-\-oauth2\-bearer\fP)، یا هنگام ارسال کوکی با "\-H Cookie:"، curl اعتبارنامه‌های خود را فقط به میزبان اولیه ارسال می‌کند. اگر یک تغییر مسیر curl را به میزبان متفاوتی ببرد، اعتبارنامه‌ها به آن منتقل نمی‌شوند. برای چگونگی تغییر این رفتار \fI\-\-location\-trusted\fP را ببینید. هنگامی که \fI\-\-netrc\fP در ترکیب با این گزینه استفاده می‌شود، اعتبارنامه‌ها برای میزبان‌های دنبال‌شده نیز ممکن است از آن پرونده انتخاب شوند. تعداد تغییر مسیرها برای دنبال کردن را با استفاده از گزینه \fI\-\-max\-redirs\fP محدود کنید. هنگامی که curl یک تغییر مسیر را دنبال می‌کند و اگر درخواست یک POST باشد، چنانچه پاسخ HTTP برابر 301، 302 یا 303 بوده باشد، درخواست بعدی را با یک GET ارسال می‌کند. اگر کد پاسخ هر کد 3xx دیگری باشد، curl درخواست بعدی را با استفاده از همان متد بدون تغییر دوباره ارسال می‌کند. می‌توانید با استفاده از گزینه‌های اختصاصی برای این کار، به curl بگویید که پس از یک پاسخ 30x، درخواست‌های POST را به GET تغییر ندهد: \fI\-\-post301\fP، \fI\-\-post302\fP و \fI\-\-post303\fP. متد تنظیم‌شده با \fI\-\-request\fP جایگزین متدی می‌شود که curl در غیر این صورت برای استفاده انتخاب می‌کرد. پروتکل‌هایی را که تغییر مسیر مجاز به دنبال کردن آن‌ها است، با \fI\-\-proto\-redir\fP محدود کنید. مشخص کردن چندباره \fI\-\-location\fP اثر اضافی ندارد. با \-\-no-location دوباره آن را غیرفعال کنید. مثال: .nf curl -L https://example.com .fi همچنین \fI\-\-resolve\fP، \fI\-\-alt\-svc\fP، \fI\-\-follow\fP، \fI\-\-proto\-redir\fP و \fI\-\-max\-redirs\fP را ببینید. .IP "\-\-location\-trusted" (HTTP) به curl دستور می‌دهد تغییر مسیرهای HTTP را مانند \fI\-\-location\fP دنبال کند، اما به curl اجازه می‌دهد اعتبارنامه‌ها و سایر اطلاعات محرمانه را به میزبان‌هایی غیر از میزبان اولیه نیز ارسال کند. اگر وبگاه شما را به وبگاهی هدایت کند که این داده‌های حساس را به آن ارسال می‌کنید، این امر ممکن است منجر به یک رخنه امنیتی بشود یا نشود. میزبان دیگر به این معنی است که یک یا چند مورد از نام میزبان، طرح‌واره پروتکل یا شماره پورت تغییر کرده است. این گزینه همچنین به curl اجازه می‌دهد کوکی‌های طولانی را که صراحتاً با \fI\-\-header\fP تنظیم شده‌اند، ارسال کند. مشخص کردن چندباره \fI\-\-location\-trusted\fP اثر اضافی ندارد. با \-\-no-location-trusted دوباره آن را غیرفعال کنید. مثال‌ها: .nf curl --location-trusted -u user:password https://example.com curl --location-trusted -H "Cookie: session=abc" https://example.com .fi همچنین \fI\-\-user\fP و \fI\-\-follow\fP را ببینید. .IP "\-\-login\-options " (IMAP LDAP POP3 SMTP) گزینه‌های ورود را برای استفاده در هنگام احراز هویت با سرور مشخص کنید. می‌توانید از گزینه‌های ورود برای مشخص کردن گزینه‌های خاص پروتکل که ممکن است در حین احراز هویت استفاده شوند، بهره ببرید. در حال حاضر فقط IMAP، POP3 و SMTP از گزینه‌های ورود پشتیبانی می‌کنند. برای اطلاعات بیشتر درباره گزینه‌های ورود لطفاً به RFC 2384، RFC 5092 و پیش‌نویس IETF به نشانی https://datatracker.ietf.org/doc/html/draft\-earhart\-url\-smtp\-00 مراجعه کنید. از نسخه 8.2.0، IMAP از گزینه ورود "AUTH=+LOGIN" پشتیبانی می‌کند. با این گزینه، curl از دستور ساده (غیر SASL) "LOGIN IMAP" استفاده می‌کند، حتی اگر سرور احراز هویت SASL را تبلیغ کند. در استفاده از این گزینه باید احتیاط کرد، زیرا گذرواژه شما را به صورت متن ساده روی شبکه ارسال می‌کند. اگر سرور IMAP دستور ساده "LOGIN" را غیرفعال کرده باشد (برای مثال برای جلوگیری از سرقت گذرواژه)، این گزینه کار نمی‌کند. اگر \fI\-\-login\-options\fP چند بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --login-options 'AUTH=*' imap://example.com .fi همچنین \fI\-\-user\fP را ببینید. .IP "\-\-mail\-auth
" (SMTP) یک نشانی واحد را مشخص میکند. از این گزینه برای تعیین نشانی احراز هویت (هویت) پیامی استفاده میشود که ارسال شده و در حال رله شدن به سروری دیگر است. اگر \fI\-\-mail\-auth\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده بهکار میرود. مثال: .nf curl --mail-auth user@example.com -T mail smtp://example.com/ .fi همچنین ببینید: \fI\-\-mail\-rcpt\fP و \fI\-\-mail\-from\fP. .IP "\-\-mail\-from
" (SMTP) یک نشانی واحد را مشخص میکند که نامه باید از آن ارسال شود. اگر \fI\-\-mail\-from\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده بهکار میرود. مثال: .nf curl --mail-from user@example.com -T mail smtp://example.com/ .fi همچنین ببینید: \fI\-\-mail\-rcpt\fP و \fI\-\-mail\-auth\fP. .IP "\-\-mail\-rcpt
" (SMTP) یک نشانی رایانامه، نام کاربری یا نام فهرست پستی واحد را مشخص میکند. این گزینه را برای ارسال به چندین گیرنده، چندین بار تکرار کنید. هنگام انجام اعتبارسنجی نشانی (دستور \fBVRFY\fP)، گیرنده باید بهصورت نام کاربری یا نام کاربری و دامنه مشخص شود (طبق بخش 3.5 از RFC 5321). هنگام بسط دادن فهرست پستی (دستور EXPN)، گیرنده باید با استفاده از نام فهرست پستی مشخص شود، مانند "Friends" یا "London\-Office". گزینهٔ \fI\-\-mail\-rcpt\fP میتواند چندین بار در خط فرمان استفاده شود. مثال: .nf curl --mail-rcpt user@example.net smtp://example.com .fi همچنین ببینید: \fI\-\-mail\-rcpt\-allowfails\fP. .IP "\-\-mail\-rcpt\-allowfails" (SMTP) هنگام ارسال داده به چندین گیرنده، curl بهطور پیشفرض در صورتی که حداقل یکی از گیرندگان باعث شود دستور RCPT TO خطایی برگرداند، مکالمهٔ SMTP را متوقف میکند. رفتار پیشفرض را میتوان با ارسال گزینهٔ خط فرمان \fI\-\-mail\-rcpt\-allowfails\fP تغییر داد که باعث میشود curl از خطاها چشمپوشی کرده و با گیرندگان معتبر باقی‌مانده ادامه دهد. اگر همهٔ گیرندگان باعث خطای RCPT TO شوند و این پرچم مشخص شده باشد، curl همچنان مکالمهٔ SMTP را متوقف کرده و خطای دریافتشده از آخرین دستور RCPT TO را بازمیگرداند. مشخص کردن چندین‌بارهٔ \fI\-\-mail\-rcpt\-allowfails\fP هیچ اثر اضافهای ندارد. آن را دوباره با \-\-no-mail-rcpt-allowfails غیرفعال کنید. مثال: .nf curl --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com .fi افزوده‌شده در 7.69.0. همچنین ببینید: \fI\-\-mail\-rcpt\fP. .IP "\-M, \-\-manual" راهنما. نمایش متن راهنمای بسیار حجیم. مثال: .nf curl --manual .fi همچنین ببینید: \fI\-\-verbose\fP، \fI\-\-libcurl\fP و \fI\-\-trace\fP. .IP "\-\-max\-filesize " (FTP HTTP MQTT) هنگامی که روی یک مقدار غیرصفر تنظیم شود، حداکثر اندازه (به بایت) یک پرونده را برای بارگیری مشخص میکند. اگر پروندهٔ درخواست‌شده بزرگتر از این مقدار باشد، انتقال آغاز نمیشود و curl با کد خروج 63 بازمیگردد. تنظیم مقدار بیشینه روی صفر این محدودیت را غیرفعال میکند. میتوان از پسوند یک‌حرفی واحد استفاده کرد. افزودن \(aqk\(aq یا \(aqK\(aq عدد را بهعنوان کیلوبایت، \(aqm\(aq یا \(aqM\(aq آن را به مگابایت و غیره محاسبه میکند. پسوندهای پشتیبانی‌شده (k, M, G, T, P) بر پایهٔ 1024 هستند. مثالها: 200K، 3m و 1G. \fBNOTE\fP: پیش از curl 8.4.0، هنگامی که اندازهٔ پرونده پیش از بارگیری مشخص نبود، این گزینه برای چنین پروندههایی هیچ اثری نداشت، حتی اگر در نهایت انتقال پرونده بزرگتر از این حد تعیین‌شده میشد. از curl 8.4.0 به بعد، این گزینه در صورتی که در حین انتقال به این آستانه برسد، انتقال را متوقف میکند. از curl 8.19.0 به بعد، اندازهٔ بیشینه میتواند با استفاده از یک کسر مشخص شود، مانند "2.5M" برای دو و نیم مگابایت. این قابلیت تنها با جداکنندهٔ نقطه (".") کار میکند، صرف‌نظر از آنچه محلی‌سازی (locale) شما ترجیح میدهد. از 8.20.0 به بعد، این گزینه همچنین انتقالهای در حال انجامی را که بهدلیل فشرده‌گشایی خودکار با استفاده از \fI\-\-compressed\fP به این آستانه برسند، متوقف میکند. اگر \fI\-\-max\-filesize\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده بهکار میرود. مثالها: .nf curl --max-filesize 100K https://example.com curl --max-filesize 2.6M https://example.com .fi همچنین ببینید: \fI\-\-limit\-rate\fP. .IP "\-\-max\-redirs " (HTTP) حداکثر تعداد تغییرمسیرهایی که باید دنبال شوند را تعیین میکند. هنگامی که \fI\-\-location\fP یا \fI\-\-follow\fP استفاده میشوند، این گزینه مانع از دنبال کردن بیش از حد تغییرمسیرها توسط curl میشود. به طور پیشفرض این محدودیت روی 50 تغییرمسیر تنظیم شده است. این گزینه را روی \-1 تنظیم کنید تا نامحدود شود. اگر \fI\-\-max\-redirs\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --max-redirs 3 --location https://example.com .fi همچنین ببینید \fI\-\-location\fP و \fI\-\-follow\fP. .IP "\-m, \-\-max\-time " حداکثر زمان بر حسب ثانیه را تعیین میکند که به هر انتقال اجازه میدهید طول بکشد. از معلق ماندن کارهای دسته‌ای شما به مدت چندین ساعت به دلیل کندی شبکه یا قطع شدن پیوندها جلوگیری میکند. این گزینه مقادیر اعشاری را میپذیرد. اگر تلاش مجدد برای انتقال را فعال کنید (\fI\-\-retry\fP)، شمارنده حداکثر زمان با هر بار تلاش مجدد برای انتقال بازنشانی میشود. میتوانید از \fI\-\-retry\-max\-time\fP برای محدود کردن زمان تلاش مجدد استفاده کنید. مقدار اعشاری باید با استفاده از نقطه (.) به عنوان جداکننده اعشار ارائه شود \- نه نگارش محلی، حتی اگر از جداکننده دیگری استفاده کند. اگر \fI\-\-max\-time\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثالها: .nf curl --max-time 10 https://example.com curl --max-time 2.92 https://example.com .fi همچنین ببینید \fI\-\-connect\-timeout\fP و \fI\-\-retry\-max\-time\fP. .IP "\-\-metalink" این گزینه قبلاً برای مشخص کردن یک منبع Metalink استفاده میشد. پشتیبانی از Metalink به دلایل امنیتی در curl غیرفعال شده است (اضافه‌شده در 7.78.0). اگر \fI\-\-metalink\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --metalink file https://example.com .fi همچنین ببینید \fI\-\-parallel\fP. .IP "\-\-mptcp" استفاده از Multipath TCP (MPTCP) را برای اتصالات فعال میکند. پروتکل MPTCP یک افزونه برای TCP استاندارد است که امکان چندین جریان TCP را در مسیرهای مختلف شبکه بین همان مبدأ و مقصد فراهم میکند. این قابلیت میتواند با استفاده هم‌زمان از چندین مسیر، پهنای باند را افزایش داده و پایداری را بهبود بخشد. پروتکل MPTCP در شبکه‌هایی که چندین مسیر بین کلاینت‌ها و سرورها وجود دارد سودمند است؛ مانند شبکه‌های تلفن همراه که در آن دستگاه ممکن است بین WiFi و داده تلفن همراه جابه‌جا شود، یا در شبکه‌های سیمی با چندین ارائه‌دهنده خدمات اینترنتی. این گزینه در حال حاضر فقط روی لینوکس از هسته 5.6 به بعد پشتیبانی میشود. تنها اتصالات TCP تغییر می‌یابند، بنابراین این گزینه بر اتصالات HTTP/3 (QUIC) یا UDP تأثیری نمیگذارد. سروری که curl به آن متصل میشود نیز باید از MPTCP پشتیبانی کند. در غیر این صورت، اتصال بدون مشکل به TCP بازمیگردد. مشخص کردن چندباره \fI\-\-mptcp\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-mptcp غیرفعال کنید. مثال: .nf curl --mptcp https://example.com .fi اضافه‌شده در 8.9.0. همچنین ببینید \fI\-\-tcp\-fastopen\fP. .IP "\-\-negotiate" (HTTP) احراز هویت Negotiate (SPNEGO) را فعال میکند. این گزینه به کتابخانه‌ای نیاز دارد که با پشتیبانی از GSS\-API یا SSPI ساخته شده باشد. از \fI\-\-version\fP استفاده کنید تا ببینید آیا curl شما از GSS\-API/SSPI یا SPNEGO پشتیبانی میکند یا خیر. هنگام استفاده از این گزینه، باید یک گزینه ساختگی \fI\-\-user\fP نیز برای فعال‌سازی صحیح کد احراز هویت ارائه دهید. ارسال یک \(aq\-u :\(aq کافی است، زیرا نام کاربری و گذرواژه حاصل از گزینه \fI\-\-user\fP در واقع استفاده نمیشوند. مشخص کردن چندباره \fI\-\-negotiate\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-negotiate غیرفعال کنید. مثال: .nf curl --negotiate -u : https://example.com .fi همچنین ببینید \fI\-\-basic\fP، \fI\-\-ntlm\fP، \fI\-\-anyauth\fP و \fI\-\-proxy\-negotiate\fP. .IP "\-n, \-\-netrc" باعث می‌شود curl پروندهٔ \fI.netrc\fP را در دایرکتوری خانگی کاربر برای نام ورود و گذرواژه بررسی کند. این مورد معمولاً برای FTP در یونیکس استفاده می‌شود. در صورت استفاده با HTTP، ابزار curl احراز هویت کاربر را فعال می‌کند. برای جزئیات مربوط به قالب پرونده، \fInetrc(5)\fP و \fIftp(1)\fP را ببینید. اگر آن پرونده مجوزهای دسترسی مناسب را نداشته باشد (نباید برای دیگران یا گروه قابل خواندن باشد)، curl خطایی گزارش نمی‌کند. از متغیر محیطی "HOME" برای یافتن دایرکتوری خانگی استفاده می‌شود. اگر متغیر محیطی "NETRC" تنظیم شده باشد، آن نام پرونده به عنوان پروندهٔ netrc استفاده می‌شود. (اضافه‌شده در 8.16.0) اگر از \fI\-\-netrc\-file\fP استفاده شود، بر تمام روش‌های دیگر تعیین پرونده اولویت دارد. پروندهٔ netrc اعتبارنامه‌ها را برای یک نام میزبان، مستقل از پروتکل و شماره درگاه مورد استفاده، فراهم می‌کند. در ویندوز، دو نام پرونده در دایرکتوری خانگی بررسی می‌شوند: \fI.netrc\fP و \fI_netrc\fP، با ترجیح دادن اولی. نسخه‌های قدیمی‌تر در ویندوز فقط وجود \fI_netrc\fP را بررسی می‌کردند. یک مثال سریع و ساده از نحوهٔ برپایی یک \fI.netrc\fP برای اینکه به curl اجازه دهد با نام کاربری "myself" و گذرواژهٔ "secret" به ماشین host.example.com دسترسی یابد، می‌تواند شبیه به این باشد: .nf machine host.example.com login myself password secret .fi ابزار curl همچنین از کلیدواژهٔ "default" پشتیبانی می‌کند. این مورد مشابه نام ماشین است، با این تفاوت که default با هر نامی تطابق دارد. تنها می‌تواند یک نشانهٔ "default" وجود داشته باشد و باید پس از تمام نشانه‌های machine قرار گیرد. هنگام ارائهٔ نام کاربری در URL و استفاده از یک پروندهٔ \fI.netrc\fP، در صورتی که چنین مدخلی در پرونده پیش از یک مدخل عمومی ("generic") "machine" بدون تعیین "login" آمده باشد، curl به دنبال گذرواژهٔ آن کاربر خاص برای میزبان مشخص‌شده می‌گردد. مشخص کردن چندبارهٔ \fI\-\-netrc\fP اثر اضافه‌ای ندارد. با \-\-no-netrc آن را دوباره غیرفعال کنید. مثال: .nf curl --netrc https://example.com .fi این گزینه با \fI\-\-netrc\-file\fP و \fI\-\-netrc\-optional\fP مانعةالجمع است. همچنین \fI\-\-netrc\-file\fP، \fI\-\-config\fP و \fI\-\-user\fP را ببینید. .IP "\-\-netrc\-file " پروندهٔ netrc مورد استفاده را تنظیم می‌کند. مشابه \fI\-\-netrc\fP، با این تفاوت که مسیر را نیز (مطلق یا نسبی) ارائه می‌دهید. در صورت تعیین، از \fI\-\-netrc\-optional\fP پیروی می‌کند. اگر \fI\-\-netrc\-file\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --netrc-file netrc https://example.com .fi این گزینه با \fI\-\-netrc\fP مانعةالجمع است. همچنین \fI\-\-netrc\fP، \fI\-\-user\fP و \fI\-\-config\fP را ببینید. .IP "\-\-netrc\-optional" مشابه \fI\-\-netrc\fP، اما این گزینه استفاده از .netrc را \fBاختیاری\fP می‌کند و بر خلاف گزینهٔ \fI\-\-netrc\fP، آن را اجباری نمی‌سازد. مشخص کردن چندبارهٔ \fI\-\-netrc\-optional\fP اثر اضافه‌ای ندارد. با \-\-no-netrc-optional آن را دوباره غیرفعال کنید. مثال: .nf curl --netrc-optional https://example.com .fi این گزینه با \fI\-\-netrc\fP مانعةالجمع است. همچنین \fI\-\-netrc\-file\fP را ببینید. .IP "\-:, \-\-next" از یک عملیات مجزا برای URL بعدی و گزینه‌های مرتبط با آن استفاده می‌کند. این به شما امکان می‌دهد چندین درخواست URL ارسال کنید که هر کدام گزینه‌های مخصوص به خود را دارند؛ برای مثال، مانند نام‌های کاربری متفاوت یا درخواست‌های سفارشی برای هر یک. گزینهٔ \fI\-\-next\fP تمام گزینه‌های محلی را بازنشانی می‌کند و تنها گزینه‌های سراسری مقادیر خود را برای عملیات پس از دستور \fI\-\-next\fP حفظ می‌کنند. گزینه‌های سراسری شامل \fI\-\-verbose\fP، \fI\-\-trace\fP، \fI\-\-trace\-ascii\fP و \fI\-\-fail\-early\fP هستند. برای مثال، می‌توانید هر دو عمل GET و POST را در یک خط فرمان انجام دهید: .nf curl www1.example.com \--next \-d postthis www2.example.com .fi گزینهٔ \fI\-\-next\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال‌ها: .nf curl https://example.com --next -d postthis www2.example.com curl -I https://example.com --next https://example.net .fi همچنین \fI\-\-parallel\fP و \fI\-\-config\fP را ببینید. .IP "\-\-no\-alpn" (HTTPS) افزونهٔ TLS مربوط به ALPN را غیرفعال میکند. اگر libcurl با یک کتابخانهٔ SSL که از ALPN پشتیبانی میکند ساخته شده باشد، ALPN بهطور پیشفرض فعال است. ALPN توسط libcurl پشتیبانی‌کننده از HTTP/2 برای مذاکره بر سر پشتیبانی از HTTP/2 با سرور در طول نشستهای https استفاده میشود. توجه داشته باشید که این، نام گزینهٔ منفی‌شده است که مستند شده است. برای فعالسازی ALPN میتوانید از \fI\-\-alpn\fP استفاده کنید. ارائهٔ چندبارهٔ \fI\-\-no\-alpn\fP تأثیر اضافهای ندارد. دوباره آن را با \-\-alpn غیرفعال کنید. مثال: .nf curl --no-alpn https://example.com .fi برای کارکردن \fI\-\-no\-alpn\fP، لازم است که libcurl زیرین برای پشتیبانی از TLS ساخته شده باشد. همچنین \fI\-\-no\-npn\fP و \fI\-\-http2\fP را ببینید. .IP "\-N, \-\-no\-buffer" بافرسازی جریان خروجی را غیرفعال میکند. در شرایط کاری عادی، curl از یک جریان خروجی بافرشدهٔ استاندارد استفاده میکند که باعث میشود دادهها را به صورت تکهای خروجی دهد، نه لزوماً دقیقاً همان زمانی که دادهها میرسند. استفاده از این گزینه، آن بافرسازی را غیرفعال میکند. توجه داشته باشید که این، نام گزینهٔ منفی‌شده است که مستند شده است. برای فعالسازی مجدد بافرسازی میتوانید از \fI\-\-buffer\fP استفاده کنید. ارائهٔ چندبارهٔ \fI\-\-no\-buffer\fP تأثیر اضافهای ندارد. دوباره آن را با \-\-buffer غیرفعال کنید. مثال: .nf curl --no-buffer https://example.com .fi همچنین \fI\-\-progress\-bar\fP را ببینید. .IP "\-\-no\-clobber" هنگامی که همراه با گزینههای \fI\-\-output\fP، \fI\-\-remote\-header\-name\fP، \fI\-\-remote\-name\fP یا \fI\-\-remote\-name\-all\fP استفاده شود، curl از رونویسی فایلهایی که از قبل وجود دارند خودداری میکند. در عوض، یک نقطه و یک عدد به انتهای نام فایلی که قرار است ایجاد شود اضافه میشود، تا حداکثر filename.100 که پس از آن هیچ فایلی ایجاد نمیکند. توجه داشته باشید که این، نام گزینهٔ منفی‌شده است که مستند شده است. بنابراین میتوانید حتی در صورت مشخص شدن \fI\-\-remote\-header\-name\fP، از \fI\-\-clobber\fP برای اجبار به رونویسی استفاده کنید. گزینهٔ \fI\-\-continue\-at\fP نمیتواند همراه با \fI\-\-no\-clobber\fP استفاده شود. ارائهٔ چندبارهٔ \fI\-\-no\-clobber\fP تأثیر اضافهای ندارد. دوباره آن را با \-\-clobber غیرفعال کنید. مثال: .nf curl --no-clobber --output local/dir/file https://example.com .fi در نسخهٔ 7.83.0 اضافه شد. همچنین \fI\-\-output\fP و \fI\-\-remote\-name\fP را ببینید. .IP "\-\-no\-keepalive" استفاده از پیامهای keepalive را در اتصال TCP غیرفعال میکند. در غیر این صورت، curl آنها را بهطور پیشفرض فعال میکند. توجه داشته باشید که این، نام گزینهٔ منفی‌شده است که مستند شده است. بنابراین میتوانید از \fI\-\-keepalive\fP برای اجبار به برقراری keepalive استفاده کنید. ارائهٔ چندبارهٔ \fI\-\-no\-keepalive\fP تأثیر اضافهای ندارد. دوباره آن را با \-\-keepalive غیرفعال کنید. مثال: .nf curl --no-keepalive https://example.com .fi همچنین \fI\-\-keepalive\-time\fP و \fI\-\-keepalive\-cnt\fP را ببینید. .IP "\-\-no\-npn" (HTTPS) ابزار curl هرگز از NPN استفاده نمیکند، این گزینه هیچ اثری ندارد (در نسخهٔ 7.86.0 اضافه شد). افزونهٔ TLS مربوط به NPN را غیرفعال میکند. اگر libcurl با یک کتابخانهٔ SSL که از NPN پشتیبانی میکند ساخته شده باشد، NPN بهطور پیشفرض فعال است. NPN توسط libcurl پشتیبانی‌کننده از HTTP/2 برای مذاکره بر سر پشتیبانی از HTTP/2 با سرور در طول نشستهای https استفاده میشود. ارائهٔ چندبارهٔ \fI\-\-no\-npn\fP تأثیر اضافهای ندارد. دوباره آن را با \-\-npn غیرفعال کنید. مثال: .nf curl --no-npn https://example.com .fi برای کارکردن \fI\-\-no\-npn\fP، لازم است که libcurl زیرین برای پشتیبانی از TLS ساخته شده باشد. همچنین \fI\-\-no\-alpn\fP و \fI\-\-http2\fP را ببینید. .IP "\-\-no\-progress\-meter" گزینه‌ای برای غیرفعال کردن خروجی نشانگر پیشرفت بدون بی‌صدا کردن یا اثر گذاشتن بر پیام‌های هشدار و اطلاعاتی، برخلاف کاری که \fI\-\-silent\fP انجام می‌دهد. توجه داشته باشید که این نام نفی‌شدهٔ گزینه است که مستند شده است. بنابراین می‌توانید از \fI\-\-progress\-meter\fP برای فعال کردن دوبارهٔ نشانگر پیشرفت استفاده کنید. ارائهٔ چندبارهٔ \fI\-\-no\-progress\-meter\fP اثر اضافه‌ای ندارد. دوباره با \-\-progress-meter غیرفعالش کنید. مثال: .nf curl --no-progress-meter -o store https://example.com .fi در 7.67.0 اضافه شد. همچنین ببینید: \fI\-\-verbose\fP و \fI\-\-silent\fP. .IP "\-\-no\-sessionid" (TLS) غیرفعال کردن استفادهٔ curl از کش شناسهٔ نشست SSL. به‌طور پیش‌فرض همهٔ انتقال‌ها با استفاده از کش انجام می‌شوند. توجه داشته باشید در حالی که تلاش برای استفادهٔ مجدد از شناسه‌های نشست SSL نباید هرگز مشکلی ایجاد کند، به نظر می‌رسد پیاده‌سازی‌های معیوبی از SSL در عمل وجود دارند که ممکن است برای موفقیت‌آمیز بودن انتقال، لازم باشد این مورد را غیرفعال کنید. توجه داشته باشید که این نام نفی‌شدهٔ گزینه است که مستند شده است. بنابراین می‌توانید از \fI\-\-sessionid\fP برای اجباری کردن کش شناسهٔ نشست استفاده کنید. ارائهٔ چندبارهٔ \fI\-\-no\-sessionid\fP اثر اضافه‌ای ندارد. دوباره با \-\-sessionid غیرفعالش کنید. مثال: .nf curl --no-sessionid https://example.com .fi همچنین ببینید: \fI\-\-insecure\fP. .IP "\-\-noproxy " فهرست جداشده با ویرگول از میزبان‌هایی که در صورت تعیین پروکسی، نباید برای آن‌ها از پروکسی استفاده شود. تنها نویسهٔ عام (wildcard) یک نویسهٔ "*" تکی است که با همهٔ میزبان‌ها مطابقت دارد و عملاً پروکسی را غیرفعال می‌کند. هر نام در این فهرست، یا با دامنه‌ای که شامل نام میزبان است و یا با خود نام میزبان مطابقت داده می‌شود. برای مثال، "local.com" با "local.com"، "local.com:80" و \&"www.local.com" مطابقت دارد، اما با "www.notlocal.com" تطابق ندارد. برای استفاده از نام‌های میزبان بین‌المللی در این فهرست، نسخهٔ punycode نام میزبان را اضافه کنید. این گزینه متغیرهای محیطی که پروکسی را غیرفعال می‌کنند ("no_proxy" و "NO_PROXY") بازنویسی می‌کند. اگر متغیر محیطی وجود دارد که پروکسی را غیرفعال می‌کند، می‌توانید فهرست بدون پروکسی را به "" تنظیم کنید تا آن را بازنویسی کند. نشانی‌های IP مشخص‌شده برای این گزینه را می‌توان با نشانه‌گذاری CIDR ارائه کرد (اضافه‌شده در 7.86.0): یک اسلش الحاقی و عدد که تعداد بیت‌های شبکه از نشانی را برای استفاده در مقایسه مشخص می‌کند. برای مثال \&"192.168.0.0/16" با تمام نشانی‌هایی که با "192.168" شروع می‌شوند مطابقت خواهد داشت. اگر \fI\-\-noproxy\fP چند بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --noproxy "www.example" https://example.com .fi همچنین ببینید: \fI\-\-proxy\fP. .IP "\-\-ntlm" (HTTP) استفاده از احراز هویت NTLM. روش احراز هویت NTLM توسط مایکروسافت طراحی شد و توسط وب‌سرورهای IIS استفاده می‌شود. این یک پروتکل اختصاصی است که توسط افراد باهوش مهندسی معکوس شد و بر اساس تلاش‌های آن‌ها در curl پیاده‌سازی گردید. این نوع رفتار نباید تأیید شود؛ شما باید هرکسی را که از NTLM استفاده می‌کند تشویق کنید تا در عوض به یک روش احراز هویت عمومی و مستند شده مانند Digest مهاجرت کند. اگر می‌خواهید NTLM را برای احراز هویت پروکسی خود فعال کنید، از \fI\-\-proxy\-ntlm\fP استفاده نمایید. ارائهٔ چندبارهٔ \fI\-\-ntlm\fP اثر اضافه‌ای ندارد. دوباره با \-\-no-ntlm غیرفعالش کنید. مثال: .nf curl --ntlm -u user:password https://example.com .fi برای کارکرد \fI\-\-ntlm\fP، لازم است که libcurl زیرین به همراه پشتیبانی از TLS ساخته شده باشد. همچنین ببینید: \fI\-\-proxy\-ntlm\fP. .IP "\-\-ntlm\-wb" (HTTP) گزینهٔ منسوخ‌شده (اضافه‌شده در 8.8.0). NTLM را بسیار شبیه به شیوهٔ \fI\-\-ntlm\fP فعال می‌کرد، اما احراز هویت را به یک پروندهٔ اجرایی جداگانه واگذار می‌کرد که در زمان نیاز اجرا می‌شد. ارائهٔ چندبارهٔ \fI\-\-ntlm\-wb\fP اثر اضافه‌ای ندارد. مثال: .nf curl --ntlm-wb -u user:password https://example.com .fi همچنین ببینید: \fI\-\-ntlm\fP و \fI\-\-proxy\-ntlm\fP. .IP "\-\-oauth2\-bearer " (IMAP LDAP POP3 SMTP HTTP) توکن حامل (Bearer Token) را برای احراز هویت سرور OAUTH 2.0 مشخص می‌کند. توکن حامل به همراه نام کاربری استفاده می‌شود که می‌تواند به عنوان بخشی از گزینه‌های \fI\-\-url\fP یا \fI\-\-user\fP مشخص شود. توکن حامل و نام کاربری مطابق با RFC 6750 قالب‌بندی می‌شوند. اگر \fI\-\-oauth2\-bearer\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com .fi همچنین \fI\-\-basic\fP، \fI\-\-ntlm\fP و \fI\-\-digest\fP را ببینید. .IP "\-\-out\-null" تمام خروجی پاسخ یک انتقال را در سکوت دور می‌ریزد. این نگارش کارآمدتر و قابل‌حمل‌تری از دستور زیر است: .nf curl https://host.example \-o /dev/null .fi انتقال به طور کامل انجام می‌شود، تمام داده‌ها دریافت و بررسی می‌شوند، اما بایت‌ها در هیچ‌کجا نوشته نمی‌شوند. گزینه \fI\-\-out\-null\fP با یک URL منفرد مرتبط است. هنگامی که از چندین URL در یک خط فرمان استفاده می‌کنید، برای هر URL یک بار از آن استفاده کنید. مثال: .nf curl "https://example.com" --out-null .fi در نسخه 8.16.0 اضافه شد. همچنین \fI\-\-output\fP، \fI\-\-remote\-name\fP، \fI\-\-remote\-name\-all\fP و \fI\-\-remote\-header\-name\fP را ببینید. .IP "\-o, \-\-output " خروجی را به جای stdout در پرونده داده‌شده می‌نویسد. اگر برای دریافت چندین سند از تطبیق الگو (globbing) در URL استفاده می‌کنید، باید URL را درون نقل‌قول قرار دهید و می‌توانید از \&"#" به همراه یک عدد در نام پرونده استفاده کنید. آن متغیر با متن تطبیق الگوی فعلی جایگزین می‌شود. مانند: .nf curl "http://{one,two}.example.com" \-o "file_#1.txt" .fi یا از چندین متغیر استفاده کنید مانند: .nf curl "http://{site,host}.host[1\-5].example" \-o "#1_#2" .fi می‌توانید از این گزینه به تعداد URLهایی که دارید استفاده کنید. برای مثال، اگر دو URL را در همان خط فرمان مشخص کنید، می‌توانید به این صورت از آن استفاده کنید: .nf curl \-o aa example.com \-o bb example.net .fi و ترتیب گزینه‌های \-o و URLها اهمیتی ندارد، فقط این‌که اولین \-o برای اولین URL است و به همین ترتیب، بنابراین خط فرمان بالا را می‌توان به این صورت نیز نوشت: .nf curl example.com example.net \-o aa \-o bb .fi همچنین گزینه \fI\-\-create\-dirs\fP را برای ایجاد پویای دایرکتوری‌های محلی ببینید. مشخص کردن خروجی به صورت \(aq\-\(aq (یک خط تیره منفرد) خروجی را به stdout ارسال می‌کند. برای جلوگیری از نمایش بدنه پاسخ، می‌توانید خروجی را به /dev/null هدایت کنید: .nf curl example.com \-o /dev/null .fi یا برای Windows: .nf curl example.com \-o nul .fi یا برای روشی حتی کارآمدتر و قابل‌حمل‌تر، از این دستور استفاده کنید: .nf curl example.com \--out\-null .fi نام پرونده را به صورت یک خط تیره منفی منفرد مشخص کنید تا خروجی به stdout اجبار شود و سازوکار داخلی curl در جلوگیری از خروجی باینری در ترمینال نادیده گرفته شود: .nf curl https://example.com/jpeg \-o \- .fi توجه داشته باشید که خروجی باینری ممکن است به دلیل فشرده بودن پاسخ باشد، که در این حالت ممکن است بخواهید از گزینه \fI\-\-compressed\fP استفاده کنید. از نسخه 8.21.0 در curl، می‌توان بخش‌های جداگانه تطبیق الگو (globbing) را نام‌گذاری کرد و با نام‌هایشان به آن‌ها ارجاع داد. نام الفبایی\-عددیِ حساس به بزرگ و کوچکی حروف پس از نویسه آغازین درون علامت‌های زاویه‌دار (<>) قرار می‌گیرد. مثال‌ها: .nf curl "https://fun.example/{one,two}.jpg" \-o "save\-#" curl "ftp://ftp.example/file[1\-100].txt" \\ \-o "save\-#.txt" .fi ارجاع به یک glob نام‌گذاری‌شده که تنظیم نشده باشد، باعث بروز خطا می‌شود. از نسخه 8.21.0 در curl، می‌توانید هنگام استفاده از تطبیق الگو (globbing) در نام پرونده بارگذاری، با تنظیم نام glob و ارجاع به آن به همان روشی که به globهای نام‌گذاری‌شده در URL ارجاع می‌دهید، از بخش‌هایی از نام پرونده بارگذاری استفاده کنید. برای مثال، اگر سه پرونده را به یک URL ثابت HTTP بارگذاری می‌کنید و می‌خواهید پاسخ‌های متناظر را در پرونده‌های جداگانه ذخیره کنید: .nf curl \-T \(aqfile{1,2,3}\(aq \\ https://upload.example/ \-o \(aqresponse\-#\(aq .fi گزینه \fI\-\-output\fP با یک URL منفرد مرتبط است. هنگامی که از چندین URL در یک خط فرمان استفاده می‌کنید، برای هر URL یک بار از آن استفاده کنید. مثال‌ها: .nf curl -o file https://example.com curl "http://{one,two}.example.com" -o "file_#1.txt" curl "http://{site,host}.host[1-5].example" -o "#1_#2" curl -o file https://example.com -o file2 https://example.net .fi همچنین \fI\-\-out\-null\fP، \fI\-\-remote\-name\fP، \fI\-\-remote\-name\-all\fP، \fI\-\-remote\-header\-name\fP و \fI\-\-compressed\fP را ببینید. .IP "\-\-output\-dir " دایرکتوری محل ذخیرهٔ پرونده‌ها را هنگام استفاده از \fI\-\-remote\-name\fP یا \fI\-\-output\fP مشخص می‌کند. دایرکتوری خروجی داده‌شده برای همهٔ URLها و گزینه‌های خروجی در خط فرمان، تا پیش از نخستین \fI\-\-next\fP استفاده می‌شود. اگر دایرکتوری مقصد مشخص‌شده وجود نداشته باشد، عملیات با شکست مواجه می‌شود مگر اینکه از \fI\-\-create\-dirs\fP نیز استفاده شده باشد. اگر \fI\-\-output\-dir\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --output-dir "tmp" -O https://example.com .fi در 7.73.0 اضافه شد. همچنین ببینید \fI\-\-remote\-name\fP و \fI\-\-remote\-header\-name\fP. .IP "\-Z, \-\-parallel" باعث می‌شود curl در مقایسه با شیوهٔ ترتیبی (سریال) معمول، همهٔ انتقال‌ها را به صورت موازی انجام دهد. انتقال موازی بدان معناست که curl تا N انتقال هم‌زمان را به طور هم‌زمان اجرا می‌کند و اگر بیش از N انتقال برای رسیدگی وجود داشته باشد، با پایان یافتن انتقال‌های قبلی، انتقال‌های جدید را آغاز می‌کند. در انتقال‌های موازی، خروجی نشانگر پیشرفت با زمان انجام انتقال‌های ترتیبی متفاوت است، زیرا وضعیت چند انتقال را در یک خط نمایش می‌دهد. حداکثر تعداد انتقال‌های هم‌زمان با \fI\-\-parallel\-max\fP تنظیم می‌شود و مقدار پیش‌فرض آن 50 است. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. مشخص کردن چندبارهٔ \fI\-\-parallel\fP هیچ تأثیر اضافه‌ای ندارد. با \-\-no-parallel دوباره آن را غیرفعال کنید. مثال: .nf curl --parallel https://example.com -o file1 https://example.com -o file2 .fi در 7.66.0 اضافه شد. همچنین ببینید \fI\-\-next\fP، \fI\-\-verbose\fP، \fI\-\-parallel\-max\fP و \fI\-\-parallel\-immediate\fP. .IP "\-\-parallel\-immediate" هنگام انجام انتقال‌های موازی، این گزینه به curl دستور می‌دهد باز کردن اتصالات موازی بیشتر به صورت یک‌باره را ترجیح دهد، به جای آنکه منتظر بماند تا ببیند آیا انتقال‌های جدید می‌توانند به صورت جریان‌های چندبخشی (multiplexed) روی اتصال دیگری اضافه شوند یا خیر. به‌طور پیش‌فرض و بدون تنظیم این گزینه، curl ترجیح می‌دهد اندکی صبر کند و انتقال‌های جدید را روی اتصالات موجود تسهیم (multiplex) کند. این کار تعداد اتصالات را به بهای خطر آغازِ کمی کندتر انتقال، پایین نگه می‌دارد. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. مشخص کردن چندبارهٔ \fI\-\-parallel\-immediate\fP هیچ تأثیر اضافه‌ای ندارد. با \-\-no-parallel-immediate دوباره آن را غیرفعال کنید. مثال: .nf curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2 .fi در 7.68.0 اضافه شد. همچنین ببینید \fI\-\-parallel\fP و \fI\-\-parallel\-max\fP. .IP "\-\-parallel\-max " هنگام درخواست برای انجام انتقال‌های موازی با استفاده از \fI\-\-parallel\fP، این گزینه حداکثر تعداد انتقال‌هایی را که باید به طور هم‌زمان انجام شوند کنترل می‌کند. مقدار پیش‌فرض 50 است. 65535 بزرگ‌ترین مقدار پشتیبانی‌شده است. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. اگر \fI\-\-parallel\-max\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --parallel-max 100 -Z https://example.com ftp://example.com/ .fi در 7.66.0 اضافه شد. همچنین ببینید \fI\-\-parallel\fP و \fI\-\-parallel\-max\-host\fP. .IP "\-\-parallel\-max\-host " هنگام درخواست برای انجام انتقال‌های موازی با استفاده از \fI\-\-parallel\fP، این گزینه حداکثر تعداد اتصالات هم‌زمانی را کنترل می‌کند که curl مجاز است با یک هدف یکسان (پروتکل + نام میزبان + شماره پورت) برقرار کند. این محدودیت توسط libcurl اعمال شده و به‌صورت «داخلی» در صف قرار می‌گیرد، به این معنی که انتقال‌های در انتظار یک اتصال دردسترس، در نشانگر پیشرفت همچنان مانند انتقال‌های آغازشده به نظر می‌رسند. مقدار پیش‌فرض 0 (نامحدود) است. 65535 بزرگ‌ترین مقدار پشتیبانی‌شده است. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. اگر \fI\-\-parallel\-max\-host\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --parallel-max-host 5 -Z https://example.com ftp://example.com/ .fi در 8.16.0 اضافه شد. همچنین ببینید \fI\-\-parallel\fP و \fI\-\-parallel\-max\fP. .IP "\-\-pass " (TLS SCP SFTP) عبارت عبور برای کلید خصوصی استفاده‌شده در SSH یا TLS. اگر \fI\-\-pass\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --pass secret --key file https://example.com .fi همچنین \fI\-\-key\fP و \fI\-\-user\fP را ببینید. .IP "\-\-path\-as\-is" توالی‌های /../ یا /./ را در مسیر URL داده‌شده پردازش نمی‌کند. در حالت عادی curl طبق استانداردها آن‌ها را فشرده یا ادغام می‌کند، اما با تنظیم این گزینه به آن می‌گویید که این کار را انجام ندهد. ارائه چندباره \fI\-\-path\-as\-is\fP تأثیر اضافه‌ای ندارد. با \-\-no-path-as-is دوباره آن را غیرفعال کنید. مثال: .nf curl --path-as-is https://example.com/../../etc/passwd .fi همچنین \fI\-\-request\-target\fP را ببینید. .IP "\-\-pinnedpubkey " (TLS) استفاده از فایل کلید عمومی مشخص‌شده (یا هش‌ها) برای اعتبارسنجی همتا. این می‌تواند مسیری به یک فایل باشد که شامل یک کلید عمومی منفرد در قالب PEM یا DER است، یا هر تعداد هش sha256 کدگذاری‌شده با base64 که پیش از آن‌ها \(aqsha256//\(aq آمده و با \(aq;\(aq از یکدیگر جدا شده‌اند. هنگام مذاکره برای یک اتصال TLS یا SSL، سرور گواهی‌ای ارسال می‌کند که نشان‌دهنده هویت آن است. یک کلید عمومی از این گواهی استخراج می‌شود و اگر دقیقاً با کلید عمومی ارائه‌شده به این گزینه مطابقت نداشته باشد، curl پیش از ارسال یا دریافت هرگونه داده، اتصال را قطع می‌کند. این گزینه مستقل از گزینه \fI\-\-insecure\fP است. اگر از هر دو گزینه با هم استفاده کنید، همتا همچنان با استفاده از کلید عمومی اعتبارسنجی می‌شود. پشتیبانی از PEM/DER: OpenSSL و GnuTLS، wolfSSL، mbedTLS، Schannel پشتیبانی از sha256: OpenSSL، GnuTLS و wolfSSL، mbedTLS، Schannel سایر backendهای SSL پشتیبانی نمی‌شوند. اگر \fI\-\-pinnedpubkey\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال‌ها: .nf curl --pinnedpubkey keyfile https://example.com curl --pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com .fi همچنین \fI\-\-hostpubsha256\fP را ببینید. .IP "\-\-post301" (HTTP) از RFC 7231/6.4.2 پیروی کرده و هنگام دنبال کردن یک تغییر مسیر 301، درخواست‌های POST را به درخواست‌های GET تبدیل نمی‌کند. رفتار غیر\-RFC در مرورگرهای وب بسیار فراگیر است، بنابراین curl به‌طور پیش‌فرض این تبدیل را برای حفظ سازگاری انجام می‌دهد. یک سرور ممکن است نیاز داشته باشد که یک POST پس از چنین تغییر مسیری همچنان POST باقی بماند. این گزینه تنها هنگام استفاده از \fI\-\-location\fP معنادار است. مشخص کردن چندباره \fI\-\-post301\fP تأثیر اضافه‌ای ندارد. با \-\-no-post301 دوباره آن را غیرفعال کنید. مثال: .nf curl --post301 --location -d "data" https://example.com .fi همچنین \fI\-\-post302\fP، \fI\-\-post303\fP و \fI\-\-location\fP را ببینید. .IP "\-\-post302" (HTTP) از RFC 7231/6.4.3 پیروی کرده و هنگام دنبال کردن یک تغییر مسیر 302، درخواست‌های POST را به درخواست‌های GET تبدیل نمی‌کند. رفتار غیر\-RFC در مرورگرهای وب بسیار فراگیر است، بنابراین curl به‌طور پیش‌فرض این تبدیل را برای حفظ سازگاری انجام می‌دهد. یک سرور ممکن است نیاز داشته باشد که یک POST پس از چنین تغییر مسیری همچنان POST باقی بماند. این گزینه تنها هنگام استفاده از \fI\-\-location\fP معنادار است. مشخص کردن چندباره \fI\-\-post302\fP تأثیر اضافه‌ای ندارد. با \-\-no-post302 دوباره آن را غیرفعال کنید. مثال: .nf curl --post302 --location -d "data" https://example.com .fi همچنین \fI\-\-post301\fP، \fI\-\-post303\fP و \fI\-\-location\fP را ببینید. .IP "\-\-post303" (HTTP) نقض RFC 7231/6.4.4 و عدم تبدیل درخواست‌های POST به درخواست‌های GET هنگام دنبال کردن تغییر مسیر 303. ممکن است یک سرور الزام کند که یک POST پس از تغییر مسیر 303 همچنان POST باقی بماند. این گزینه تنها هنگام استفاده از \fI\-\-location\fP معنا دارد. مشخص کردن چندباره \fI\-\-post303\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-post303 دوباره آن را غیرفعال کنید. مثال: .nf curl --post303 --location -d "data" https://example.com .fi همچنین ببینید \fI\-\-post302\fP، \fI\-\-post301\fP و \fI\-\-location\fP. .IP "\-\-preproxy <[protocol://]host[:port]>" قبل از اتصال به یک \fI\-\-proxy\fP از نوع HTTP یا HTTPS، از پراکسی SOCKS مشخص‌شده استفاده می‌کند. در چنین حالتی curl ابتدا به پراکسی SOCKS متصل می‌شود و سپس (از طریق SOCKS) به پراکسی HTTP یا HTTPS وصل می‌شود؛ از این رو پیش‌پراکسی (pre proxy) نامیده می‌شود. رشته پیش‌پراکسی باید با یک پیشوند "protocol://" برای تعیین پروتکل‌های پراکسی جایگزین مشخص شود. از "socks4://"، "socks4a://"، "socks5://" یا \&"socks5h://" برای درخواست نسخه مشخص SOCKS که باید استفاده شود، استفاده کنید. در صورت مشخص نشدن پروتکل، curl به طور پیش‌فرض از SOCKS4 استفاده می‌کند. اگر شماره پورت در رشته پراکسی مشخص نشود، 1080 در نظر گرفته می‌شود. نام کاربری و گذرواژه‌ای که ممکن است در رشته پراکسی مشخص شده باشند، توسط curl رمزگشایی نشانی (URL decode) می‌شوند. این امکان به شما اجازه می‌دهد نویسه‌های خاص مانند @ را با استفاده از %40 یا دونقطه را با %3a ارسال کنید. اگر \fI\-\-preproxy\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --preproxy socks5://proxy.example -x http://http.example https://example.com .fi همچنین ببینید \fI\-\-proxy\fP و \fI\-\-socks5\fP. .IP "\-#, \-\-progress\-bar" باعث می‌شود curl پیشرفت انتقال را به جای سنجشگر استاندارد و حاوی اطلاعات بیشتر، به صورت یک نوار پیشرفت ساده نمایش دهد. این نوار پیشرفت یک خط از نویسه‌های \(aq#\(aq را در سرتاسر صفحه رسم می‌کند و در صورت مشخص بودن اندازه انتقال، درصد را نشان می‌دهد. برای انتقال‌هایی بدون اندازه مشخص، یک سفینه فضایی (\-=o=\-) وجود دارد که به جلو و عقب حرکت می‌کند، اما تنها در زمانی که داده در حال انتقال است، همراه با مجموعه‌ای از نمادهای هش پرنده در بالای آن. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. مشخص کردن چندباره \fI\-\-progress\-bar\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-progress-bar دوباره آن را غیرفعال کنید. مثال: .nf curl -# -O https://example.com .fi همچنین ببینید \fI\-\-styled\-output\fP. .IP "\-\-proto " پروتکل‌های مجاز برای انتقال را محدود می‌کند. پروتکل‌ها از چپ به راست ارزیابی می‌شوند، با ویرگول از هم جدا می‌شوند و هر یک نام یک پروتکل یا \(aqall\(aq است که به صورت اختیاری می‌تواند یک پیشوند اصلاح‌کننده داشته باشد. اصلاح‌کننده‌های موجود عبارتند از: .RS .IP + مجاز دانستن این پروتکل علاوه بر پروتکل‌های مجاز فعلی (اگر هیچ اصلاح‌کننده‌ای استفاده نشود، این حالت پیش‌فرض است). .IP - رد کردن این پروتکل، با حذف آن از فهرست پروتکل‌های مجاز فعلی. .IP = تنها مجاز دانستن این پروتکل (با نادیده گرفتن فهرست مجاز قبلی)، هرچند که در ادامه ممکن است توسط موارد بعدی در فهرست جداشده با ویرگول تغییر یابد. .RE .IP برای مثال: \fI\-\-proto\fP \-ftps از پروتکل‌های پیش‌فرض استفاده می‌کند، اما ftps را غیرفعال می‌سازد \fI\-\-proto\fP \-all,https,+http تنها http و https را فعال می‌کند \fI\-\-proto\fP =http,https نیز تنها http و https را فعال می‌کند پروتکل‌های ناشناخته و غیرفعال یک هشدار تولید می‌کنند. این قابلیت به اسکریپت‌ها امکان می‌دهد تا بدون اتکا به تعبیه بودن پشتیبانی از آن پروتکل در curl برای جلوگیری از خطا، با اطمینان بر توانایی غیرفعال کردن پروتکل‌های بالقوه خطرناک تکیه کنند. این گزینه می‌تواند چندین بار استفاده شود، که در این حالت اثر آن همانند متصل کردن پروتکل‌ها در یک مورد از این گزینه است. اگر \fI\-\-proto\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proto =http,https,sftp https://example.com .fi همچنین ببینید \fI\-\-proto\-redir\fP و \fI\-\-proto\-default\fP. .IP "\-\-proto\-default " از \fIprotocol\fP برای هر URL ارائه‌شده‌ای که فاقد طرحواره (scheme) باشد استفاده می‌کند. نام غیرحساس به حروف بزرگ و کوچک باید بدون هیچ پسوند "://" مشخص شود. یک پروتکل ناشناخته یا پشتیبانی‌نشده باعث بروز خطای \fICURLE_UNSUPPORTED_PROTOCOL\fP می‌شود. این گزینه پروتکل پیش‌فرض پراکسی (http) را تغییر نمی‌دهد. بدون تنظیم این گزینه، curl پروتکل را بر اساس نام میزبان حدس می‌زند؛ برای جزئیات \fI\-\-url\fP را ببینید. پروتکل پیش‌فرض نمی‌تواند روی "ipfs" یا "ipns" تنظیم شود. این طرحواره‌ها باید به‌طور صریح در URL استفاده شوند. اگر \fI\-\-proto\-default\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proto-default https ftp.example.com .fi همچنین \fI\-\-proto\fP و \fI\-\-proto\-redir\fP را ببینید. .IP "\-\-proto\-redir " پروتکل‌های مجاز در تغییر مسیرها (redirects) را محدود می‌کند. پروتکل‌های ردشده توسط \fI\-\-proto\fP با این گزینه لغو (override) نمی‌شوند. برای نحوهٔ نمایش پروتکل‌ها \fI\-\-proto\fP را ببینید. مثال، تنها مجاز کردن HTTP و HTTPS در تغییر مسیر: .nf curl \--proto\-redir \-all,http,https \--follow http://example.com .fi به‌طور پیش‌فرض curl تنها به HTTP، HTTPS، FTP و FTPS در تغییر مسیرها اجازه می‌دهد. مشخص کردن \fIall\fP یا \fI+all\fP همهٔ پروتکل‌ها را در تغییر مسیرها فعال می‌کند، که از نظر امنیتی مناسب نیست. اگر \fI\-\-proto\-redir\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proto-redir =http,https --follow https://example.com .fi همچنین \fI\-\-proto\fP و \fI\-\-follow\fP را ببینید. .IP "\-x, \-\-proxy <[protocol://]host[:port]>" از پراکسی مشخص‌شده استفاده می‌کند. رشتهٔ پراکسی می‌تواند با یک پیشوند "protocol://" مشخص شود. اگر هیچ پروتکلی مشخص نشود یا http:// باشد، به عنوان یک پراکسی HTTP در نظر گرفته می‌شود. از "socks4://"، "socks4a://"، "socks5://" یا "socks5h://" برای درخواست استفاده از یک نسخهٔ خاص SOCKS استفاده کنید. سوکت‌های دامنهٔ یونیکس (Unix domain sockets) برای پراکسی socks پشتیبانی می‌شوند. بخش میزبان را localhost قرار دهید؛ مانند socks5h://localhost/path/to/socket.sock پشتیبانی از پراکسی HTTPS با پیشوند پروتکل "https://" برای OpenSSL و GnuTLS کار می‌کند. همچنین برای mbedTLS، Rustls، Schannel و wolfSSL (اضافه‌شده در 7.87.0) نیز کار می‌کند. طرحواره‌های پروتکل پراکسی ناشناخته و پشتیبانی‌نشده باعث بروز خطا می‌شوند. اگر شماره درگاه (port) در رشتهٔ پراکسی مشخص نشده باشد، مقدار آن 1080 فرض می‌شود. این گزینه متغیرهای محیطی موجود را که پراکسی مورد استفاده را تعیین می‌کنند بازنویسی (override) می‌کند. اگر متغیر محیطی وجود دارد که پراکسی را تنظیم کرده است، می‌توانید پراکسی را روی \&"" تنظیم کنید تا آن را باطل نمایید. تمام عملیاتی که از طریق یک پراکسی HTTP انجام می‌شوند، به‌طور شفاف به HTTP تبدیل می‌گردند. این بدان معناست که ممکن است برخی از عملیات خاص پروتکل در دسترس نباشند. در صورتی که بتوانید از طریق پراکسی تونل ایجاد کنید، مانند استفاده از گزینهٔ \fI\-\-proxytunnel\fP، این‌گونه نخواهد بود. نام کاربری و گذرواژه‌ای که ممکن است در رشتهٔ پراکسی ارائه شوند، توسط curl رمزگشایی URL می‌شوند. این به شما امکان می‌دهد نویسه‌های خاص مانند @ را با استفاده از %40 یا دونقطه را با %3a ارسال کنید. میزبان پراکسی می‌تواند به همان روش متغیرهای محیطی پراکسی مشخص شود، از جمله پیشوند پروتکل ("http://") و کاربر + گذرواژهٔ تعبیه‌شده. هنگامی که از یک پراکسی استفاده می‌شود، حالت فعال FTP که با \fI\-\-ftp\-port\fP تنظیم می‌شود، قابل استفاده نیست. انجام FTP از طریق یک پراکسی HTTP بدون \fI\-\-proxytunnel\fP باعث می‌شود curl پروتکل HTTP را با یک URL مربوط به FTP از طریق پراکسی انجام دهد. برای چنین انتقال‌هایی، گزینه‌های متداول مخصوص FTP کار نمی‌کنند، از جمله \fI\-\-ssl\-reqd\fP و \fI\-\-ftp\-ssl\-control\fP. اگر \fI\-\-proxy\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proxy http://proxy.example https://example.com .fi همچنین \fI\-\-socks5\fP و \fI\-\-proxy\-basic\fP را ببینید. .IP "\-\-proxy\-anyauth" به‌طور خودکار یک روش احراز هویت مناسب را هنگام برقراری ارتباط با پروکسی HTTP مشخص‌شده انتخاب می‌کند. این کار ممکن است باعث یک رفت‌وبرگشت (round\-trip) اضافه برای درخواست/پاسخ شود. مثال: .nf curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com .fi همچنین ببینید \fI\-\-proxy\fP، \fI\-\-proxy\-basic\fP و \fI\-\-proxy\-digest\fP. .IP "\-\-proxy\-basic" هنگام برقراری ارتباط با پروکسی مشخص‌شده، از احراز هویت HTTP Basic استفاده می‌کند. برای فعال‌سازی HTTP Basic با یک میزبان راه دور، از \fI\-\-basic\fP استفاده کنید. روش Basic، روش احراز هویت پیشفرض curl در ارتباط با پروکسی‌ها است. ارائه چندباره \fI\-\-proxy\-basic\fP تأثیر اضافه‌ای ندارد. آن را دوباره با \-\-no-proxy-basic غیرفعال کنید. مثال: .nf curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com .fi همچنین ببینید \fI\-\-proxy\fP، \fI\-\-proxy\-anyauth\fP و \fI\-\-proxy\-digest\fP. .IP "\-\-proxy\-ca\-native" (TLS) برای اعتبارسنجی گواهی پروکسی HTTPS، از مخزن بومی CA سیستم‌عامل استفاده می‌کند. این گزینه مستقل از سایر مکان‌های گواهی CA پروکسی HTTPS است که در زمان اجرا یا زمان ساخت تنظیم شده‌اند. آن مکان‌ها علاوه بر مخزن بومی CA جستجو می‌شوند. معادل \fI\-\-ca\-native\fP است، اما در زمینه پروکسی HTTPS استفاده می‌شود. برای محدودیت‌های بک‌اند TLS به \fI\-\-ca\-native\fP مراجعه کنید. ارائه چندباره \fI\-\-proxy\-ca\-native\fP تأثیر اضافه‌ای ندارد. آن را دوباره با \-\-no-proxy-ca-native غیرفعال کنید. مثال: .nf curl --proxy-ca-native https://example.com .fi در نسخه 8.2.0 اضافه شد. همچنین ببینید \fI\-\-ca\-native\fP، \fI\-\-cacert\fP، \fI\-\-capath\fP، \fI\-\-dump\-ca\-embed\fP و \fI\-\-insecure\fP. .IP "\-\-proxy\-cacert " از پرونده گواهی مشخص‌شده برای اعتبارسنجی پروکسی HTTPS استفاده می‌کند. این پرونده ممکن است حاوی چندین گواهی CA باشد. گواهی(ها) باید در قالب PEM باشند. این به شما امکان می‌دهد در مقایسه با سرور راه دوری که از طریق پروکسی به آن متصل شده‌اید، از سطح اعتماد (trust) متفاوتی برای پروکسی استفاده کنید. معادل \fI\-\-cacert\fP است، اما در زمینه پروکسی HTTPS استفاده می‌شود. اگر \fI\-\-proxy\-cacert\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proxy-cacert CA-file.txt -x https://proxy.example https://example.com .fi همچنین ببینید \fI\-\-proxy\-capath\fP، \fI\-\-cacert\fP، \fI\-\-capath\fP، \fI\-\-dump\-ca\-embed\fP و \fI\-\-proxy\fP. .IP "\-\-proxy\-capath " مشابه \fI\-\-capath\fP است، اما در زمینه پروکسی HTTPS استفاده می‌شود. از دایرکتوری گواهی مشخص‌شده برای اعتبارسنجی پروکسی استفاده می‌کند. می‌توان چندین مسیر را با جدا کردن آن‌ها با دونقطه (":") مشخص کرد (مانند "path1:path2:path3"). گواهی‌ها باید در قالب PEM باشند، و اگر curl با OpenSSL ساخته شده باشد، دایرکتوری باید با استفاده از ابزار c_rehash ارائه‌شده همراه با OpenSSL پردازش شده باشد. در صورتی که پرونده \fI\-\-proxy\-cacert\fP حاوی گواهی‌های CA متعددی باشد، استفاده از \fI\-\-proxy\-capath\fP می‌تواند به curl مبتنی بر OpenSSL امکان دهد اتصالات SSL را بسیار کارآمدتر از استفاده از \fI\-\-proxy\-cacert\fP برقرار کند. اگر این گزینه تنظیم شود، مقدار پیشفرض capath نادیده گرفته می‌شود. اگر \fI\-\-proxy\-capath\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proxy-capath /local/directory -x https://proxy.example https://example.com .fi همچنین ببینید \fI\-\-proxy\-cacert\fP، \fI\-\-proxy\fP، \fI\-\-capath\fP و \fI\-\-dump\-ca\-embed\fP. .IP "\-\-proxy\-cert " هنگام برقراری ارتباط با یک پروکسی HTTPS، از پرونده گواهی کلاینت مشخص‌شده استفاده می‌کند. گواهی باید در قالب PEM باشد. اگر گذرواژه اختیاری مشخص نشود، در ترمینال درخواست می‌شود. از \fI\-\-proxy\-key\fP برای ارائه کلید خصوصی استفاده کنید. این گزینه معادل \fI\-\-cert\fP است، اما در زمینه پروکسی HTTPS استفاده می‌شود. اگر \fI\-\-proxy\-cert\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proxy-cert file -x https://proxy.example https://example.com .fi همچنین ببینید \fI\-\-proxy\fP، \fI\-\-proxy\-key\fP و \fI\-\-proxy\-cert\-type\fP. .IP "\-\-proxy\-cert\-type " نوع گواهی کارخواه ارائه‌شده را هنگام استفاده از پروکسی HTTPS تعیین می‌کند. انواع PEM، DER، ENG، PROV و P12 شناخته‌شده هستند. نوع پیش‌فرض به زیرساخت TLS بستگی دارد و معمولاً PEM است. برای Schannel مقدار آن P12 است. اگر \fI\-\-proxy\-cert\fP یک نشانی pkcs11: باشد، نوع پیش‌فرض ENG یا PROV خواهد بود (بسته به نسخهٔ OpenSSL). معادل \fI\-\-cert\-type\fP است اما در زمینهٔ پروکسی HTTPS به کار می‌رود. اگر \fI\-\-proxy\-cert\-type\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proxy-cert-type PEM --proxy-cert file -x https://proxy.example https://example.com .fi همچنین \fI\-\-proxy\-cert\fP و \fI\-\-proxy\-key\fP را ببینید. .IP "\-\-proxy\-ciphers " (TLS) مشابه \fI\-\-ciphers\fP است اما در زمینهٔ پروکسی HTTPS استفاده می‌شود. مشخص می‌کند که هنگام مذاکرهٔ TLS 1.2 (1.1, 1.0) از کدام مجموعه‌های رمز (cipher suites) در اتصال به پروکسی HTTPS شما استفاده شود. فهرست مجموعه‌های رمز باید رمزهای معتبری را مشخص کند. جزئیات مجموعه رمزها را در این نشانی بخوانید: https://curl.se/docs/ssl\-ciphers.html اگر \fI\-\-proxy\-ciphers\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proxy-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 -x https://proxy.example https://example.com .fi همچنین \fI\-\-proxy\-tls13\-ciphers\fP، \fI\-\-ciphers\fP و \fI\-\-proxy\fP را ببینید. .IP "\-\-proxy\-crlfile " نام پرونده‌ای با قالب PEM حاوی فهرست ابطال گواهی (CRL) را مشخص می‌کند که تعیین می‌کند کدام گواهی‌های همتا هنگام برقراری ارتباط با یک پروکسی HTTPS باطل‌شده در نظر گرفته شوند. معادل \fI\-\-crlfile\fP است اما تنها در زمینهٔ پروکسی HTTPS به کار می‌رود. اگر \fI\-\-proxy\-crlfile\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --proxy-crlfile rejects.txt -x https://proxy.example https://example.com .fi همچنین \fI\-\-crlfile\fP و \fI\-\-proxy\fP را ببینید. .IP "\-\-proxy\-digest" هنگام برقراری ارتباط با پروکسی مشخص‌شده از احراز هویت HTTP Digest استفاده می‌کند. از \fI\-\-digest\fP برای فعال‌سازی HTTP Digest با یک میزبان راه دور استفاده کنید. ارائهٔ چندبارهٔ \fI\-\-proxy\-digest\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-proxy-digest غیرفعال کنید. مثال: .nf curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com .fi همچنین \fI\-\-proxy\fP، \fI\-\-proxy\-anyauth\fP و \fI\-\-proxy\-basic\fP را ببینید. .IP "\-\-proxy\-header
" (HTTP) سرآیند اضافی برای گنجاندن در درخواست هنگام ارسال HTTP به یک پروکسی. می‌توانید هر تعداد سرآیند اضافی را مشخص کنید. این گزینه معادل \fI\-\-header\fP است اما تنها برای ارتباط با پروکسی کاربرد دارد؛ مانند درخواست‌های CONNECT زمانی که می‌خواهید سرآیندی جداگانه نسبت به آنچه به میزبان راه دور واقعی ارسال می‌شود، به پروکسی فرستاده شود. curl اطمینان حاصل می‌کند که هر سرآیندی که اضافه یا جایگزین می‌کنید با نشانگر پایان خط مناسب ارسال شود؛ بنابراین \fBنباید\fP آن را به عنوان بخشی از محتوای سرآیند اضافه کنید: خط جدید یا بازگشت به ابتدای خط اضافه نکنید، چرا که فقط کار را برای شما خراب می‌کنند. سرآیندهای مشخص‌شده با این گزینه در درخواست‌هایی که curl می‌داند نباید به یک پروکسی ارسال شوند، گنجانده نمی‌شوند. این گزینه می‌تواند آرگومانی به سبک @filename بپذیرد که در این صورت برای هر خط از پروندهٔ ورودی یک سرآیند اضافه می‌کند. استفاده از @\- باعث می‌شود curl سرآیندها را از stdin بخواند. از این گزینه می‌توان چندین بار برای افزودن، جایگزینی یا حذف چندین سرآیند استفاده کرد. \fI\-\-proxy\-header\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال‌ها: .nf curl --proxy-header "X-First-Name: Joe" -x http://proxy https://example.com curl --proxy-header "User-Agent: surprise" -x http://proxy https://example.com curl --proxy-header "Host:" -x http://proxy https://example.com .fi همچنین \fI\-\-proxy\fP و \fI\-\-header\fP را ببینید. .IP "\-\-proxy\-http2" (HTTP) مذاکره برای HTTP/2 با یک پروکسی HTTPS. ممکن است پروکسی همچنان فقط HTTP/1 را ارائه دهد و در این صورت curl به استفاده از همان نسخه پایبند می‌ماند. این گزینه بر روی هیچ نوع پروکسی دیگری تأثیری ندارد. این گزینه با "\fI\-\-proxy\-http3\fP" ناسازگار است. مشخص کردن چندباره \fI\-\-proxy\-http2\fP تأثیر اضافه‌ای ندارد. آن را مجدداً با \-\-no-proxy-http2 غیرفعال کنید. مثال: .nf curl --proxy-http2 -x proxy https://example.com .fi برای کارکرد \fI\-\-proxy\-http2\fP، لازم است که libcurl زیرین با پشتیبانی از HTTP/2 ساخته شده باشد. این گزینه با \fI\-\-proxy\-http3\fP ناسازگار است. اضافه‌شده در 8.1.0. همچنین ببینید: \fI\-\-proxy\fP. .IP "\-\-proxy\-http3" (HTTP) مذاکره برای HTTP/3 با یک پروکسی HTTPS. اگر پروکسی داده‌شده از HTTP/3 پشتیبانی نکند، انجام انتقال با شکست مواجه می‌شود. این گزینه بر روی هیچ نوع پروکسی دیگری تأثیری ندارد. این گزینه با "\fI\-\-proxy\-http2\fP" ناسازگار است. این ویژگی آزمایشی است و نیازمند ساختی است که پشتیبانی از پروکسی HTTP/3 در آن فعال شده باشد. برای ساخت‌های autotools از "\fI\-\-enable\-proxy\-http3\fP" استفاده کنید. برای ساخت‌های CMake از "\-DUSE_PROXY_HTTP3=ON" استفاده کنید. مشخص کردن چندباره \fI\-\-proxy\-http3\fP تأثیر اضافه‌ای ندارد. آن را مجدداً با \-\-no-proxy-http3 غیرفعال کنید. مثال: .nf curl --proxy-http3 -x proxy https://example.com .fi برای کارکرد \fI\-\-proxy\-http3\fP، لازم است که libcurl زیرین با پشتیبانی از HTTP/3 ساخته شده باشد. این گزینه با \fI\-\-proxy\-http2\fP ناسازگار است. اضافه‌شده در 8.21.0. همچنین ببینید: \fI\-\-proxy\fP و \fI\-\-proxy\-http2\fP. .IP "\-\-proxy\-insecure" مشابه \fI\-\-insecure\fP اما در زمینه پروکسی HTTPS به کار می‌رود. هر اتصال امنی که curl برقرار می‌کند، پیش از انجام انتقال برای امن بودن اعتبارسنجی می‌شود. این گزینه باعث می‌شود curl از مرحله اعتبارسنجی با یک پروکسی صرف‌نظر کرده و بدون بررسی ادامه دهد. هنگامی که این گزینه برای یک پروکسی مبتنی بر HTTPS استفاده نشود، curl پیش از ادامه، گواهی TLS پروکسی را اعتبارسنجی می‌کند: اینکه گواهی شامل نام صحیحی باشد که با نام میزبان مطابقت دارد، و اینکه گواهی توسط یک گواهی CA موجود در مخزن گواهی‌ها امضا شده باشد. برای جزئیات بیشتر به این منبع برخط مراجعه کنید: \fBhttps://curl.se/docs/sslcerts.html\fP \fBهشدار\fP: استفاده از این گزینه، انتقال به پروکسی را ناامن می‌کند. مشخص کردن چندباره \fI\-\-proxy\-insecure\fP تأثیر اضافه‌ای ندارد. آن را مجدداً با \-\-no-proxy-insecure غیرفعال کنید. مثال: .nf curl --proxy-insecure -x https://proxy.example https://example.com .fi همچنین ببینید: \fI\-\-proxy\fP و \fI\-\-insecure\fP. .IP "\-\-proxy\-key " هنگام استفاده از گواهی‌های کارخواه با پروکسی HTTPS، نام پرونده را برای کلید خصوصی خود مشخص کنید. این گزینه معادل \fI\-\-key\fP است اما در زمینه پروکسی HTTPS به کار می‌رود. اگر \fI\-\-proxy\-key\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --proxy-key here -x https://proxy.example https://example.com .fi همچنین ببینید: \fI\-\-proxy\-key\-type\fP و \fI\-\-proxy\fP. .IP "\-\-proxy\-key\-type " نوع پرونده کلید خصوصی را که کلید خصوصی ارائه‌شده با \fI\-\-proxy\-key\fP استفاده می‌کند، مشخص کنید. از DER، PEM و ENG پشتیبانی می‌شود. اگر مشخص نشود، PEM فرض می‌شود. معادل \fI\-\-key\-type\fP است اما در زمینه پروکسی HTTPS به کار می‌رود. اگر \fI\-\-proxy\-key\-type\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --proxy-key-type DER --proxy-key here -x https://proxy.example https://example.com .fi همچنین ببینید: \fI\-\-proxy\-key\fP و \fI\-\-proxy\fP. .IP "\-\-proxy\-negotiate" هنگام برقراری ارتباط با پروکسی داده‌شده، از احراز هویت HTTP Negotiate (SPNEGO) استفاده کنید. برای فعال کردن HTTP Negotiate (SPNEGO) با یک میزبان دوردست، از \fI\-\-negotiate\fP استفاده کنید. ارائه چندباره \fI\-\-proxy\-negotiate\fP هیچ اثر اضافه‌ای ندارد. مثال: .nf curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com .fi همچنین ببینید: \fI\-\-proxy\-anyauth\fP، \fI\-\-proxy\-basic\fP و \fI\-\-proxy\-service\-name\fP. .IP "\-\-proxy\-ntlm" هنگام برقراری ارتباط با پروکسی داده‌شده، از احراز هویت HTTP NTLM استفاده کنید. برای فعال کردن NTLM با یک میزبان دوردست، از \fI\-\-ntlm\fP استفاده کنید. ارائه چندباره \fI\-\-proxy\-ntlm\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-proxy-ntlm غیرفعال کنید. مثال: .nf curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com .fi همچنین ببینید: \fI\-\-proxy\-negotiate\fP، \fI\-\-proxy\-anyauth\fP و \fI\-\-proxy\-user\fP. .IP "\-\-proxy\-pass " عبارت عبور برای کلید خصوصی گواهی کلاینت پروکسی HTTPS. معادل \fI\-\-pass\fP است اما در زمینه پروکسی HTTPS استفاده می‌شود. اگر \fI\-\-proxy\-pass\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده خواهد شد. مثال: .nf curl --proxy-pass secret --proxy-key here -x https://proxy.example https://example.com .fi همچنین ببینید: \fI\-\-proxy\fP و \fI\-\-proxy\-key\fP. .IP "\-\-proxy\-pinnedpubkey " (TLS) از پرونده کلید عمومی (یا هش‌های) مشخص‌شده برای تأیید پروکسی استفاده کنید. این می‌تواند مسیری به یک پرونده باشد که شامل یک کلید عمومی یکتا در قالب PEM یا DER است، یا هر تعداد هش sha256 کدگذاری‌شده با base64 که پیش از آن‌ها \(aqsha256//\(aq آمده و با \(aq;\(aq از یکدیگر جدا شده‌اند. هنگام مذاکره یک اتصال TLS یا SSL، سرور گواهی‌ای ارسال می‌کند که نشان‌دهنده هویت آن است. یک کلید عمومی از این گواهی استخراج می‌شود و اگر دقیقاً با کلید عمومی ارائه‌شده به این گزینه مطابقت نداشته باشد، curl پیش از ارسال یا دریافت هرگونه داده‌ای، اتصال را متوقف می‌کند. قبل از curl 8.10.0 این گزینه به دلیل وجود یک باگ کار نمی‌کرد. اگر \fI\-\-proxy\-pinnedpubkey\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده خواهد شد. مثال‌ها: .nf curl --proxy-pinnedpubkey keyfile https://example.com curl --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com .fi همچنین ببینید: \fI\-\-pinnedpubkey\fP و \fI\-\-proxy\fP. .IP "\-\-proxy\-service\-name " تنظیم نام سرویس برای SPNEGO هنگام انجام احراز هویت با پروکسی. اگر \fI\-\-proxy\-service\-name\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده خواهد شد. مثال: .nf curl --proxy-service-name "shrubbery" -x proxy https://example.com .fi همچنین ببینید: \fI\-\-service\-name\fP، \fI\-\-proxy\fP و \fI\-\-proxy\-negotiate\fP. .IP "\-\-proxy\-ssl\-allow\-beast" هنگام برقراری ارتباط با یک پروکسی HTTPS، نقص امنیتی پروتکل TLS1.0 را که با عنوان BEAST شناخته می‌شود، دور نزنید. اگر از این گزینه استفاده نشود، لایه TLS ممکن است از روش‌هایی برای دور زدن استفاده کند که مشخص شده باعث ایجاد مشکلات سازگاری با برخی از پیاده‌سازی‌های قدیمی‌تر سرور می‌شوند. این گزینه تنها نحوه اجرای TLS 1.0 توسط curl با یک پروکسی HTTPS را تغییر می‌دهد و هیچ اثری بر نسخه‌های بعدی TLS ندارد. \fBهشدار\fP: این گزینه امنیت TLS را کاهش می‌دهد، و با استفاده از این پرچم شما دقیقاً همین را درخواست می‌کنید. معادل \fI\-\-ssl\-allow\-beast\fP است اما در زمینه پروکسی HTTPS استفاده می‌شود. ارائه چندباره \fI\-\-proxy\-ssl\-allow\-beast\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-proxy-ssl-allow-beast غیرفعال کنید. مثال: .nf curl --proxy-ssl-allow-beast -x https://proxy.example https://example.com .fi همچنین ببینید: \fI\-\-ssl\-allow\-beast\fP و \fI\-\-proxy\fP. .IP "\-\-proxy\-ssl\-auto\-client\-cert" مشابه \fI\-\-ssl\-auto\-client\-cert\fP اما در زمینهٔ پروکسی HTTPS استفاده میشود. این گزینه تنها توسط Schannel پشتیبانی میشود. مشخص کردن چندبارهٔ \fI\-\-proxy\-ssl\-auto\-client\-cert\fP اثر بیشتری ندارد. آن را دوباره با \-\-no-proxy-ssl-auto-client-cert غیرفعال کنید. مثال: .nf curl --proxy-ssl-auto-client-cert -x https://proxy.example https://example.com .fi در 7.77.0 اضافه شد. همچنین ببینید \fI\-\-ssl\-auto\-client\-cert\fP و \fI\-\-proxy\fP. .IP "\-\-proxy\-tls13\-ciphers " (TLS) مشابه \fI\-\-tls13\-ciphers\fP اما در زمینهٔ پروکسی HTTPS استفاده میشود. مجموعه رمزهای مورد استفاده در اتصال به پروکسی HTTPS را هنگام مذاکرهٔ TLS 1.3 مشخص کنید. فهرست مجموعه رمزها باید رمزهای معتبری را مشخص کند. دربارهٔ جزئیات مجموعه رمزهای TLS 1.3 در این نشانی وب بخوانید: https://curl.se/docs/ssl\-ciphers.html این گزینه زمانی استفاده میشود که curl برای استفاده از OpenSSL 1.1.1 یا بالاتر، Schannel، wolfSSL، یا mbedTLS 3.6.0 یا بالاتر ساخته شده باشد. پیش از curl 8.10.0 با mbedTLS یا wolfSSL، مجموعه رمزهای TLS 1.3 با استفاده از گزینهٔ \fI\-\-proxy\-ciphers\fP تنظیم میشدند. اگر \fI\-\-proxy\-tls13\-ciphers\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com .fi همچنین ببینید \fI\-\-proxy\-ciphers\fP، \fI\-\-tls13\-ciphers\fP و \fI\-\-proxy\fP. .IP "\-\-proxy\-tlsauthtype " گزینهٔ منسوخ‌شده. این گزینه از 8.22.0 به بعد هیچ عملکردی ندارد. نوع احراز هویت TLS را با پروکسی HTTPS تنظیم کنید. تنها گزینهٔ پشتیبانی‌شده \&"SRP"، برای TLS\-SRP (RFC 5054) است. این گزینه تنها در صورتی کار میکند که libcurl زیربنایی با پشتیبانی از TLS\-SRP ساخته شده باشد. معادل \fI\-\-tlsauthtype\fP اما در زمینهٔ پروکسی HTTPS استفاده میشود. اگر \fI\-\-proxy\-tlsauthtype\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --proxy-tlsauthtype SRP -x https://proxy.example https://example.com .fi همچنین ببینید \fI\-\-proxy\fP، \fI\-\-proxy\-tlsuser\fP و \fI\-\-proxy\-tlspassword\fP. .IP "\-\-proxy\-tlspassword " گزینهٔ منسوخ‌شده. این گزینه از 8.22.0 به بعد هیچ عملکردی ندارد. گذرواژه مورد استفاده با روش احراز هویت TLS مشخص‌شده با \fI\-\-proxy\-tlsauthtype\fP را هنگام استفاده از پروکسی HTTPS تنظیم کنید. نیازمند این است که \fI\-\-proxy\-tlsuser\fP تنظیم شده باشد. این گزینه با TLS 1.3 کار نمیکند. معادل \fI\-\-tlspassword\fP اما در زمینهٔ پروکسی HTTPS استفاده میشود. اگر \fI\-\-proxy\-tlspassword\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --proxy-tlspassword passwd -x https://proxy.example https://example.com .fi همچنین ببینید \fI\-\-proxy\fP و \fI\-\-proxy\-tlsuser\fP. .IP "\-\-proxy\-tlsuser " گزینهٔ منسوخ‌شده. این گزینه از 8.22.0 به بعد هیچ عملکردی ندارد. نام کاربری مورد استفاده برای پروکسی HTTPS را با روش احراز هویت TLS مشخص‌شده با \fI\-\-proxy\-tlsauthtype\fP تنظیم کنید. نیازمند این است که \fI\-\-proxy\-tlspassword\fP نیز تنظیم شده باشد. این گزینه با TLS 1.3 کار نمیکند. اگر \fI\-\-proxy\-tlsuser\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --proxy-tlsuser smith -x https://proxy.example https://example.com .fi همچنین ببینید \fI\-\-proxy\fP و \fI\-\-proxy\-tlspassword\fP. .IP "\-\-proxy\-tlsv1" هنگام مذاکره با یک پروکسی HTTPS، حداقل از TLS نسخه 1.x استفاده میکند. این به معنای TLS نسخه 1.0 یا بالاتر است. معادل با \fI\-\-tlsv1\fP اما برای بافتار یک پروکسی HTTPS. ارائه چندباره \fI\-\-proxy\-tlsv1\fP تأثیر اضافهای ندارد. مثال: .nf curl --proxy-tlsv1 -x https://proxy.example https://example.com .fi همچنین ببینید \fI\-\-proxy\fP. .IP "\-U, \-\-proxy\-user " نام کاربری و گذرواژه را جهت استفاده برای احراز هویت پروکسی مشخص میکند. اگر از یک باینری curl با قابلیت SSPI در ویندوز استفاده میکنید و احراز هویت Negotiate یا NTLM را انجام میدهید، میتوانید با مشخص کردن یک دو‌نقطه تک با این گزینه به curl بگویید که نام کاربری و گذرواژه را از متغیرهای محیطی شما انتخاب کند: "\-U :". در سیستمهایی که این قابلیت کار میکند، curl آرگومان داده‌شده به گزینه را از فهرست فرایندها مخفی میکند. این برای محافظت از اعتبارنامه‌ها در برابر مشاهده احتمالی توسط کاربران دیگر روی همان سیستم کافی نیست، زیرا آنها همچنان قبل از پاک شدن برای یک لحظه قابل مشاهده هستند. چنین دادههای حساسی باید در عوض از یک فایل یا موارد مشابه بازیابی شوند و هرگز به صورت متن آشکار در خط فرمان استفاده نشوند. اگر \fI\-\-proxy\-user\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --proxy-user smith:secret -x proxy https://example.com .fi همچنین ببینید \fI\-\-proxy\-pass\fP. .IP "\-\-proxy1.0 " از پروکسی HTTP 1.0 مشخص‌شده استفاده میکند. اگر شماره درگاه مشخص نشده باشد، درگاه 1080 فرض میشود. تنها تفاوت میان این و گزینه پروکسی HTTP یعنی \fI\-\-proxy\fP این است که تلاشها برای استفاده از CONNECT از طریق پروکسی، پروتکل HTTP 1.0 را به جای HTTP 1.1 پیشفرض مشخص میکند. ارائه چندباره \fI\-\-proxy1.0\fP تأثیر اضافهای ندارد. مثال: .nf curl --proxy1.0 http://proxy https://example.com .fi همچنین ببینید \fI\-\-proxy\fP، \fI\-\-socks5\fP و \fI\-\-preproxy\fP. .IP "\-p, \-\-proxytunnel" هنگامی که یک پروکسی HTTP با \fI\-\-proxy\fP استفاده میشود، این گزینه موجب میشود curl ترافیک را از طریق پروکسی تونل کند. روش تونل با درخواست CONNECT در پروکسی HTTP انجام میشود و مستلزم آن است که پروکسی اجازه اتصال مستقیم به شماره درگاه دوردستی را که curl میخواهد به آن تونل بزند، بدهد. برای فرونشاندن سرآیندهای پاسخ CONNECT پروکسی هنگامی که curl برای نمایش سرآیندها در خروجی تنظیم شده است، از \fI\-\-suppress\-connect\-headers\fP استفاده کنید. ارائه چندباره \fI\-\-proxytunnel\fP تأثیر اضافهای ندارد. آن را دوباره با \-\-no-proxytunnel غیرفعال کنید. مثال: .nf curl --proxytunnel -x http://proxy https://example.com .fi همچنین ببینید \fI\-\-proxy\fP. .IP "\-\-pubkey " (SFTP SCP) نام فایل کلید عمومی. به شما اجازه میدهد کلید عمومی خود را در این فایل جداگانه ارائه دهید. ابزار curl تلاش میکند تا کلید عمومی را به طور خودکار از فایل کلید خصوصی استخراج کند، بنابراین ارسال این گزینه عموماً لازم نیست. توجه داشته باشید که این استخراج کلید عمومی مستلزم آن است که libcurl با نسخهای از libssh2 نگارش 1.2.8 یا بالاتر پیوند خورده باشد که آن نیز خود با OpenSSL پیوند خورده است. اگر \fI\-\-pubkey\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده میشود. مثال: .nf curl --pubkey file.pub sftp://example.com/ .fi همچنین ببینید \fI\-\-pass\fP. .IP "\-Q, \-\-quote " (FTP SFTP) ارسال یک دستور دلخواه به سرور دوردست FTP یا SFTP. دستورهای نقل‌قول (quote) قبل از انجام انتقال ارسال میشوند (دقیقاً بلافاصله پس از دستور اولیه \fBPWD\fP در یک انتقال FTP). برای اینکه دستورها پس از یک انتقال موفق اجرا شوند، پیشوند یک خط پیوند \(aq\-\(aq را به آنها اضافه کنید. (فقط FTP) برای اینکه دستورها پس از تغییر دایرکتوری کاری توسط curl، دقیقاً پیش از دستور(های) انتقال فایل ارسال شوند، پیشوند \(aq+\(aq را به دستور اضافه کنید. میتوانید هر تعداد دستور را مشخص کنید. به صورت پیشفرض curl در اولین شکست متوقف میشود. برای اینکه curl حتی در صورت شکست دستور به کار خود ادامه دهد، پیشوند یک ستاره (*) را به دستور اضافه کنید. در غیر این صورت، اگر سرور برای یکی از دستورها وضعیت شکست برگرداند، کل عملیات لغو میشود. شما باید دستورهای FTP را با نحو معتبر آن‌گونه که RFC 959 تعریف میکند به سرورهای FTP، یا یکی از دستورهای فهرست‌شده در زیر را به سرورهای SFTP ارسال کنید. پروتکل SFTP یک پروتکل باینری است. برخلاف FTP، ابزار curl دستورهای quote مربوط به SFTP را پیش از ارسال به سرور، خودش تفسیر میکند. نام پروندهها باید درون علامت نقل‌قول دوتایی قرار گیرند تا فاصلهها، بک‌اسلشها، نقل‌قولها یا نقل‌قولهای دوتایی درون آنها گنجانده شوند. درون علامت نقل‌قول دوتایی، توالیهای گریز زیر برای این منظور در دسترس هستند: \\\\، \\" و \\\(aq. در ادامه فهرست تمام دستورهای quote پشتیبانی‌شده در SFTP آمده است: .RS .IP "atime date file" دستور atime آخرین زمان دسترسی به پرونده مشخص‌شده توسط عملوند file را تنظیم می‌کند. عبارت date می‌تواند انواع مختلفی از رشته‌های تاریخ باشد؛ برای جزئیات عبارت تاریخ، صفحه راهنمای \fIcurl_getdate(3)\fP را ببینید. (اضافه‌شده در 7.73.0) .IP "chgrp group file" دستور chgrp شناسه گروه (group ID) پرونده مشخص‌شده با عملوند file را به شناسه گروه تعیین‌شده با عملوند group تنظیم می‌کند. عملوند group یک شناسه گروه به صورت عدد صحیح ده‌دهی است. .IP "chmod mode file" دستور chmod بیت‌های حالت پرونده (file mode bits) را برای پرونده مشخص‌شده تغییر می‌دهد. عملوند mode یک عدد حالت به صورت عدد صحیح در مبنای هشت (اکتال) است. .IP "chown user file" دستور chown مالک پرونده مشخص‌شده با عملوند file را به شناسه کاربری تعیین‌شده با عملوند user تنظیم می‌کند. عملوند user یک شناسه کاربری به صورت عدد صحیح ده‌دهی است. .IP "ln source_file target_file" دستورهای ln و symlink یک پیوند نمادین در مکان target_file ایجاد می‌کنند که به مکان source_file اشاره دارد. .IP "mkdir directory_name" دستور mkdir دایرکتوری مشخص‌شده با عملوند directory_name را ایجاد می‌کند. .IP "mtime date file" دستور mtime آخرین زمان تغییر پرونده مشخص‌شده با عملوند file را تنظیم می‌کند. عبارت date می‌تواند انواع مختلفی از رشته‌های تاریخ باشد؛ برای جزئیات عبارت تاریخ، صفحه راهنمای \fIcurl_getdate(3)\fP را ببینید. (اضافه‌شده در 7.73.0) .IP pwd دستور pwd مسیر مطلق دایرکتوری کاری جاری را برمی‌گرداند. .IP "rename source target" دستور rename نام پرونده یا دایرکتوری مشخص‌شده با عملوند source را به مسیر مقصد مشخص‌شده با عملوند target تغییر می‌دهد. .IP "rm file" دستور rm پرونده مشخص‌شده با عملوند file را حذف می‌کند. .IP "rmdir directory" دستور rmdir ورودی دایرکتوری مشخص‌شده با عملوند directory را حذف می‌کند، به شرطی که خالی باشد. .IP "symlink source_file target_file" دستور ln را ببینید. .RE .IP گزینه \fI\-\-quote\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال: .nf curl --quote "DELE file" ftp://example.com/foo .fi همچنین \fI\-\-request\fP را ببینید. .IP "\-\-random\-file " گزینه منسوخ‌شده. این گزینه نادیده گرفته می‌شود (اضافه‌شده در 7.84.0). پیش از آن تنها در صورتی بر curl تأثیر داشت که برای استفاده از نسخه‌های قدیمی OpenSSL ساخته شده باشد. مسیر پرونده حاوی داده‌های تصادفی را مشخص کنید. این داده‌ها ممکن است برای مقداردهی اولیه (seed) موتور تصادفی در اتصالات SSL استفاده شوند. اگر \fI\-\-random\-file\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --random-file rubbish https://example.com .fi همچنین \fI\-\-egd\-file\fP را ببینید. .IP "\-r, \-\-range " (HTTP FTP SFTP FILE) دریافت یک محدوده بایتی (یعنی بخشی از یک سند) از یک سرور HTTP/1.1، FTP یا SFTP یا یک FILE محلی. محدوده‌ها را می‌توان به روش‌های مختلفی مشخص کرد. .RS .IP 0-499 ۵۰۰ بایت اول را مشخص می‌کند .IP 500-999 ۵۰۰ بایت دوم را مشخص می‌کند .IP -500 ۵۰۰ بایت آخر را مشخص می‌کند .IP 9500- بایت‌ها را از آفست ۹۵۰۰ به بعد مشخص می‌کند .IP 0-0,-1 تنها بایت اول و آخر را مشخص می‌کند(*)(HTTP) .IP 100-199,500-599 دو محدوده جداگانه 100\-بایتی را مشخص می‌کند(*) (HTTP) .RE .IP (*) = توجه داشته باشید که اگر چندین محدوده مشخص کنید و سرور از آن پشتیبانی کند، با یک پاسخ چندبخشی پاسخ می‌دهد که curl آن را همان‌طور که هست (as\-is) بازمی‌گرداند. این پاسخ علاوه بر بایت‌های درخواست‌شده، حاوی اطلاعات فراداده (meta information) نیز هست. تجزیه یا هرگونه تبدیل این پاسخ بر عهده فراخواننده است. تنها نویسه‌های رقمی (0\-9) در فیلدهای \(aqstart\(aq و \(aqstop\(aq در ساختار نحو محدوده \(aqstart\-stop\(aq معتبر هستند. اگر نویسه‌ای غیررقمی در محدوده داده شود، پاسخ سرور نامشخص خواهد بود و به پیکربندی سرور بستگی دارد. بسیاری از سرورهای HTTP/1.1 این ویژگی را فعال نکرده‌اند، به طوری که هنگام تلاش برای دریافت یک محدوده، curl در عوض کل سند را دریافت می‌کند. بارگیری‌های محدوده در FTP و SFTP تنها از نحو ساده \(aqstart\-stop\(aq پشتیبانی می‌کنند (به‌صورت اختیاری با حذف یکی از اعداد). استفاده در FTP به دستور توسعه‌یافته FTP یعنی SIZE بستگی دارد. هنگام استفاده از این گزینه برای بارگذاری‌های HTTP با POST یا PUT، عملکرد آن تضمین نمی‌شود. پروتکل HTTP هیچ روش استاندارد و سازگاری برای ازسرگیری بارگذاری ندارد و curl برای این منظور از مجموعه‌ای از هدرها استفاده می‌کند که زمانی اثبات شد برای برخی سرورها کار می‌کنند و برای کسانی که آن را مفید می‌دانند باقی گذاشته شده‌اند. این گزینه خط فرمان با \fI\-\-continue\-at\fP مانعة‌الجمع است: برای یک انتقال تنها می‌توانید از یکی از آن‌ها استفاده کنید. اگر \fI\-\-range\fP چندین بار ارائه شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --range 22-44 https://example.com .fi همچنین \fI\-\-continue\-at\fP و \fI\-\-append\fP را ببینید. .IP "\-\-rate " حداکثر بسامد انتقالی را مشخص می‌کند که به curl اجازه استفاده از آن را می‌دهید \- بر حسب تعداد شروع انتقال در واحد زمان (که گاهی نرخ درخواست نامیده می‌شود). بدون این گزینه، curl انتقال بعدی را در سریع‌ترین زمان ممکن آغاز می‌کند. اگر چندین URL داده شده باشد و یک انتقال سریع‌تر از نرخ مجاز به پایان برسد، curl برای حفظ نرخ درخواستی، تا زمان شروع انتقال بعدی منتظر می‌ماند. این گزینه هنگام استفاده از \fI\-\-parallel\fP هیچ اثری ندارد. نرخ درخواست به صورت "N/U" ارائه می‌شود که در آن N یک عدد صحیح و U یک واحد زمانی است. واحدهای پشتیبانی‌شده عبارتند از \(aqs\(aq (ثانیه)، \(aqm\(aq (دقیقه)، \(aqh\(aq (ساعت) و \(aqd\(aq (روز، مانند یک واحد ۲۴ ساعته). اگر "/U" مشخص نشود، واحد زمانی پیش‌فرض تعداد انتقال‌ها در ساعت است. اگر به curl گفته شود که ۱۰ درخواست در دقیقه را مجاز بداند، تا زمانی که ۶ ثانیه از شروع انتقال قبلی سپری نشود، درخواست بعدی را آغاز نمی‌کند. این قابلیت از دقت میلی‌ثانیه استفاده می‌کند. اگر بسامد مجاز بیشتر از ۱۰۰۰ در ثانیه تنظیم شود، در عوض بدون محدودیت اجرا می‌شود. هنگام تلاش مجدد برای انتقال‌ها، که با \fI\-\-retry\fP فعال می‌شود، منطق مجزای تأخیر تلاش مجدد استفاده می‌شود و نه این تنظیم. از نسخه 8.10.0 به بعد، می‌توانید تعداد واحدهای زمانی را در عبارت نرخ مشخص کنید. با "5/15s" کاری کنید curl بیش از ۵ انتقال در ۱۵ ثانیه انجام ندهد یا با "3/4h" آن را به ۳ انتقال در ۴ ساعت محدود کنید. هیچ فاصله‌ای مجاز نیست. این گزینه سراسری است و نیازی به مشخص کردن آن برای هر بار استفاده از \fI\-\-next\fP نیست. اگر \fI\-\-rate\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --rate 2/s https://example.com ... curl --rate 3/h https://example.com ... curl --rate 14/m https://example.com ... .fi در 7.84.0 اضافه شد. همچنین \fI\-\-limit\-rate\fP و \fI\-\-retry\-delay\fP را ببینید. .IP "\-\-raw" (HTTP) هنگام استفاده، تمام رمزگشایی‌های داخلی HTTP مربوط به محتوا یا کدگذاری‌های انتقال را غیرفعال کرده و در عوض باعث می‌شود آن‌ها دست‌نخورده و خام منتقل شوند. مشخص کردن چندباره \fI\-\-raw\fP اثر اضافه‌ای ندارد. دوباره با \-\-no-raw آن را غیرفعال کنید. مثال: .nf curl --raw https://example.com .fi همچنین \fI\-\-tr\-encoding\fP را ببینید. .IP "\-e, \-\-referer " (HTTP) نشانی (URL) ارجاع‌دهنده را در درخواست HTTP تنظیم می‌کند. البته این مورد را می‌توان با پرچم \fI\-\-header\fP نیز تنظیم کرد. هنگام استفاده همراه با \fI\-\-location\fP می‌توانید ";auto" را به URL گزینه \fI\-\-referer\fP ضمیمه کنید تا وقتی curl یک هدر Location: را دنبال می‌کند، به طور خودکار URL قبلی را تنظیم کند. رشته ";auto" حتی اگر \fI\-\-referer\fP اولیه‌ای را تنظیم نکرده باشید، می‌تواند به تنهایی استفاده شود. اگر \fI\-\-referer\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --referer "https://fake.example" https://example.com curl --referer "https://fake.example;auto" -L https://example.com curl --referer ";auto" -L https://example.com .fi همچنین \fI\-\-user\-agent\fP و \fI\-\-header\fP را ببینید. .IP "\-J, \-\-remote\-header\-name" (HTTP) به گزینه \fI\-\-remote\-name\fP می‌گوید به جای استخراج نام پرونده از URL، از نام پرونده مشخص‌شده توسط سرور در Content\-Disposition استفاده کند. اگر نام پرونده ارائه‌شده توسط سرور شامل یک مسیر باشد، پیش از استفاده از نام پرونده، آن مسیر حذف می‌شود. پرونده در دایرکتوری جاری، یا در دایرکتوری مشخص‌شده با \fI\-\-output\-dir\fP ذخیره می‌شود. اگر سرور نام پرونده‌ای را مشخص کند و پرونده‌ای با همان نام از قبل در دایرکتوری مقصد وجود داشته باشد، بازنویسی نمی‌شود و خطایی رخ می‌دهد \- مگر اینکه با استفاده از گزینه \fI\-\-clobber\fP به آن اجازه دهید. اگر سرور نام پرونده‌ای را مشخص نکند، این گزینه هیچ اثری نخواهد داشت. (هنوز) هیچ تلاشی برای رمزگشایی توالی‌های %\- در نام پرونده ارائه‌شده انجام نمی‌شود، بنابراین این گزینه ممکن است نام پرونده‌های نسبتاً غیرمنتظره‌ای به شما ارائه دهد. این قابلیت از نام موجود در فیلد "filename" استفاده می‌کند و هنوز از فیلد "filename*" (نام‌های پرونده با مجموعه‌نویسه‌های صریح) پشتیبانی نمی‌کند. از نسخه 8.19.0 به بعد، اگر هیچ هدر "Content\-Disposition:" نام پرونده‌ای ارائه ندهد، curl عقب‌گرد کرده و از نام پرونده استخراج‌شده از آخرین هدر بازهدایت استفاده می‌کند. \fBهشدار\fP: در استفاده از این گزینه، به‌ویژه در Windows، محتاط باشید. یک سرور سرکش می‌تواند نام یک پرونده DLL یا پرونده دیگری را برای شما ارسال کند که ممکن است به طور خودکار توسط Windows یا یک نرم‌افزار شخص ثالث بارگذاری شود. مشخص کردن چندباره \fI\-\-remote\-header\-name\fP اثر اضافه‌ای ندارد. دوباره با \-\-no-remote-header-name آن را غیرفعال کنید. مثال: .nf curl -OJ https://example.com/file .fi همچنین \fI\-\-remote\-name\fP را ببینید. .IP "\-O, \-\-remote\-name" خروجی را در یک پروندهٔ محلی هم‌نام با پروندهٔ دوری که دریافت می‌شود می‌نویسد. (تنها بخش نام پرونده از پروندهٔ دور استفاده می‌شود و مسیر آن حذف می‌گردد.) پرونده در دایرکتوری کاری فعلی ذخیره می‌شود. اگر می‌خواهید پرونده در دایرکتوری دیگری ذخیره شود، مطمئن شوید که پیش از فراخوانی curl با این گزینه دایرکتوری کاری فعلی را تغییر داده‌اید یا از \fI\-\-output\-dir\fP استفاده کنید. نام پروندهٔ دور برای ذخیره‌سازی، تنها از URL داده‌شده استخراج می‌شود و نه هیچ چیز دیگر، و اگر از قبل وجود داشته باشد رونویسی می‌شود. اگر می‌خواهید سرور بتواند نام پرونده را تعیین کند، به \fI\-\-remote\-header\-name\fP مراجعه کنید که می‌تواند علاوه بر این گزینه استفاده شود. اگر سرور نام پرونده را تعیین کند و آن نام از قبل وجود داشته باشد، رونویسی نمی‌شود. هیچ رمزگشایی URL روی نام پرونده انجام نمی‌شود. اگر نام دارای %20 یا سایر بخش‌های کدگذاری‌شدهٔ URL باشد، همان‌طور که هست (as\-is) به عنوان نام پرونده قرار می‌گیرد. می‌توانید از این گزینه به تعداد URLهایی که دارید استفاده کنید. پیش از curl 8.10.0، اگر URL با یک اسلش پایان می‌یافت curl یک خطا برمی‌گرداند، که به این معنی بود هیچ بخش نام پرونده‌ای در URL وجود ندارد. از نسخهٔ 8.10.0 به بعد، curl در این شرایط نام پرونده را روی آخرین بخش دایرکتوری از URL تنظیم می‌کند، یا اگر آن هم وجود نداشته باشد، روی "curl_response" (بدون پسوند) قرار می‌دهد. گزینهٔ \fI\-\-remote\-name\fP با یک URL منفرد مرتبط است. هنگامی که از چندین URL در یک خط فرمان استفاده می‌کنید، آن را برای هر URL یک بار به کار ببرید. مثال‌ها: .nf curl -O https://example.com/filename curl -O https://example.com/filename -O https://example.com/file2 .fi همچنین ببینید: \fI\-\-remote\-name\-all\fP، \fI\-\-output\-dir\fP و \fI\-\-remote\-header\-name\fP. .IP "\-\-remote\-name\-all" عملکرد پیش‌فرض را برای همهٔ URLهای داده‌شده تغییر می‌دهد تا طوری با آن‌ها برخورد شود که گویی برای هرکدام از \fI\-\-remote\-name\fP استفاده شده است. اگر می‌خواهید این رفتار را پس از استفاده از \fI\-\-remote\-name\-all\fP برای یک URL خاص غیرفعال کنید، باید از "\-o \-" یا \fI\-\-no\-remote\-name\fP استفاده کنید. ارائهٔ چندین‌بارهٔ \fI\-\-remote\-name\-all\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-remote-name-all غیرفعال کنید. مثال: .nf curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2 .fi همچنین ببینید: \fI\-\-remote\-name\fP. .IP "\-R, \-\-remote\-time" باعث می‌شود curl تلاش کند برچسب زمانی (timestamp) پروندهٔ دور در حال بارگیری را بیابد، و در صورت در دسترس بودن، کاری کند که پروندهٔ محلی همان برچسب زمانی را دریافت کند. ارائهٔ چندین‌بارهٔ \fI\-\-remote\-time\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-remote-time غیرفعال کنید. مثال: .nf curl --remote-time -o foo https://example.com .fi همچنین ببینید: \fI\-\-remote\-name\fP و \fI\-\-time\-cond\fP. .IP "\-\-remove\-on\-error" در صورت بروز خطا، پروندهٔ خروجی را حذف می‌کند؛ هنگامی که به curl گفته شده باشد خروجی را در یک پروندهٔ محلی ذخیره کند و با خطا مواجه شود. این کار مانع از آن می‌شود که curl در صورت بروز خطا در حین انتقال، یک پروندهٔ ناقص بر جای بگذارد. اگر خروجی یک پروندهٔ معمولی (regular file) نباشد، این گزینه هیچ اثری ندارد. گزینهٔ \fI\-\-continue\-at\fP نمی‌تواند همراه با \fI\-\-remove\-on\-error\fP استفاده شود. ارائهٔ چندین‌بارهٔ \fI\-\-remove\-on\-error\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-remove-on-error غیرفعال کنید. مثال: .nf curl --remove-on-error -o output https://example.com .fi افزوده‌شده در 7.83.0. همچنین ببینید: \fI\-\-fail\fP. .IP "\-X, \-\-request " متد مورد استفاده هنگام آغاز انتقال را تغییر می‌دهد. curl رشتهٔ ارائه‌شده را عیناً و بدون هیچ‌گونه پالایش یا سایر تدابیر حفاظتی در درخواست ارسال می‌کند. این موضوع شامل نویسه‌های فاصله و نویسه‌های کنترلی نیز می‌شود. .RS .IP HTTP یک متد درخواست سفارشی را برای استفاده هنگام برقراری ارتباط با سرور HTTP مشخص می‌کند. متد درخواستِ مشخص‌شده به جای متدی که در حالت عادی استفاده می‌شد (که پیش‌فرض آن \fIGET\fP است) به کار می‌رود. برای جزئیات و توضیحات، مشخصات HTTP 1.1 را مطالعه کنید. درخواست‌های رایج و اضافی دیگر HTTP شامل \fIPUT\fP و \fIDELETE\fP هستند، در حالی که فناوری‌های مرتبط مانند WebDAV متدهای \fIPROPFIND\fP، \fICOPY\fP، \fIMOVE\fP و موارد بیشتری را ارائه می‌دهند. به طور معمول به این گزینه نیازی ندارید. انواع درخواست‌های \fIGET\fP، \fIHEAD\fP، \fIPOST\fP و \fIPUT\fP معمولاً با استفاده از گزینه‌های اختصاصی خط فرمان فراخوانی می‌شوند. این گزینه تنها واژهٔ واقعیِ به‌کاررفته در درخواست HTTP را تغییر می‌دهد، و شیوهٔ رفتار curl را دگرگون نمی‌کند. برای نمونه اگر می‌خواهید یک درخواست مناسب HEAD ایجاد کنید، استفاده از \-X HEAD کافی نیست. باید از گزینهٔ \fI\-\-head\fP استفاده کنید. اگر از \fI\-\-location\fP استفاده شود، رشتهٔ متدی که با \fI\-\-request\fP تنظیم کرده‌اید برای همهٔ درخواست‌ها استفاده می‌شود، که می‌تواند زمانی که curl متد درخواست را مطابق با کدهای پاسخ 30x پروتکل HTTP \- و موارد مشابه \- تغییر نمی‌دهد، باعث عوارض جانبی ناخواسته (side\-effects) شود. در عوض، استفاده از \fI\-\-follow\fP را در ترکیب با \fI\-\-request\fP در نظر بگیرید. .IP FTP یک دستور سفارشی FTP را برای استفاده به‌جای \fILIST\fP هنگام فهرست‌کردن فایل‌ها با FTP مشخص می‌کند. .IP POP3 یک دستور سفارشی POP3 را برای استفاده به‌جای \fILIST\fP یا \fIRETR\fP مشخص می‌کند. .IP IMAP یک دستور سفارشی IMAP را برای استفاده به‌جای \fILIST\fP مشخص می‌کند. .IP SMTP یک دستور سفارشی SMTP را برای استفاده به‌جای \fIHELP\fP یا \fBVRFY\fP مشخص می‌کند. .RE .IP اگر \fI\-\-request\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال‌ها: .nf curl --request "DELETE" https://example.com curl -X NLST ftp://example.com/ .fi همچنین \fI\-\-request\-target\fP و \fI\-\-follow\fP را ببینید. .IP "\-\-request\-target " (HTTP) استفاده از یک مقصد (مسیر) جایگزین به‌جای استفاده از مسیر ارائه‌شده در URL. این گزینه به‌ویژه زمانی مفید است که می‌خواهید درخواست‌های HTTP بدون اسلش ابتدایی یا با داده‌های دیگری که از الگوی معمول URL پیروی نمی‌کنند (مانند \&"OPTIONS *")، ارسال شوند. curl رشته‌ای را که به آن می‌دهید عیناً و بدون هیچ‌گونه فیلتر یا محافظت دیگری در درخواست ارسال می‌کند. این شامل نویسه‌های فاصله و نویسه‌های کنترلی نیز می‌شود. اگر \fI\-\-request\-target\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --request-target "*" -X OPTIONS https://example.com .fi همچنین \fI\-\-request\fP را ببینید. .IP "\-\-resolve <[+]host:port:addr[,addr]...>" یک نشانی سفارشی برای یک جفت میزبان و پورت مشخص ارائه می‌دهد. با استفاده از این گزینه، می‌توانید کاری کنید که درخواست(های) curl از یک نشانی تعیین‌شده استفاده کنند و از به‌کارگیری نشانی‌ای که در حالت عادی تفکیک می‌شد جلوگیری نمایید. این گزینه را نوعی جایگزین /etc/hosts در خط فرمان در نظر بگیرید. شماره پورت باید همان شماره‌ای باشد که برای پروتکل خاص مورد استفادهٔ میزبان به کار می‌رود. این یعنی اگر بخواهید برای یک میزبان اما با پورت‌های مختلف نشانی تعیین کنید، به چندین ورودی نیاز خواهید داشت. با مشخص‌کردن "*" به‌عنوان میزبان، می‌توانید به curl بگویید که هر میزبانی با آن پورت مشخص را به نشانی تعیین‌شده تفکیک کند. نویسهٔ عام (Wildcard) در آخر تفکیک می‌شود، بنابراین هر \fI\-\-resolve\fP با میزبان و پورت خاص در ابتدا اعمال خواهد شد. نشانی تعیین‌شده توسط این گزینه حتی در صورتی که \fI\-\-ipv4\fP یا \fI\-\-ipv6\fP برای وادارکردن curl به استفاده از نسخهٔ دیگری از IP تنظیم شده باشد، استفاده می‌شود. با افزودن پیشوند \(aq+\(aq به ابتدای میزبان، می‌توانید کاری کنید که این ورودی پس از مهلت زمانی پیش‌فرض curl (۱ دقیقه) منقضی شود. توجه داشته باشید که این کار تنها برای انتقال‌های موازی طولانی‌مدت با تعداد زیادی فایل منطقی است. در چنین مواردی، در صورت استفاده از این گزینه، پس از انقضای مهلت زمانی، curl تلاش می‌کند میزبان را به همان روش معمول تفکیک کند. نشانی‌های IPv6 را درون [قلاب‌ها] وارد کنید. برای تغییر مسیر اتصال‌ها از یک نام میزبان خاص یا هر نام میزبانی، صرف‌نظر از شماره پورت، گزینهٔ \fI\-\-connect\-to\fP را در نظر داشته باشید. پشتیبانی از تفکیک با نویسهٔ عام در نسخهٔ 7.64.0 اضافه شد. پشتیبانی از پیشوند \(aq+\(aq در نسخهٔ 7.75.0 اضافه شد. پشتیبانی از تعیین بخش میزبان به‌صورت نشانی IPv6 در نسخهٔ 8.13.0 اضافه شد. \fI\-\-resolve\fP می‌تواند چندین بار در یک خط فرمان استفاده شود. مثال‌ها: .nf curl --resolve example.com:443:127.0.0.1 https://example.com curl --resolve example.com:443:[2001:db8::252f:efd6] https://example.com .fi همچنین \fI\-\-connect\-to\fP و \fI\-\-alt\-svc\fP را ببینید. .IP "\-\-retry " اگر هنگام تلاش curl برای انجام یک انتقال، خطای گذرا بازگردانده شود، قبل از انصراف به این تعداد بار تلاش مجدد می‌کند. تنظیم این عدد روی 0 باعث می‌شود curl هیچ تلاشی مجددی انجام ندهد (که حالت پیش‌فرض است). خطای گذرا به یکی از این موارد گفته می‌شود: اتمام مهلت زمانی (timeout)، کد پاسخ FTP 4xx یا کد پاسخ HTTP 408، 429، 500، 502، 503، 504، 522 یا 524. هنگامی که curl قصد تلاش مجدد برای یک انتقال را دارد، ابتدا یک ثانیه صبر می‌کند و سپس برای تمامی تلاش‌های بعدی، زمان انتظار را دو برابر می‌کند تا به ۱۰ دقیقه برسد؛ پس از آن، این مقدار به‌عنوان زمان تأخیر ثابت بین باقی‌ماندهٔ تلاش‌ها حفظ می‌شود. با استفاده از \fI\-\-retry\-delay\fP می‌توانید این الگوریتم عقب‌نشینی نمایی را غیرفعال کنید. همچنین \fI\-\-retry\-max\-time\fP را برای محدودکردن کل زمان مجاز برای تلاش‌های مجدد ببینید. برنامه curl در صورت وجود سرایند پاسخ Retry\-After: از آن پیروی می‌کند تا بداند چه زمانی تلاش بعدی را انجام دهد (در نسخهٔ 7.66.0 اضافه شد). اگر \fI\-\-retry\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --retry 7 https://example.com .fi همچنین \fI\-\-retry\-max\-time\fP، \fI\-\-retry\-connrefused\fP و \fI\-\-retry\-delay\fP را ببینید. .IP "\-\-retry\-all\-errors" تلاش مجدد در صورت بروز هرگونه خطا. این گزینه همراه با \fI\-\-retry\fP استفاده می‌شود. این گزینه حکم «پتک» در تلاش‌های مجدد را دارد. از این گزینه به‌صورت پیش‌فرض (برای نمونه در \fBcurlrc\fP خود) استفاده نکنید، چرا که ممکن است پیامدهای ناخواسته‌ای مانند ارسال یا دریافت داده‌های تکراری داشته باشد. از آن همراه با ورودی یا خروجی تغییرمسیریافته استفاده نکنید. شاید بهتر باشد مشکلات خاص خود را در یک اسکریپت شل مدیریت کنید. لطفاً مثال زیر را بخوانید. \fBهشدار\fP: برای سازگاری با سرور، curl تلاش می‌کند انتقال‌های ناموفق و ناپایدار را تا جای ممکن شبیه به نحوه آغاز اولیه‌شان تکرار کند، اما این کار با ورودی یا خروجی تغییرمسیریافته شدنی نیست. برای نمونه، پیش از تلاش مجدد، داده‌های خروجی یک انتقال ناقص و ناموفق را که در پرونده خروجی نوشته شده بود حذف می‌کند. با این حال، این موضوع برای داده‌های هدایت‌شده به یک لوله (| pipe) یا پرونده (> file) که بازنشانی نمی‌شوند، صدق نمی‌کند. اکیداً پیشنهاد می‌کنیم هنگام استفاده از این گزینه، خروجی را از طریق تغییر مسیر پردازش یا ذخیره نکنید، چرا که ممکن است داده‌های تکراری دریافت کنید. به‌طور پیش‌فرض اگر انتقال موفقیت‌آمیز باشد، curl برای انتقال‌هایی با کد پاسخ HTTP که نشان‌دهنده خطای HTTP است، خطایی برنمی‌گرداند. برای نمونه، اگر سرور پاسخ 404 Not Found بدهد و پاسخ به‌طور کامل دریافت شود، این یک خطا به شمار نمی‌آید. هنگامی که از \fI\-\-retry\fP استفاده می‌شود، curl روی برخی کدهای پاسخ HTTP که بیانگر خطاهای گذرا هستند دوباره تلاش می‌کند، اما این شامل اکثر کدهای پاسخ 4xx مانند 404 نمی‌شود. اگر می‌خواهید روی همه کدهای پاسخی که نشان‌دهنده خطاهای HTTP هستند (4xx و 5xx) تلاش مجدد انجام شود، آن را با \fI\-\-fail\fP ترکیب کنید. ارائه چندباره \fI\-\-retry\-all\-errors\fP تأثیر اضافه‌ای ندارد. با \-\-no-retry-all-errors دوباره آن را غیرفعال کنید. مثال: .nf curl --retry 5 --retry-all-errors https://example.com .fi در 7.71.0 افزوده شد. همچنین ببینید: \fI\-\-retry\fP. .IP "\-\-retry\-connrefused" علاوه بر سایر شرایط، ECONNREFUSED را نیز به عنوان یک خطای گذرا برای \fI\-\-retry\fP در نظر می‌گیرد. این گزینه همراه با \fI\-\-retry\fP استفاده می‌شود. در حالت عادی، اتصال ردشده یک خطای گذرا در نظر گرفته نمی‌شود و بنابراین در غیر این صورت تلاشی مجدد را آغاز نخواهد کرد. ارائه چندباره \fI\-\-retry\-connrefused\fP تأثیر اضافه‌ای ندارد. با \-\-no-retry-connrefused دوباره آن را غیرفعال کنید. مثال: .nf curl --retry-connrefused --retry 7 https://example.com .fi همچنین ببینید: \fI\-\-retry\fP و \fI\-\-retry\-all\-errors\fP. .IP "\-\-retry\-delay " باعث می‌شود curl هنگام شکست یک انتقال به دلیل خطای گذرا، پیش از هر تلاش مجدد این مدت زمان مکث کند (این گزینه الگوریتم پیش‌فرض زمان پس‌نشینی بین تلاش‌های مجدد را تغییر می‌دهد). این گزینه تنها زمانی کاربرد دارد که \fI\-\-retry\fP نیز استفاده شده باشد. تنظیم این تاخیر روی صفر باعث می‌شود curl از زمان پس‌نشینی پیش‌فرض استفاده کند. به‌طور پیش‌فرض، curl از مهلت زمانی با افزایش نمایی بین تلاش‌های مجدد استفاده می‌کند. از نسخه 8.16.0 curl به بعد، این گزینه زمان را به‌صورت یک عدد اعشاری برای کسرهایی از ثانیه می‌پذیرد. مقدار اعشاری باید با استفاده از نقطه (.) به عنوان جداکننده اعشار ارائه شود \- نه نسخه محلی، حتی اگر از جداکننده دیگری استفاده کند. اگر \fI\-\-retry\-delay\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده به کار می‌رود. مثال: .nf curl --retry-delay 5 --retry 7 https://example.com .fi همچنین ببینید: \fI\-\-retry\fP و \fI\-\-retry\-max\-time\fP. .IP "\-\-retry\-max\-time " تایمر تلاش مجدد پیش از اولین اقدام برای انتقال بازنشانی می‌شود. تلاش‌های مجدد تا زمانی که تایمر به این حد مشخص‌شده نرسیده باشد، طبق روال معمول (ببینید: \fI\-\-retry\fP) انجام می‌شوند. توجه داشته باشید که اگر تایمر به این حد نرسیده باشد، درخواست فرستاده می‌شود و حین اجرا ممکن است بیشتر از این بازه زمانی مشخص طول بکشد. برای محدود کردن حداکثر زمان یک درخواست تکی، از \fI\-\-max\-time\fP استفاده کنید. این گزینه را روی صفر تنظیم کنید تا تلاش‌های مجدد منقضی نشوند. تایمر تلاش مجدد بلافاصله پیش از اولین اقدام برای انتقال آغاز می‌شود و زمان سپری‌شده در مکث بین تلاش‌های مجدد (مانند تاخیرهای تعریف‌شده با \fI\-\-retry\-delay\fP) را نیز در بر می‌گیرد. پیش از شروع هر تلاش مجدد تازه، curl بررسی می‌کند که آیا زمان سپری‌شده به حد تعیین‌شده رسیده است یا خیر. اگر رسیده باشد، تلاش مجدد دیگری انجام نمی‌شود. به انتقالی که از قبل آغاز شده اجازه داده می‌شود تا پایان ادامه یابد، حتی اگر این امر باعث شود کل زمان واقعی (wall clock time) از حد مجاز فراتر رود. همچنین از \fI\-\-max\-time\fP برای تعیین سقف مدت‌زمان هر اقدام انتقال تکی استفاده کنید. از نسخه 8.16.0 curl به بعد، این گزینه زمان را به‌صورت یک عدد اعشاری برای کسرهایی از ثانیه می‌پذیرد. مقدار اعشاری باید با استفاده از نقطه (.) به عنوان جداکننده اعشار ارائه شود \- نه نسخه محلی، حتی اگر از جداکننده دیگری استفاده کند. اگر \fI\-\-retry\-max\-time\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده به کار می‌رود. مثال: .nf curl --retry-max-time 30 --retry 10 https://example.com .fi همچنین ببینید: \fI\-\-retry\fP و \fI\-\-retry\-delay\fP. .IP "\-\-sasl\-authzid " (LDAP IMAP POP3 SMTP) در طول احرازهویت SASL PLAIN، علاوه بر شناسه احرازهویت (\fBauthcid\fP) که توسط \fI\-\-user\fP مشخص شده است، از این شناسه مجازسازی (\fBauthzid\fP) استفاده کنید. اگر این گزینه مشخص نشود، سرور \fBauthzid\fP را از روی \fBauthcid\fP استخراج میکند، اما در صورت مشخص شدن، و بسته به پیادهسازی سرور، ممکن است برای دسترسی به صندوق دریافت کاربری دیگر که به این کاربر دسترسی آن داده شده است، یا مثلاً یک صندوق پستی مشترک استفاده شود. اگر \fI\-\-sasl\-authzid\fP چندین بار ارائه شود، آخرین مقدار تنظیمشده استفاده میشود. مثال: .nf curl --sasl-authzid zid imap://example.com/ .fi در نسخه 7.66.0 افزوده شد. همچنین ببینید \fI\-\-login\-options\fP. .IP "\-\-sasl\-ir" (LDAP IMAP POP3 SMTP) پاسخ اولیه را در احرازهویت SASL فعال میکند. چنین «پاسخ اولیهای» پیامی است که پس از انتخاب سازوکار احرازهویت توسط کلاینت، از سوی کلاینت به سرور ارسال میشود. ارائه چندین باره \fI\-\-sasl\-ir\fP تأثیر اضافهای ندارد. با \-\-no-sasl-ir دوباره آن را غیرفعال کنید. مثال: .nf curl --sasl-ir imap://example.com/ .fi همچنین ببینید \fI\-\-sasl\-authzid\fP. .IP "\-\-service\-name " نام سرویس را برای SPNEGO تنظیم میکند. اگر \fI\-\-service\-name\fP چندین بار ارائه شود، آخرین مقدار تنظیمشده استفاده میشود. مثال: .nf curl --service-name sockd/server https://example.com .fi همچنین ببینید \fI\-\-negotiate\fP و \fI\-\-proxy\-service\-name\fP. .IP "\-S, \-\-show\-error" هنگامی که همراه با \fI\-\-silent\fP استفاده شود، باعث میشود در صورت بروز خطا یا شکست، curl یک پیام خطا نمایش دهد. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. ارائه چندین باره \fI\-\-show\-error\fP تأثیر اضافهای ندارد. با \-\-no-show-error دوباره آن را غیرفعال کنید. مثال: .nf curl --show-error --silent https://example.com .fi همچنین ببینید \fI\-\-no\-progress\-meter\fP. .IP "\-i, \-\-show\-headers" (HTTP FTP) سرایندهای پاسخ را در خروجی نمایش میدهد. سرایندهای پاسخ HTTP میتوانند شامل مواردی مانند نام سرور، کوکیها، تاریخ سند، نسخه HTTP و غیره باشند. در پروتکلهای غیر HTTP، منظور از «سرایندها» سایر ارتباطات سرور است. این گزینه باعث میشود سرایندهای پاسخ در همان جریان/خروجی دادهها ذخیره شوند. گزینه \fI\-\-dump\-header\fP برای ذخیره سرایندها در یک جریان جداگانه وجود دارد. هنگامی که سرایندهای HTTP به یک tty خروجی داده میشوند، curl ممکن است از کدهای فرار استفاده کند تا نام فیلدهای سرایند به صورت پررنگ (bold) نمایش داده شوند و نشانیهای وب در سرایندهای "Location:" به طور ویژهای متمایز گردند. استفاده از کدهای فرار ترمینال را با \fI\-\-no\-styled\-output\fP غیرفعال کنید. (این به معنای استفاده از گزینه \fI\-\-styled\-output\fP همراه با پیشوند \&"\fI\-\-no\-\fP" برای غیرفعال کردن آن است.) برای مشاهده سرایندهای درخواست، گزینه \fI\-\-verbose\fP را در نظر بگیرید. پیش از نسخه 7.75.0، اگر \fI\-\-fail\fP در ترکیب با این گزینه استفاده میشد و خطایی توسط سرور گزارش میگردید، curl سرایندها را چاپ نمیکرد. این گزینه پیش از نسخه 8.10.0 با نام \fI\-\-include\fP خوانده میشد. نام قبلی همچنان کاربردی و فعال است. ارائه چندین باره \fI\-\-show\-headers\fP تأثیر اضافهای ندارد. با \-\-no-show-headers دوباره آن را غیرفعال کنید. مثال: .nf curl -i https://example.com .fi همچنین ببینید \fI\-\-verbose\fP و \fI\-\-dump\-header\fP. .IP "\-\-sigalgs " (TLS) الگوریتمهای امضای مشخصی را برای استفاده هنگام برقراری نشست SSL مطابق با RFC 5246، بخش 7.4.1.4.1 تنظیم میکند. یک الگوریتم میتواند از یک جفت الگوریتم امضا و الگوریتم هش که با یک \&"+" از هم جدا شدهاند (مانند "ECDSA+SHA224")، یا نام طرح امضای TLS 1.3 آن (مانند "ed25519") استفاده کند. میتوان چندین الگوریتم را با جدا کردن آنها توسط ":" ارائه داد (مانند "DSA+SHA256:rsa_pss_pss_sha256"). این پارامتر به صورت "\-sigalgs" در ابزارهای "s_client" و "s_server" متعلق به OpenSSL در دسترس است. گزینه \&"\fI\-\-sigalgs\fP" به نسخهای از curl که بر پایه OpenSSL است اجازه میدهد اتصالهای SSL را دقیقاً با همان الگوریتمهای امضای درخواستی کلاینت برقرار کند و از مذاکرات غیرشفاف بین کلاینت و سرور جلوگیری مینماید. اگر این گزینه تنظیم شود، فهرست پیشفرض الگوریتمهای امضا که در OpenSSL تعبیه شده است، نادیده گرفته میشود. اگر \fI\-\-sigalgs\fP چندین بار ارائه شود، آخرین مقدار تنظیمشده استفاده میشود. مثال: .nf curl --sigalgs ecdsa_secp256r1_sha256 https://example.com .fi در نسخه 8.14.0 افزوده شد. همچنین ببینید \fI\-\-ciphers\fP. .IP "\-s, \-\-silent" حالت بی‌صدا یا ساکت. نشانگر پیشرفت، پیام‌های یادداشت، پیام‌های هشدار یا پیام‌های خطا را نمایش نمی‌دهد. curl را بی‌صدا می‌کند. همچنان داده‌هایی را که درخواست کرده‌اید خروجی می‌دهد، که اگر آن را تغییر مسیر ندهید حتی ممکن است در terminal/stdout نمایش داده شود. برای غیرفعال کردن نشانگر پیشرفت و در عین حال نمایش پیام‌های خطا، علاوه بر این گزینه از \fI\-\-show\-error\fP استفاده کنید. ارائه چندباره \fI\-\-silent\fP اثر اضافه‌ای ندارد. با \-\-no-silent دوباره آن را غیرفعال کنید. مثال: .nf curl -s https://example.com .fi همچنین \fI\-\-verbose\fP، \fI\-\-stderr\fP و \fI\-\-no\-progress\-meter\fP را ببینید. .IP "\-\-skip\-existing" اگر هنگام درخواست دانلود، یک فایل محلی موجود باشد، از عملیات صرف‌نظر می‌شود. توجه داشته باشید که curl نمی‌تواند بداند که آیا فایل محلی قبلاً به‌درستی دانلود شده است، یا اینکه ناقص است و غیره؛ تنها وجود داشتن یا نداشتن نام فایل در سامانه فایل را تشخیص می‌دهد و در صورت وجود، از انتقال صرف‌نظر می‌کند. ارائه چندباره \fI\-\-skip\-existing\fP اثر اضافه‌ای ندارد. با \-\-no-skip-existing دوباره آن را غیرفعال کنید. مثال: .nf curl --skip-existing --output local/dir/file https://example.com .fi در 8.10.0 اضافه شد. همچنین \fI\-\-output\fP، \fI\-\-remote\-name\fP و \fI\-\-no\-clobber\fP را ببینید. .IP "\-\-socks4 " از پراکسی SOCKS4 مشخص‌شده استفاده کنید. اگر شماره پورت مشخص نشده باشد، پورت 1080 فرض می‌شود. استفاده از این نوع سوکت باعث می‌شود curl نام میزبان را تحلیل کرده و نشانی را به پراکسی ارسال کند. برای تعیین پراکسی روی یک Unix domain socket، از localhost برای host استفاده کرده و مسیر مطلق سوکت دامنه را ضمیمه کنید. برای مثال: \&"socks4://localhost/path/to/socket.sock" (طرح‌واره یا scheme می‌تواند حذف شود). این گزینه هرگونه استفاده قبلی از \fI\-\-proxy\fP را لغو می‌کند، چرا که این گزینه‌ها مانعة‌الجمع هستند. این گزینه زائد است چرا که می‌توانید با استفاده از یک پیشوند پروتکل "socks4://"، یک پراکسی socks4 را با \fI\-\-proxy\fP مشخص کنید. می‌توان از \fI\-\-preproxy\fP برای مشخص کردن یک پراکسی SOCKS هم‌زمان با استفاده از پراکسی به همراه یک پراکسی HTTP/HTTPS استفاده کرد. در چنین حالتی، curl ابتدا به پراکسی SOCKS وصل می‌شود و سپس (از طریق SOCKS) به پراکسی HTTP یا HTTPS متصل می‌گردد. اگر \fI\-\-socks4\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --socks4 hostname:4096 https://example.com .fi این گزینه با \fI\-\-proxy\fP، \fI\-\-socks4a\fP، \fI\-\-socks5\fP و \fI\-\-socks5\-hostname\fP مانعة‌الجمع است. همچنین \fI\-\-socks4a\fP، \fI\-\-socks5\fP و \fI\-\-socks5\-hostname\fP را ببینید. .IP "\-\-socks4a " از پراکسی SOCKS4a مشخص‌شده استفاده کنید. اگر شماره پورت مشخص نشده باشد، پورت 1080 فرض می‌شود. این گزینه از پراکسی می‌خواهد که نام میزبان را تحلیل کند. برای تعیین پراکسی روی یک Unix domain socket، از localhost برای host استفاده کرده و مسیر مطلق سوکت دامنه را ضمیمه کنید. برای مثال: \&"socks4a://localhost/path/to/socket.sock" (طرح‌واره یا scheme می‌تواند حذف شود). این گزینه هرگونه استفاده قبلی از \fI\-\-proxy\fP را لغو می‌کند، چرا که این گزینه‌ها مانعة‌الجمع هستند. این گزینه زائد است چرا که می‌توانید با استفاده از یک پیشوند پروتکل "socks4a://"، یک پراکسی socks4a را با \fI\-\-proxy\fP مشخص کنید. می‌توان از \fI\-\-preproxy\fP برای مشخص کردن یک پراکسی SOCKS هم‌زمان با استفاده از \fI\-\-proxy\fP به همراه یک پراکسی HTTP/HTTPS استفاده کرد. در چنین حالتی، curl ابتدا به پراکسی SOCKS وصل می‌شود و سپس (از طریق SOCKS) به پراکسی HTTP یا HTTPS متصل می‌گردد. اگر \fI\-\-socks4a\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --socks4a hostname:4096 https://example.com .fi این گزینه با \fI\-\-proxy\fP، \fI\-\-socks4\fP، \fI\-\-socks5\fP و \fI\-\-socks5\-hostname\fP مانعة‌الجمع است. همچنین \fI\-\-socks4\fP، \fI\-\-socks5\fP و \fI\-\-socks5\-hostname\fP را ببینید. .IP "\-\-socks5 " از پراکسی SOCKS5 مشخص‌شده استفاده کنید \- اما نام میزبان را به صورت محلی تحلیل کنید. اگر شماره پورت مشخص نشده باشد، پورت 1080 فرض می‌شود. برای تعیین پراکسی روی یک Unix domain socket، از localhost برای host استفاده کرده و مسیر مطلق سوکت دامنه را ضمیمه کنید. برای مثال: \&"socks5://localhost/path/to/socket.sock" (طرح‌واره یا scheme می‌تواند حذف شود). این گزینه هرگونه استفاده قبلی از \fI\-\-proxy\fP را لغو می‌کند، چرا که این گزینه‌ها مانعة‌الجمع هستند. این گزینه زائد است چرا که می‌توانید با استفاده از یک پیشوند پروتکل "socks5://"، یک پراکسی socks5 را با \fI\-\-proxy\fP مشخص کنید. می‌توان از \fI\-\-preproxy\fP برای مشخص کردن یک پراکسی SOCKS هم‌زمان با استفاده از \fI\-\-proxy\fP به همراه یک پراکسی HTTP/HTTPS استفاده کرد. در چنین حالتی، curl ابتدا به پراکسی SOCKS وصل می‌شود و سپس (از طریق SOCKS) به پراکسی HTTP یا HTTPS متصل می‌گردد. این گزینه با FTPS یا LDAP کار نمی‌کند. اگر \fI\-\-socks5\fP چندین بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال‌ها: .nf curl --socks5 proxy.example:7000 https://example.com curl --socks5 localhost/path/unix-domain https://example.com .fi این گزینه با \fI\-\-proxy\fP، \fI\-\-socks4\fP، \fI\-\-socks4a\fP و \fI\-\-socks5\-hostname\fP مانعة‌الجمع است. همچنین \fI\-\-socks5\-hostname\fP و \fI\-\-socks4a\fP را ببینید. .IP "\-\-socks5\-basic" هنگام اتصال به یک پروکسی SOCKS5 از احراز هویت نام کاربری/گذرواژه استفاده کنید. احراز هویت نام کاربری/گذرواژه به‌طور پیش‌فرض فعال است. برای اجبار احراز هویت GSS\-API در پروکسی‌های SOCKS5 از \fI\-\-socks5\-gssapi\fP استفاده کنید. مشخص کردن چندبارهٔ \fI\-\-socks5\-basic\fP اثر اضافه‌ای ندارد. مثال: .nf curl --socks5-basic --socks5 hostname:4096 https://example.com .fi همچنین \fI\-\-socks5\fP را ببینید. .IP "\-\-socks5\-gssapi" (GSS/kerberos) هنگام اتصال به یک پروکسی SOCKS5 از احراز هویت GSS\-API استفاده کنید. احراز هویت GSS\-API به‌طور پیش‌فرض فعال است (اگر curl با پشتیبانی از GSS\-API کامپایل شده باشد). برای اجبار احراز هویت نام کاربری/گذرواژه در پروکسی‌های SOCKS5 از \fI\-\-socks5\-basic\fP استفاده کنید. مشخص کردن چندبارهٔ \fI\-\-socks5\-gssapi\fP اثر اضافه‌ای ندارد. با \-\-no-socks5-gssapi دوباره آن را غیرفعال کنید. مثال: .nf curl --socks5-gssapi --socks5 hostname:4096 https://example.com .fi همچنین \fI\-\-socks5\fP را ببینید. .IP "\-\-socks5\-gssapi\-nec" (GSS/kerberos) به‌عنوان بخشی از مذاکرهٔ GSS\-API یک حالت حفاظت مذاکره می‌شود. سند RFC 1961 در بخش‌های 4.3/4.4 می‌گوید که باید محافظت شود، اما پیاده‌سازی مرجع NEC این کار را انجام نمی‌دهد. گزینهٔ \fI\-\-socks5\-gssapi\-nec\fP امکان تبادل محافظت‌نشدهٔ مذاکرهٔ حالت حفاظت را فراهم می‌کند. مشخص کردن چندبارهٔ \fI\-\-socks5\-gssapi\-nec\fP اثر اضافه‌ای ندارد. با \-\-no-socks5-gssapi-nec دوباره آن را غیرفعال کنید. مثال: .nf curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com .fi همچنین \fI\-\-socks5\fP را ببینید. .IP "\-\-socks5\-gssapi\-service " نام سرویس را برای یک سرور socks تنظیم کنید. مقدار پیش‌فرض \fBrcmd/server\-fqdn\fP است. اگر \fI\-\-socks5\-gssapi\-service\fP چند بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com .fi همچنین \fI\-\-socks5\fP را ببینید. .IP "\-\-socks5\-hostname " از پروکسی SOCKS5 مشخص‌شده استفاده کنید (و اجازه دهید پروکسی نام میزبان را حل کند). اگر شماره پورت مشخص نشود، پورت 1080 در نظر گرفته می‌شود. برای تعیین پروکسی روی یک سوکت دامنه یونیکس، از localhost برای میزبان استفاده کرده و مسیر مطلق به سوکت دامنه را به آن اضافه کنید. برای مثال: \&"socks5h://localhost/path/to/socket.sock" (می‌توان طرحواره را حذف کرد). این گزینه هرگونه استفادهٔ قبلی از \fI\-\-proxy\fP را لغو می‌کند، چرا که این دو مانعةالجمع هستند. این گزینه زائد است چرا که می‌توانید با استفاده از یک پیشوند پروتکل "socks5h://" در \fI\-\-proxy\fP یک پروکسی socks5 با نام میزبان را مشخص کنید. می‌توان از \fI\-\-preproxy\fP برای مشخص کردن یک پروکسی SOCKS هم‌زمان با استفاده از \fI\-\-proxy\fP برای یک پروکسی HTTP/HTTPS استفاده کرد. در چنین حالتی، curl ابتدا به پروکسی SOCKS متصل شده و سپس (از طریق SOCKS) به پروکسی HTTP یا HTTPS متصل می‌شود. اگر \fI\-\-socks5\-hostname\fP چند بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --socks5-hostname proxy.example:7000 https://example.com .fi این گزینه با \fI\-\-proxy\fP، \fI\-\-socks4\fP، \fI\-\-socks4a\fP و \fI\-\-socks5\fP مانعةالجمع است. همچنین \fI\-\-socks5\fP و \fI\-\-socks4a\fP را ببینید. .IP "\-Y, \-\-speed\-limit " اگر یک انتقال برای تعداد ثانیه‌های مشخصی کندتر از این سرعت تعیین‌شده (بر حسب بایت در ثانیه) باشد، لغو می‌شود. دورهٔ زمانی با \fI\-\-speed\-time\fP تنظیم می‌شود و به‌طور پیش‌فرض 30 ثانیه است. اگر \fI\-\-speed\-limit\fP چند بار مشخص شود، آخرین مقدار تعیین‌شده استفاده می‌شود. مثال: .nf curl --speed-limit 300 --speed-time 10 https://example.com .fi همچنین \fI\-\-speed\-time\fP، \fI\-\-limit\-rate\fP و \fI\-\-max\-time\fP را ببینید. .IP "\-y, \-\-speed\-time " اگر سرعت یک انتقال در طول بازه زمانی speed\-time کمتر از مقدار بایت بر ثانیه تعیین‌شده در speed\-limit باشد، انتقال متوقف و لغو می‌شود. اگر speed\-time استفاده شود، مقدار پیش‌فرض speed\-limit برابر ۱ خواهد بود مگر اینکه با \fI\-\-speed\-limit\fP مقدار دیگری تعیین شده باشد. این گزینه سرعت انتقال‌ها را در هر دو جهت مهار می‌کند اما تاثیری بر کندی در اتصال اولیه (اتصال‌های کند) ندارد. اگر این موضوع برای شما اهمیت دارد، از گزینه \fI\-\-connect\-timeout\fP استفاده کنید. اگر \fI\-\-speed\-time\fP چندین بار مشخص شود، آخرین مقدار اعمال خواهد شد. مثال: .nf curl --speed-limit 300 --speed-time 10 https://example.com .fi همچنین ببینید: \fI\-\-speed\-limit\fP و \fI\-\-limit\-rate\fP. .IP "\-\-ssl" (FTP IMAP POP3 SMTP LDAP) هشدار: این گزینه ناامن تلقی می‌شود. در صورت امکان از \fI\-\-ssl\-reqd\fP استفاده کنید تا اطمینان حاصل شود curl اتصال را به یک ارتباط امن ارتقا می‌دهد. تلاش برای استفاده از SSL/TLS برای اتصال \- معمولاً به دلیل دستورات مورد استفاده از آن با عنوان STARTTLS یا STLS یاد می‌شود. اگر سرور از SSL/TLS پشتیبانی نکند، اتصال به حالت غیرامن بازمی‌گردد. همچنین به \fI\-\-ftp\-ssl\-control\fP و \fI\-\-ssl\-reqd\fP برای سطوح مختلف رمزنگاری مورد نیاز مراجعه کنید. این گزینه در LDAP پشتیبانی می‌شود (اضافه شده در نسخه 7.81.0). این قابلیت در بک‌اند OpenLDAP کاملاً پشتیبانی شده اما در بک‌اند عمومی ldap نادیده گرفته می‌شود. لطفاً توجه داشته باشید که اگر مذاکره امن ناموفق باشد، سرور ممکن است اتصال را ببندد. در صورت تعیین شدن، این گزینه بر \fI\-\-ftp\-ssl\-control\fP اولویت دارد. این گزینه قبلاً با نام \fI\-\-ftp\-ssl\fP شناخته می‌شد. آن نام هنوز قابل استفاده است اما ممکن است در نسخه‌های آینده حذف شود. استفاده چندباره از \fI\-\-ssl\fP هیچ تاثیر مضاعفی ندارد. برای غیرفعال کردن مجدد آن از \-\-no-ssl استفاده کنید. مثال: .nf curl --ssl pop3://example.com .fi همچنین ببینید: \fI\-\-ssl\-reqd\fP، \fI\-\-insecure\fP و \fI\-\-ciphers\fP. .IP "\-\-ssl\-allow\-beast" (TLS) نقص امنیتی پروتکل TLS1.0 موسوم به BEAST را دور نزنید (راهکار اصلاحی را اعمال نکنید). اگر از این گزینه استفاده نشود، لایه TLS ممکن است از راهکارهایی استفاده کند که مشخص شده در برخی پیاده‌سازی‌های قدیمی سرورها مشکلات سازگاری متقابل ایجاد می‌کند. این گزینه فقط شیوه عملکرد TLS 1.0 در curl را تغییر می‌دهد و هیچ تاثیری بر نسخه‌های بالاتر TLS ندارد. \fBهشدار\fP: این گزینه امنیت TLS را کاهش می‌دهد و با استفاده از این گزینه شما دقیقاً همین رفتار را درخواست می‌کنید. استفاده چندباره از \fI\-\-ssl\-allow\-beast\fP هیچ تاثیر مضاعفی ندارد. برای غیرفعال کردن مجدد آن از \-\-no-ssl-allow-beast استفاده کنید. مثال: .nf curl --ssl-allow-beast https://example.com .fi همچنین ببینید: \fI\-\-proxy\-ssl\-allow\-beast\fP و \fI\-\-insecure\fP. .IP "\-\-ssl\-auto\-client\-cert" (TLS) (Schannel) به طور خودکار یک گواهی کلاینت را برای احراز هویت در صورت درخواست سرور پیدا کرده و استفاده می‌کند. از آنجا که سرور می‌تواند هر گواهی دارای پشتیبانی از احراز هویت کلاینت در مخزن گواهی سیستم‌عامل را درخواست کند، این امر ممکن است نقض حریم خصوصی و غیرمنتظره باشد. استفاده چندباره از \fI\-\-ssl\-auto\-client\-cert\fP هیچ تاثیر مضاعفی ندارد. برای غیرفعال کردن مجدد آن از \-\-no-ssl-auto-client-cert استفاده کنید. مثال: .nf curl --ssl-auto-client-cert https://example.com .fi اضافه شده در نسخه 7.77.0. همچنین ببینید: \fI\-\-proxy\-ssl\-auto\-client\-cert\fP. .IP "\-\-ssl\-no\-revoke" (TLS) (Schannel) بررسی ابطال گواهی را غیرفعال می‌کند. هشدار: این گزینه امنیت SSL را کاهش می‌دهد و با استفاده از این پرچم شما دقیقاً همین رفتار را درخواست می‌کنید. استفاده چندباره از \fI\-\-ssl\-no\-revoke\fP هیچ تاثیر مضاعفی ندارد. برای غیرفعال کردن مجدد آن از \-\-no-ssl-no-revoke استفاده کنید. مثال: .nf curl --ssl-no-revoke https://example.com .fi همچنین ببینید: \fI\-\-crlfile\fP. .IP "\-\-ssl\-reqd" (FTP IMAP POP3 SMTP LDAP) الزام استفاده از SSL/TLS برای برقراری اتصال \- که اغلب به دلیل دستورات مربوطه به آن STARTTLS یا STLS گفته می‌شود. در صورتی که نتوان انتقال را برای استفاده از SSL/TLS ارتقا داد، اتصال قطع می‌شود. این گزینه در LDAP پشتیبانی می‌شود (اضافه‌شده در 7.81.0). این قابلیت به‌طور کامل توسط بک‌اند OpenLDAP پشتیبانی شده و در صورت نیاز به TLS صریح (explicit)، توسط بک‌اند عمومی ldap رد می‌شود. اگر از یک طرحواره URL استفاده کنید که خودبه‌خود متضمن استفاده فوری و ضمنی از TLS باشد، مانند FTPS، IMAPS، POP3S، SMTPS و LDAPS، این گزینه غیرضروری است. چنین انتقالی در صورتی که دست‌تکانی TLS ناموفق باشد، همواره با شکست مواجه می‌شود. این گزینه پیش‌تر با عنوان \fI\-\-ftp\-ssl\-reqd\fP شناخته می‌شد. ارائه چندباره \fI\-\-ssl\-reqd\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-ssl-reqd دوباره آن را غیرفعال کنید. مثال: .nf curl --ssl-reqd ftp://example.com .fi همچنین \fI\-\-ssl\fP و \fI\-\-insecure\fP را ببینید. .IP "\-\-ssl\-revoke\-best\-effort" (TLS) (Schannel) نادیده گرفتن بررسی‌های ابطال گواهی، هنگامی که این بررسی‌ها به دلیل مفقود یا آفلاین بودن نقاط توزیع فهرست‌های بررسی ابطال با شکست مواجه می‌شوند. ارائه چندباره \fI\-\-ssl\-revoke\-best\-effort\fP هیچ اثر اضافه‌ای ندارد. با \-\-no-ssl-revoke-best-effort دوباره آن را غیرفعال کنید. مثال: .nf curl --ssl-revoke-best-effort https://example.com .fi اضافه‌شده در 7.70.0. همچنین \fI\-\-crlfile\fP و \fI\-\-insecure\fP را ببینید. .IP "\-\-ssl\-sessions " (TLS) **هشدار**: این گزینه آزمایشی است. در محیط عملیاتی استفاده نکنید. پیش از شروع هرگونه انتقال، از پرونده مشخص‌شده برای بارگذاری بلیت‌های نشست SSL در حافظه پنهان curl استفاده کنید. در پایان یک اجرای موفقیت‌آمیز curl، بلیت‌های ذخیره‌شده نشست SSL در پرونده ذخیره می‌شوند و جایگزین هرگونه محتوای پیشین خواهند شد. نیازی به وجود داشتن پرونده از قبل نیست، اما اگر curl قادر به ایجاد آن نباشد خطایی گزارش می‌دهد. بلیت‌های بارگذاری‌شده استفاده‌نشده مجدداً ذخیره می‌شوند، مگر اینکه جایگزین شده یا به دلایل کمبود فضا از حافظه پنهان پاکسازی شوند. استفاده از یک پرونده نشست به "\fI\-\-tls\-earlydata\fP" اجازه می‌دهد در صورت یافتن یک نشست SSL با این قابلیت، نخستین درخواست را در حالت "0\-RTT" ارسال کند. توجه داشته باشید که ممکن است سرور از داده‌های اولیه (early data) پشتیبانی نکند. همچنین توجه داشته باشید که داده‌های اولیه، محرمانگی پیشرو (forward secrecy) فراهم نمی‌کنند، یعنی به همان اندازه امن نیستند. بلیت‌های نشست SSL به‌صورت متن کدگذاری‌شده با base64 ذخیره می‌شوند و هر بلیت در خط مخصوص به خود قرار دارد. نام‌های میزبان از نظر رمزنگاری سالت‌گذاری و هش می‌شوند. اگرچه این کار مانع از آن می‌شود که کسی بتواند به‌راحتی میزبان‌های مورد تماس شما را ببیند، اما همچنان می‌توان بررسی کرد که آیا یک نام میزبان خاص با یکی از مقادیر مطابقت دارد یا خیر. این ویژگی نیازمند آن است که libcurl زیرین با فعال بودن قابلیت آزمایشی درون‌ریزی/برون‌ریزی نشست SSL موسوم به (SSLS\-EXPORT) ساخته شده باشد. اگر \fI\-\-ssl\-sessions\fP چندین بار ارائه شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --ssl-sessions sessions.txt https://example.com .fi اضافه‌شده در 8.12.0. همچنین \fI\-\-tls\-earlydata\fP را ببینید. .IP "\-2, \-\-sslv2" (SSL) این گزینه سابقاً از curl می‌خواست که از SSLv2 استفاده کند، اما اکنون نادیده گرفته می‌شود (اضافه‌شده در 7.77.0). پروتکل SSLv2 به‌طور گسترده ناامن دانسته می‌شود (RFC 6176 را ببینید). ارائه چندباره \fI\-\-sslv2\fP هیچ اثر اضافه‌ای ندارد. مثال: .nf curl --sslv2 https://example.com .fi برای اینکه \fI\-\-sslv2\fP کار کند، لازم است که libcurl زیرین برای پشتیبانی از TLS ساخته شده باشد. این گزینه با \fI\-\-sslv3\fP، \fI\-\-tlsv1\fP، \fI\-\-tlsv1.1\fP و \fI\-\-tlsv1.2\fP مانعة‌الجمع است. همچنین \fI\-\-http1.1\fP و \fI\-\-http2\fP را ببینید. .IP "\-3, \-\-sslv3" (SSL) این گزینه سابقاً از curl می‌خواست که از SSLv3 استفاده کند، اما اکنون نادیده گرفته می‌شود (اضافه‌شده در 7.77.0). پروتکل SSLv3 به‌طور گسترده ناامن دانسته می‌شود (RFC 7568 را ببینید). ارائه چندباره \fI\-\-sslv3\fP هیچ اثر اضافه‌ای ندارد. مثال: .nf curl --sslv3 https://example.com .fi برای اینکه \fI\-\-sslv3\fP کار کند، لازم است که libcurl زیرین برای پشتیبانی از TLS ساخته شده باشد. این گزینه با \fI\-\-sslv2\fP، \fI\-\-tlsv1\fP، \fI\-\-tlsv1.1\fP و \fI\-\-tlsv1.2\fP مانعة‌الجمع است. همچنین \fI\-\-http1.1\fP و \fI\-\-http2\fP را ببینید. .IP "\-\-stderr " هدایت تمامی داده‌های ارسالی به stderr به پرونده مشخص‌شده به جای آن. اگر نام پرونده صرفاً یک \(aq\-\(aq باشد، به جای آن در stdout نوشته می‌شود. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. اگر \fI\-\-stderr\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده خواهد شد. مثال: .nf curl --stderr output.txt https://example.com .fi همچنین ببینید: \fI\-\-verbose\fP و \fI\-\-silent\fP. .IP "\-\-styled\-output" فعال‌سازی استفاده خودکار از قلم درشت (bold) هنگام نوشتن سرآمدهای HTTP در ترمینال. برای خاموش کردن آن از \fI\-\-no\-styled\-output\fP استفاده کنید. خروجی قالب‌بندی‌شده نیازمند ترمینالی است که از قلم‌های درشت پشتیبانی کند. این ویژگی به دلیل فقدان این قابلیت، در curl برای Windows موجود نیست. این گزینه سراسری است و نیازی نیست برای هر بار استفاده از \fI\-\-next\fP مشخص شود. ارائه چندباره \fI\-\-styled\-output\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-styled-output غیرفعال کنید. مثال: .nf curl --styled-output -I https://example.com .fi همچنین ببینید: \fI\-\-head\fP و \fI\-\-verbose\fP. .IP "\-\-suppress\-connect\-headers" هنگامی که از \fI\-\-proxytunnel\fP استفاده می‌شود و یک درخواست CONNECT ارسال می‌گردد، سرآمدهای پاسخ CONNECT پروکسی را در خروجی نمایش ندهید. این گزینه برای استفاده به همراه \fI\-\-dump\-header\fP یا \fI\-\-show\-headers\fP در نظر گرفته شده است که برای نمایش سرآمدهای پروتکل در خروجی استفاده می‌شوند. این گزینه هیچ اثری روی گزینه‌های اشکال‌زدایی مانند \fI\-\-verbose\fP یا \fI\-\-trace\fP یا هرگونه آمار دیگری ندارد. ارائه چندباره \fI\-\-suppress\-connect\-headers\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-suppress-connect-headers غیرفعال کنید. مثال: .nf curl --suppress-connect-headers --show-headers -x proxy https://example.com .fi همچنین ببینید: \fI\-\-dump\-header\fP، \fI\-\-show\-headers\fP و \fI\-\-proxytunnel\fP. .IP "\-\-tcp\-fastopen" استفاده از TCP Fast Open (RFC 7413) را فعال می‌کند. افزونه TCP Fast Open یکی از قابلیت‌های TCP است که در صورت اتصال قبلی کلاینت و سرور، امکان ارسال زودهنگام داده‌ها را روی اتصال (پیش از ACK نهایی دست‌تکانی) فراهم می‌سازد. ارائه چندباره \fI\-\-tcp\-fastopen\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-tcp-fastopen غیرفعال کنید. مثال: .nf curl --tcp-fastopen https://example.com .fi همچنین ببینید: \fI\-\-false\-start\fP. .IP "\-\-tcp\-nodelay" گزینه TCP_NODELAY را فعال می‌کند. این گزینه الگوریتم Nagle را در اتصالات TCP غیرفعال می‌کند. هدف این الگوریتم به حداقل رساندن تعداد بسته‌های کوچک در شبکه است (که منظور از «بسته‌های کوچک»، قطعه‌های (segments) TCP با اندازه کمتر از Maximum Segment Size برای شبکه است). به حداکثر رساندن مقدار داده ارسالی در هر سگمنت TCP سودمند است زیرا سربار ارسال را سرشکن می‌کند. در برخی موارد ممکن است ارسال قطعه‌های کوچک بدون تأخیر ضروری باشد. این کار نسبت به ارسال مقادیر بیشتر داده در یک زمان، کارایی کمتری دارد و در صورت زیاده‌روی می‌تواند به ازدحام در شبکه بینجامد. ابزار curl این گزینه را به طور پیش‌فرض فعال می‌کند و اگر مایل به فعال بودن آن نیستید، باید آن را به طور صریح خاموش کنید. ارائه چندباره \fI\-\-tcp\-nodelay\fP هیچ اثر اضافه‌ای ندارد. آن را دوباره با \-\-no-tcp-nodelay غیرفعال کنید. مثال: .nf curl --tcp-nodelay https://example.com .fi همچنین ببینید: \fI\-\-no\-buffer\fP. .IP "\-t, \-\-telnet\-option " (TELNET) ارسال گزینه‌ها به پروتکل telnet. گزینه‌های پشتیبانی‌شده عبارتند از: .RS .IP TTYPE= نوع ترمینال را تنظیم می‌کند. .IP "XDISPLOC=" محل نمایشگر X را تنظیم می‌کند. .IP NEW_ENV= یک متغیر محیطی را تنظیم می‌کند. .RE .IP از \fI\-\-telnet\-option\fP می‌توان چندین بار در خط فرمان استفاده کرد. مثال: .nf curl -t TTYPE=vt100 telnet://example.com .fi همچنین ببینید: \fI\-\-config\fP. .IP "\-\-tftp\-blksize " (TFTP) گزینه \fBBLKSIZE\fP در TFTP را تنظیم می‌کند (باید ۵۱۲ یا بزرگ‌تر باشد). این اندازه بلوکی است که curl هنگام انتقال داده به یا از یک سرور TFTP تلاش می‌کند از آن استفاده کند. به‌طور پیش‌فرض ۵۱۲ بایت استفاده می‌شود. اگر \fI\-\-tftp\-blksize\fP چندین بار مشخص شود، آخرین مقدار تنظیم‌شده استفاده می‌شود. مثال: .nf curl --tftp-blksize 1024 tftp://example.com/file .fi همچنین ببینید: \fI\-\-tftp\-no\-options\fP. .IP "\-\-tftp\-no\-options" (TFTP) درخواست‌های گزینه‌های TFTP را ارسال نمی‌کند. این کار سازگاری با برخی سرورهای قدیمی را که گزینه‌های TFTP را تأیید نکرده یا به درستی پیاده‌سازی نمی‌کنند، بهبود می‌بخشد. هنگامی که این گزینه استفاده شود، \fI\-\-tftp\-blksize\fP نادیده گرفته می‌شود. مشخص کردن چندباره \fI\-\-tftp\-no\-options\fP اثر اضافه‌ای ندارد. با \-\-no-tftp-no-options دوباره آن را غیرفعال کنید. مثال: .nf curl --tftp-no-options tftp://192.168.0.1 .fi همچنین ببینید: \fI\-\-tftp\-blksize\fP. .IP "\-z, \-\-time\-cond