응용 프로그램이 document.cookie에 쓸 때 쿠키를 저장하는 방법은 무엇입니까?

응용 프로그램이 document.cookie에 쓸 때 쿠키를 저장하는 방법은 무엇입니까?

애플리케이션에서 작성한 쿠키를 저장하는 방법을 알고 싶습니다 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); ?>

관련 정보