애플리케이션에서 작성한 쿠키를 저장하는 방법을 알고 싶습니다 document.cookie
.https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie), 내가 알아차렸듯이, wget/curl 파일에 저장하는 일반적인 방법은 이 특별한 경우에는 작동하지 않는 것 같습니다.
웹 애플리케이션이 쿠키에 쓴다고 가정합니다.
document.cookie = name + "=" + value + expires + "; path=/";
예를 들어,
wget --keep-session-cookies --save-cookies cookies.txt "http://foobar/app-generates-cookie.html"
아니면 말리거나,
curl --cookie-jar cookie.txt http://foobar/app-generates-cookie.html
위의 적용 사례에는 wget/curl이 적합하지 않습니다.
답변1
HTML 코드에서 JavaScript를 사용하여 클라이언트 측에 쿠키를 저장하는 경우 이 방법은 작동하지 않습니다. Wget과 컬은 JavaScript 코드를 해석하지 않고 서버에서 보낸 응답만 반환합니다.
서버 측에서 쿠키를 설정해야 합니다.쿠키 설정PHP에서. 이 쿠키는 HTTP 응답 헤더로 전송됩니다.쿠키 설정필드는 wget/curl을 통해 저장할 수 있습니다.
wget
쿠키가 포함된 응답 헤더( -S
/ 옵션을 사용한 출력 --server-response
)는 다음과 같습니다.
HTTP/1.1 200 OK
Date: Fri, 01 Nov 2019 00:33:05 GMT
Server: Apache/2.4.25 (Debian)
Set-Cookie: testcookie=myvalue; expires=Fri, 01-Nov-2019 01:33:05 GMT; Max-Age=3600
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
쿠키는 다음을 사용하여 PHP 페이지에서 설정됩니다.
<?php setcookie("testcookie", "myvalue", time()+3600); ?>