“ 존재하지 않는 파일에 curl –cookie를 사용하는 ' ”?
On 2월 13, 2021 by admin보낸 사람 https://curl.haxx.se/docs/httpscripting.html
-cookie 옵션을 사용하면 Curl “의”쿠키 엔진 “이 활성화됩니다. 원하는 경우 수신 된 쿠키를 이해하려면 , 존재하지 않는 파일에 –cookie를 사용하십시오. 예를 들어, curl이 페이지의 쿠키를 이해하고 위치를 따라 가도록 (따라서 수신 한 쿠키를 다시 보낼 수 있음) 다음과 같이 호출 할 수 있습니다.
curl --cookie nada --location http://www.example.com
“존재하지 않는 파일에 –cookie 사용”의 목적은 무엇입니까?
“컬만 원하는 경우”는 무엇입니까? 수신 된 쿠키를 이해하려면 “이 의미합니까?
감사합니다.
답변
-L
옵션 ( “3XX 리디렉션 수행”) 및 존재하지 않는 파일 curl
사용
는 후속 요청에서 이전 응답에 설정된 쿠키를 어디에도 영구적으로 저장하지 않고 전송합니다. IMHO는 존재하지 않는 파일을 사용하는 대신 --cookie /dev/null
를 사용하는 것이 더 안전하고 동일한 효과를 얻을 수 있습니다.
컬은 는 --cookie
또는 --cookie-jar
옵션이 사용되었습니다. 그러나 쿠키를 허용하지 않으면 많은 사이트에서 무한 리디렉션으로 보내지 만 디스크에 상태를 저장하지 않고 별도의 curl
호출을 통해 사용자를 추적하도록 할 수 있습니다. .
가짜 --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
그리고없는 파일 :
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
두 번째 호출이 요청에서 쿠키를 다시 보내는 대신 set-cookie
로 응답에 설정된 쿠키를 무시하는 방법에 주목하세요.
-L
는curl
는 한 번의 호출로 여러 요청을 수행합니다. 다른 경우는 ' 여러 URL에curl
를 사용하는 경우입니다. 2. 두 번째 예에서와 같이--cookie
옵션을 사용하지 않습니다. " 쿠키 허용 "은Cookie:
헤더에서 쿠키를 요청으로 다시 보내는 것을 의미합니다.