質問: JavaScriptの`window.open()`で新しくウィンドウを開いた場合、セッションが引き継がれるかどうか、というものは、何か標準仕様が決まっているのでしょうか。 それともブラウザ毎に独自に決めてしまっているのでしょうか。 「セッションが引き継がれるか」をもう少し具体化しますと: 1. セッションCookieが、親ウィンドウのものと同じになるか 2. SessionStorageが、親ウィンドウと共有されるか 手元のChrome51とIE11で確認した限りでは、どちらも以下の結果でした。 1. Yes 2. Yes/No, window.openした時点でのSessionStorageの内容は子ウィンドウにコピーされるが、それ以降は独立しており、同期されない この挙動を前提としたアプリケーションを作ろうとしているのですが、これが個別のブラウザの独自仕様だとすると、近い将来に挙動が変わってしまいそうで、二の足を踏んでいる状況です。
回答: > > window.openした時点でのSessionStorageの内容は子ウィンドウにコピーされるが、それ以降は独立しており、同期されない > > > については、ブラウザの独自仕様ではないようです。 > > When a new top-level browsing context is created by a script in an existing browsing context, or by the user following a link in an existing browsing context, or in some other way related to a specific Document, and the creation is not a new start for session storage, then the session storage area of the origin of that Document must be copied into the new browsing context when it is created. From that point on, however, the two session storage areas must be considered separate, not affecting each other in any way. > > > > > セッションCookieが、親ウィンドウのものと同じになるか > > > Cookie はサーバから渡すものなので、サーバの挙動に依存するのではないでしょうか? もし`window.open('http://google.com')`としたら、cookie の値は引き継がれないですよね? HTTP State Management Mechanism