アプリケーションがdocument.cookieに書き込むときにクッキーを保存する方法は?

アプリケーションがdocument.cookieに書き込むときにクッキーを保存する方法は?

アプリケーションで作成したCookieを保存する方法を知りたいですdocument.cookiehttps://developer.mozilla.org/en-US/docs/Web/API/Document/cookie)、私が気づいたように、wget / curlファイルに保存する一般的な方法は、この特別な場合には機能しないようです。

WebアプリケーションがCookieに書き込むとします。

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を使用してクライアント側にCookieを保存すると、この方法は機能しません。 Wgetとカールは、JavaScriptコードを解釈せずにサーバーから送信された応答のみを返します。

サーバー側でCookieを設定する必要があります。クッキー設定PHPで。この Cookie は HTTP 応答ヘッダーに送信されます。クッキー設定フィールドはwget / curlを介して保存できます。

wgetCookieを含む応答ヘッダー(-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); ?>

関連情報