“存在しないファイルでcurl–cookieを使用する目的は何ですか' ”?
On 2月 13, 2021 by adminhttps://curl.haxx.se/docs/httpscripting.html pから>
–cookieオプションを使用すると、Curlの「Cookieエンジン」が有効になります。必要な場合のみ受信したCookieを理解するためにcurl 、存在しないファイルで–cookieを使用します。たとえば、curlにページからのCookieを理解させ、場所を追跡させたい場合(したがって、受信したCookieを送り返す場合)、次のように呼び出すことができます。
curl --cookie nada --location http://www.example.com
「存在しないファイルで–cookieを使用する」の目的は何ですか?
「カールだけが必要な場合」はどうしますか?受信したCookieを理解するには」とはどういう意味ですか?
ありがとうございます。
回答
<を使用している場合div id = "7c20d48a1e">
オプション(「3XXリダイレクトをフォロー」)および存在しないファイルcurl
を使用する
は、後続のリクエストで、以前の応答で設定されたCookieを永続的に保存せずに送信します。 IMHOは、存在しないファイルを使用する代わりに、--cookie /dev/null
を使用する方が安全で、同じ効果が得られます。
Curlは not は、--cookie
または--cookie-jar
オプションが使用されました。ただし、多くのサイトでは、Cookieを受け入れない場合、無限のリダイレクトが送信されます。ただし、状態をディスクに保存して、個別の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
2回目の呼び出しで、set-cookie
の応答で設定されたCookieが、リクエストで返送されるのではなく無視されることに注意してください。
-L
はcurl
は1回の呼び出しで複数のリクエストを実行します。もう1つのケースは、'複数のURLでcurl
を使用している場合です。 2. 2番目の例で行ったように、--cookie
オプションを使用しない。 "クッキーを受け入れる"は、リクエストでCookie:
ヘッダーにCookieを送り返すことを意味します。