質問: Chromeの「シークレットモード」と「ゲストモード」における、Cookieとセッションの挙動について調査しているのですが、下記の認識で合っていますか? **シークレットモード** Cookie使用可。但し、通常モードには反映されない **ゲストモード** Cookie使用不可 --- また、下記でゲストセッションという表記がありますが、どういう意味ですか? 【Google Chrome】シークレットモードより、さらに機密性が高い「ゲストモード」の使い道 > > [ゲストセッションを終了]をクリックします > > > --- **追記** (主にログイン状態に関するCookieに関して)下記認識で合っていますか? **Cookieは大きく2種類に分かれる** ・セッションCookie(ブラウザ終了時に破棄) ・持続的Cookie(ブラウザ終了後も維持) **セッションCookie** ・「通常モード」では、ブラウザ終了時に破棄される ・「シークレットモード」でも、ブラウザ終了時に破棄される ・「ゲストモード」でも、ブラウザ終了時に破棄される ※何れも同じ動作 **持続的Cookie** ・「通常モード」では、開始時の持続的Cookie引き継ぎが行われる ・「シークレットモード」では、開始時の持続的Cookie引き継ぎは行われない ・「ゲストモード」では、開始時の持続的Cookie引き継ぎは行われない >持続的Cookieが利用できない、というわけではありません ・この意味が分からないのですが、本来の機能は果たしていない、という理解で合っていますか? ・持続的Cookieは、Cookieとしては利用できるが、「シークレットモード」と「ゲストモード」では、セッションCookieのように振る舞う、ということですか? ・ということは、Cookie機能(挙動)だけに関しては、「シークレットモード」と「ゲストモード」は同じですか? ・両者の違いは、「同一ユーザで新しいセッションを作成するか」「複数のユーザを作成するか」の違いですか?
回答: ここで言う「セッション」とは、概ねブラウザを起動してから終了するまでの期間を指しています。 セッションCookieの説明に > > クライアントが終了したときに Cookie が削除されます。 > > > とあるかと思いますが、ここで言う「クライアント終了」=「セッション終了」です。 次に、ブラウザが保持する情報として、セッションが終了すると消えてなくなる情報と、そうでなく永続化され次のセッション(次にブラウザを起動した時)にも引き継がれる情報があります。 引き継がれる情報の例としては、上記リンク先の"持続的Cookie"の他、訪問履歴、ブックマーク、インストールしたプラグイン、等もあります。 ブラウザは、保持する情報をユーザ(Chromeの場合)という単位で管理しています。ユーザ間ではセッション(永続化情報含む)は共有されず、それぞれ独立しています。 という前置きをした上で。 > > シークレットモード > > > 同一ユーザで新しいセッションを作成します。同一ユーザのセッションなのでブックマークなどは共有されます。 通常のセッションとの違いは、開始時の持続的Cookie引き継ぎは行われない、セッション終了時に情報は永続化されず全て消える、といったところです(設計思想的には。"ダウンロードしたファイルと作成したブックマークは保持されます"というように例外もあります)。 > > ゲストモード > > > Chromeは複数のユーザを作成することができます。"ゲスト"もユーザのうちのひとつですが、いわゆる「捨て垢」に相当するもので、セッション終了時に永続化情報含め全てのセッション情報は削除されます(設計思想的には)。 > > Cookie > > > ここまでの説明の通り、シークレットモードでもゲストモードでもセッション終了時に セッションCookie,持続的Cookie共に無くなります。 セッションCookie・持続的Cookieが利用できない、というわけではありません。 > > ゲストセッション > > > 捨て垢のセッションです。 > > ゲストセッションを終了 > > > 特定のセッション(ここではゲストセッション)で動いているブラウザウィンドウを全て閉じる(結果としてそのセッションが終了する)ことです。 ちなみにゲストに限らず、通常のユーザやシークレットウィンドウでも同様のメニューはあります。 (キャプチャはUbuntu上のChromiumのものですが、Chromeでもほぼ同じかと思います) !defaultユーザのセッション終了メニュー !シークレットモードのセッション終了メニュー (質問の追記部分について) > > **Cookieは大きく2種類に分かれる** > > ・セッションCookie(ブラウザ終了時に破棄) > > ・持続的Cookie(ブラウザ終了後も維持) > > > **セッションCookie** > > ・「通常モード」では、ブラウザ終了時に破棄される > > ・「シークレットモード」でも、ブラウザ終了時に破棄される > > ・「ゲストモード」でも、ブラウザ終了時に破棄される > > ※何れも同じ動作 > > > その理解で良いと思います。 本題からは逸れるのですが、以前行った私の質問でリンクしている「セッション管理に関するチートシート」(原文)では、 * 有効期限を設定していないCookie(セッションCookie) -> **非永続**Cookie(**non-persistent** cookies) * 有効期限を設定しているCookie(持続的Cookie) -> **永続**Cookie(**persistent** cookies) と呼称しており、個人的にはこちらの名前の方が誤解が無いかなと考えています(「セッション」という語から想起されるものは色々あるので)。 > > **持続的Cookie** > > ・「通常モード」では、開始時の持続的Cookie引き継ぎが行われる > > ・「シークレットモード」では、開始時の持続的Cookie引き継ぎは行われない > > ・「ゲストモード」では、開始時の持続的Cookie引き継ぎは行われない > > > 「ゲストモード」の挙動はこれとは異なります。 「ゲストモード」はユーザの新規作成が同時に行われているイメージです。 つまり、引き継ぐべき持続的Cookieがそもそも無い状態です。 (他方、「シークレットモード」は、引き継ぐべき持続的Cookieを敢えて無視する、ようなイメージになります。のでこの通りということになります。) > > >持続的Cookieが利用できない、というわけではありません > > ・この意味が分からないのですが、本来の機能は果たしていない、という理解で合っていますか? > > > はい。本来永続化されるべき状況でもクライアント終了時に(セッションCookieと同じように)削除されてしまう、という意味です。 (クライアント起動中は、通常モードと変わらず利用できます。) > > ・持続的Cookieは、Cookieとしては利用できるが、「シークレットモード」と「ゲストモード」では、セッションCookieのように振る舞う、ということですか? > > > おおむねその理解で正しいです。 ただし、前述の通り、持続的Cookieは有効期限が明示されています。ブラウザを起動し続けていた場合でも有効期限が来れば削除される、というのがセッションCookieとは異なります。 > > ・ということは、Cookie機能(挙動)だけに関しては、「シークレットモード」と「ゲストモード」は同じですか? > > > (あまり意識したことはなかったのですが、確かに)その通りですね。 ただ、これまた本題とは逸れるのですが、WebStorageまで含めると、シークレットモード対応は枯れていないので実装に拠るところが大きい...ような感じも受けます(が、これに関して詳しくなく最新の状況を知りません)。 * Web Storage API > プライベートブラウジング / シークレットモード + 関連?: Detecting if a browser is using Private Browsing mode > > ・両者の違いは、「同一ユーザで新しいセッションを作成するか」「複数のユーザを作成するか」の違いですか? > > > はい。