~から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-cookie
2回目の呼び出しでは、要求からCookieを再送信するのではなく、応答に設定されたCookieを無視する方法に注意してください。