¿Cuál es el propósito de “ usar curl –cookie con un archivo que no ' existe ”?
On febrero 13, 2021 by adminDe https://curl.haxx.se/docs/httpscripting.html
El motor de cookies de Curl «s» se habilita cuando usa la opción –cookie. Si solo desea curl para entender las cookies recibidas , use –cookie con un archivo que no existe. Por ejemplo, si desea que curl comprenda las cookies de una página y siga una ubicación (y, por lo tanto, posiblemente envíe las cookies que recibió), puede invocarlo como:
curl --cookie nada --location http://www.example.com
¿Cuál es el propósito de «usar –cookie con un archivo que» no existe «?
¿Qué significa» si solo quieres curl para entender «¿significan las cookies recibidas?
Gracias.
Responder
Cuando esté usando -L
opción («seguir los redireccionamientos 3XX») y también usar --cookie
con un archivo no existente, curl
enviará en solicitudes posteriores las cookies establecidas en respuestas anteriores sin almacenarlas de forma permanente en ningún lugar. En mi humilde opinión, en lugar de usar un archivo que no existe, usar --cookie /dev/null
sería más seguro y lograría el mismo efecto.
Curl no enviar cookies de forma predeterminada, a menos que --cookie
o --cookie-jar
. Pero muchos sitios lo enviarán a redireccionamientos infinitos si no acepta sus cookies; sin embargo, es posible que no desee almacenar ningún estado en el disco y dejar que lo rastreen a través de invocaciones curl
separadas. .
Ejemplo con un --cookie
archivo falso:
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
Y sin 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
Observe cómo la segunda invocación ignora las cookies configuradas en las respuestas con set-cookie
en lugar de devolverlas en solicitudes.
-L
es un caso en el quecurl
realiza múltiples solicitudes en una sola invocación; otro caso es cuando ' estás usandocurl
con varias URL. 2. al no usar ninguna opción--cookie
como hice en el segundo ejemplo. " Aceptar cookies " significa devolverlas en solicitudes, en unCookie:
encabezado.