Care este scopul “ utilizați curl –cookie cu un fișier care nu ' nu există ”?
On februarie 13, 2021 by adminFrom https://curl.haxx.se/docs/httpscripting.html
Curl „s” cookie engine „este activat când utilizați opțiunea –cookie. Dacă doriți doar curl pentru a înțelege cookie-urile primite , utilizați –cookie cu un fișier care nu există. De exemplu, dacă doriți să lăsați curl să înțeleagă cookie-urile dintr-o pagină și să urmărească o locație (și astfel să trimită eventual cookie-urile pe care le-a primit), le puteți invoca astfel:
curl --cookie nada --location http://www.example.com
Care este scopul „utilizați –cookie cu un fișier care nu„ există ”?
Ce înseamnă„ dacă doriți doar curl să înțelegeți cookie-urile primite „înseamnă?
Vă mulțumim.
Răspundeți
Când utilizați -L
(„urmați redirecționările 3XX”) și, de asemenea, utilizând --cookie
cu un fișier inexistent, curl
va trimite în cererile ulterioare cookie-urile setate în răspunsurile anterioare fără a le stoca permanent oriunde. IMHO, în loc să utilizați un fișier inexistent, utilizarea --cookie /dev/null
ar fi mai sigură și va obține același efect.
Curl va nu trimite înapoi în mod implicit cookie-uri, cu excepția cazului în care --cookie
sau --cookie-jar
opțiuni au fost utilizate. Dar multe site-uri vă vor trimite în redirecționări infinite dacă nu le acceptați cookie-urile; totuși, este posibil să nu doriți să stocați nicio stare pe disc și să le lăsați să vă urmărească prin invocații curl
separate. .
Exemplu cu un fișier --cookie
fals:
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
Și fără unul:
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
Observați cum a doua invocare ignoră cookie-urile setate în răspunsuri cu set-cookie
în loc să le trimită înapoi în solicitări.
-L
este un caz în carecurl
face mai multe cereri într-o singură invocație; alt caz este în cazul în care ' utilizațicurl
cu mai multe adrese URL. 2. prin utilizarea nicio opțiune--cookie
așa cum am făcut în al doilea exemplu. " Acceptarea cookie-urilor " înseamnă trimiterea acestora înapoi în solicitări, într-un antetCookie:
.