「存在しないファイルにカール - Cookieを使用する」の目的は何ですか?

「存在しないファイルにカール - Cookieを使用する」の目的は何ですか?

~からhttps://curl.haxx.se/docs/httpscripting.html

--cookie オプションを使用すると、Curl の「Cookie Engine」が有効になります。 カールが受信したクッキーについて知りたい場合、存在しないファイルには--cookieを使用してください。たとえば、カールにページの Cookie を知って特定の場所を追跡するようにしたい場合 (したがって、潜在的に受信した Cookie を再送信する場合)、次のように呼び出すことができます。

curl --cookie nada --location http://www.example.com

「存在しないファイルに--cookieを使用する」の目的は何ですか?

「カールに受信したクッキーだけを理解させたい場合」とはどういう意味ですか?

ありがとうございます。

答え1

この-Lオプション(「3XXリダイレクトに従う」)を使用し、--cookie存在しないファイルも使用すると、curl以前の応答で設定されたCookieは永久に保存されず、後続の要求で送信されます。 IMHOは、存在しないファイルを使用するよりも--cookie /dev/null安全で同じ効果を得ることができます。

きつい意志いいえ--cookieまたは、オプションを使用しない限り、デフォルトですべてのCookieを再送信します。ただし、Cookieを許可しないと、多くのWebサイトで無限リダイレクトが行われます。ただし、ディスクにどの状態も保存し、個々の呼び出しを介して--cookie-jar追跡curlする必要はありません。

偽の文書--cookieの例:

curl --cookie nada -v -L https://www.google.com/news -o /dev/null 2>&1 | egrep -i 'cookie|Connected to|^> GET|^< HTTP'

* Connected to www.google.com (2a00:1450:400d:803::2004) port 443 (#0)
> GET /news HTTP/1.1
< HTTP/2 302
* Added cookie NID="158=LONG-GARBAGE" for domain google.com, path /, expire 1564698265
< set-cookie: NID=158=LONG-GARBAGE;Domain=.google.com;Path=/;Expires=Thu, 01-Aug-2019 22:24:25 GMT;HttpOnly
* Connected to news.google.com (2a00:1450:400d:807::200e) port 443 (#1)
> GET /news HTTP/1.1
> Cookie: NID=158=LONG-GARBAGE
< HTTP/2 301
* Connected to news.google.com (2a00:1450:400d:807::200e) port 443 (#2)
> GET / HTTP/1.1
> Cookie: NID=158=LONG-GARBAGE
< HTTP/2 302
* Connected to news.google.com (2a00:1450:400d:807::200e) port 443 (#3)
> GET /?hl=en-US&gl=US&ceid=US:en HTTP/1.1
> Cookie: NID=158=LONG-GARBAGE
< HTTP/2 200

なし:

curl -v -L https://www.google.com/news -o /dev/null 2>&1 | egrep -i 'cookie|Connected to|^> GET|^< HTTP'

* Connected to www.google.com (2a00:1450:400d:803::2004) port 443 (#0)
> GET /news HTTP/1.1
< HTTP/2 302
< set-cookie: NID=158=LONG-GARBAGE;Domain=.google.com;Path=/;Expires=Thu, 01-Aug-2019 22:24:43 GMT;HttpOnly
* Connected to news.google.com (2a00:1450:400d:807::200e) port 443 (#1)
> GET /news HTTP/1.1
< HTTP/2 301
< set-cookie: NID=158=LONG-GARBAGE;Domain=.google.com;Path=/;Expires=Thu, 01-Aug-2019 22:24:43 GMT;HttpOnly
* Connected to news.google.com (2a00:1450:400d:807::200e) port 443 (#2)
> GET / HTTP/1.1
< HTTP/2 302
< set-cookie: NID=158=LONG-GARBAGE;Domain=.google.com;Path=/;Expires=Thu, 01-Aug-2019 22:24:43 GMT;HttpOnly
* Connected to news.google.com (2a00:1450:400d:807::200e) port 443 (#3)
> GET /?hl=en-US&gl=US&ceid=US:en HTTP/1.1
< HTTP/2 200
< set-cookie: NID=158=LONG-GARBAGE;Domain=.google.com;Path=/;Expires=Thu, 01-Aug-2019 22:24:43 GMT;HttpOnly

set-cookie2回目の呼び出しでは、要求からCookieを再送信するのではなく、応答に設定されたCookieを無視する方法に注意してください。

関連情報