Jaký je účel “ použít curl –cookie se souborem, který ' neexistuje ”?
On 13 února, 2021 by adminZ https://curl.haxx.se/docs/httpscripting.html
Curl „s“ cookie engine „se povolí, když použijete volbu –cookie. Pokud chcete jen curl k pochopení přijatých cookies , použijte –cookie se souborem, který neexistuje. Příklad, pokud chcete nechat zvlnění porozumět souborům cookie ze stránky a sledovat umístění (a tedy případně poslat zpět přijaté soubory cookie), můžete jej vyvolat jako:
curl --cookie nada --location http://www.example.com
Jaký je účel „použití –cookie se souborem, který neexistuje“?
Co dělá, pokud chcete pouze zvlnění porozumět přijatým cookies „znamená?
Děkujeme.
Odpovědět
Když používáte -L
(„sledovat přesměrování 3XX“) a také použití --cookie
s neexistujícím souborem curl
odešle v následujících požadavcích soubory cookie nastavené v předchozích odpovědích, aniž by je trvale uložil kdekoli. IMHO by místo použití neexistujícího souboru bylo použití --cookie /dev/null
bezpečnější a dosáhne stejného efektu.
Curl bude ne ve výchozím nastavení odesílat zpět všechny soubory cookie, pokud --cookie
nebo --cookie-jar
. Ale mnoho webů vás pošle do nekonečných přesměrování, pokud nepřijmete jejich soubory cookie; ale možná nebudete chtít uložit žádný stav na disk a nechat je sledovat vás prostřednictvím samostatných curl
vyvolání .
Příklad s falešným --cookie
souborem:
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
A bez jednoho:
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
Všimněte si, jak druhé vyvolání ignoruje soubory cookie nastavené v odpovědích pomocí set-cookie
místo toho, aby je posílal zpět v požadavcích.
-L
je případ, kdycurl
provádí více žádostí v rámci jednoho vyvolání; druhým případem je situace, kdy ' používátecurl
s více adresami URL. 2. nepoužíváním žádné--cookie
možnosti, jako jsem to udělal ve 2. příkladu. " Přijímání souborů cookie " znamená jejich odesílání zpět v žádostech v záhlavíCookie:
.