À quoi sert “ utiliser curl –cookie avec un fichier qui ' existe ”?
On février 13, 2021 by adminDe https://curl.haxx.se/docs/httpscripting.html
Le « moteur de cookies » de Curl « est activé lorsque vous utilisez loption –cookie. Si vous le souhaitez uniquement curl pour comprendre les cookies reçus , utilisez –cookie avec un fichier qui nexiste pas. Exemple, si vous voulez laisser curl comprendre les cookies dune page et suivre un emplacement (et donc éventuellement renvoyer les cookies quil a reçus), vous pouvez linvoquer comme:
curl --cookie nada --location http://www.example.com
Quel est le but de « utiliser –cookie avec un fichier qui » nexiste pas « ?
Que fait » si vous ne voulez que curl pour comprendre les cookies reçus « signifie?
Merci.
Réponse
Lorsque vous » utilisez le -L
(« suivre les redirections 3XX ») et également utiliser --cookie
avec un fichier inexistant, curl
enverra dans les demandes ultérieures les cookies définis dans les réponses précédentes sans les stocker de manière permanente nimporte où. À mon humble avis, au lieu dutiliser un fichier inexistant, utiliser --cookie /dev/null
serait plus sûr et produira le même effet.
Curl ne renvoyer aucun cookie par défaut, sauf si --cookie
ou --cookie-jar
ont été utilisées. Mais de nombreux sites vous enverront dans des redirections infinies si vous nacceptez pas leurs cookies. Cependant, vous ne voudrez peut-être pas stocker détat sur le disque et les laisser vous suivre via des curl
invocations distinctes .
Exemple avec un faux fichier --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
Et sans un:
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
Notez comment le deuxième appel ignore les cookies définis dans les réponses avec set-cookie
au lieu de les renvoyer dans les requêtes.
-L
est un cas oùcurl
effectue plusieurs requêtes en un seul appel; dans un autre cas, vous ' utilisezcurl
avec plusieurs URL. 2. en nutilisant aucune option--cookie
comme je lai fait dans le 2ème exemple. " Accepter les cookies " signifie les renvoyer dans les requêtes, dans un en-têteCookie:
.