Qual è lo scopo di “ utilizzare curl –cookie con un file che ' non esiste ”?
Su Febbraio 13, 2021 da adminDa https://curl.haxx.se/docs/httpscripting.html
Il “motore dei cookie” di Curl viene abilitato quando utilizzi lopzione –cookie. Se vuoi solo curl per capire i cookie ricevuti , usa –cookie con un file che non esiste. Ad esempio, se desideri che curl comprenda i cookie di una pagina e segua una posizione (e quindi eventualmente rimandi i cookie ricevuti), puoi invocarlo in questo modo:
curl --cookie nada --location http://www.example.com
Qual è lo scopo di “usare –cookie con un file che” non esiste “?
Cosa significa” se vuoi solo curl per capire i cookie ricevuti “significa?
Grazie.
Risposta
Quando si utilizza -L
opzione (“follow through 3XX redirects”) e anche utilizzando --cookie
con un file non esistente, curl
invierà nelle richieste successive i cookie impostati nelle risposte precedenti senza conservarli in modo permanente da nessuna parte. IMHO, invece di utilizzare un file non esistente, utilizzare --cookie /dev/null
sarebbe più sicuro e otterrà lo stesso effetto.
Curl non restituire i cookie per impostazione predefinita, a meno che --cookie
o --cookie-jar
. Ma molti siti ti invieranno a reindirizzamenti infiniti se non accetti i cookie; tuttavia, potresti non voler memorizzare alcuno stato su disco e lasciare che ti rintracciano tramite invocazioni curl
separate .
Esempio con un file --cookie
fasullo:
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
E senza uno:
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
Nota come la seconda chiamata ignora i cookie impostati nelle risposte con set-cookie
invece di rimandarli indietro nelle richieste.
-L
è un caso in cuicurl
esegue più richieste in una singola chiamata; laltro caso è dove ' stai utilizzandocurl
con più URL. 2. non utilizzando alcuna opzione--cookie
come ho fatto nel secondo esempio. " Accettare i cookie " significa rimandarli indietro nelle richieste, in unintestazioneCookie:
.