cURL 的 -b 和 -c 选项是什么?

cURL 的 -b 和 -c 选项是什么?

使用 cURL 时,-b 和 -c 选项是什么?在 man curl 上,有这些描述,但对我来说很困惑。当他们说“-c,--cookie-jar”,“-b,--cookie”时,是否意味着我们必须同时使用两者?或者可以只使用“-c”,它会带来与“--cookie jar”相同的结果?那么为什么它有两个不同的选项来做同样的事情呢?

   -c, --cookie-jar <filename>
          (HTTP)  Specify  to  which  file you want curl to write all cookies after a
          completed operation. Curl writes all  cookies  from  its  in-memory  cookie
          storage  to  the  given  file  at  the end of operations. If no cookies are
          known, no data will be written. The file will be written using the Netscape
          cookie  file  format.  If  you set the file name to a single dash, "-", the
          cookies will be written to stdout.

          This command line option will activate the cookie engine  that  makes  curl
          record  and  use  cookies.  Another  way  to  activate it is to use the -b,
          --cookie option.

          If the cookie jar can't be created or written to, the whole curl  operation
          won't  fail or even report an error clearly. Using -v, --verbose will get a
          warning displayed, but that is the only visible feedback you get about this
          possibly lethal situation.

          If  this option is used several times, the last specified file name will be
          used.

   -b, --cookie <data|filename>
          (HTTP) Pass the data to the HTTP server in the Cookie header. It is suppos-
          edly  the data previously received from the server in a "Set-Cookie:" line.
          The data should be in the format "NAME1=VALUE1; NAME2=VALUE2".

          If no '=' symbol is used in the argument, it is instead treated as a  file-
          name  to read previously stored cookie from. This option also activates the
          cookie engine which will make curl record incoming cookies,  which  may  be
          handy if you're using this in combination with the -L, --location option or
          do multiple URL transfers on the same invoke. If the file name is exactly a
          minus ("-"), curl will instead the contents from stdin.

          The file format of the file to read cookies from should be plain HTTP head-
          ers (Set-Cookie style) or the Netscape/Mozilla cookie file format.

          The file specified with -b, --cookie is only used as input. No cookies will
          be  written to the file. To store cookies, use the -c, --cookie-jar option.

          Exercise caution if you are using this option and  multiple  transfers  may
          occur.   If  you  use  the  NAME1=VALUE1; format, or in a file use the Set-
          Cookie format and don't specify a domain, then the cookie is sent  for  any
          domain  (even  after  redirects  are  followed) and cannot be modified by a
          server-set cookie. If the cookie engine is enabled  and  a  server  sets  a
          cookie of the same name then both will be sent on a future transfer to that
          server, likely not what you intended.  To address these issues set a domain
          in  Set-Cookie  (doing  that  will include sub domains) or use the Netscape
          format.

          If this option is used several times, the last one will be used.

          Users very often want to both read cookies from a file  and  write  updated
          cookies  back to a file, so using both -b, --cookie and -c, --cookie-jar in
          the same command line is common.

答案1

-b 来自文件(或逐字字符串)的 cookies 并在请求中发送它们。

-c 文件中的cookies,如果有的话(或者从之前使用 的文件中读取-b

相关内容