Hebikuzure's Tech Memo

2009年5月17日

IE8 の セッション Cookie と sessionStorage

Filed under: Internet Explorer — hebikuzure @ 1:45 AM

Session Cookies, sessionStorage, and IE8 or “How can I log into two webmail accounts at the same time?”
http://blogs.msdn.com/ie/archive/2009/05/06/session-cookies-sessionstorage-and-ie8.aspx


引き続き IE Blogを試訳しています。

以下の文章は IE Blog の 5/6 の記事 Session Cookies, sessionStorage, and IE8 or “How can I log into two webmail accounts at the same time?” を hebikuzure が私的に試訳したものです。翻訳については Microsoft Corporation およびマイクロソフト株式会社とは無関係に hebikuzure が公開情報に基づき独自に行ったものであり、この文書の内容についての文責は公開者である hebikuzure にあります。翻訳の内容および技術的内容については正確を期すよう十分な注意を払っておりますが、誤りや不正確な部分が含まれている可能性がありますので、本文書を利用される際には原文も併せてご確認ください。


IE8 の セッション Cookie と sessionStorage、あるいは “どうすれば二つのWeb メールアカウントに同時にログインできるか?”

Internet Explorer 8 では、ブラウザー セッションの取り扱いを非常に単純にしました。例えば、二つの Hotmail のウィンドウを開いて別々のアカウントでログインしたいとしましょう。単にファイル メニューの新規セッション項目をクリックすれば、新しいブラウザーウィンドウが開きます。新しいブラウザー ウィンドウは元のブラウザー ウィンドウとセッション Cookie を共有しませんので、別のユーザーとして Hotmail (や多くの Web アプリケーション) にログインできます。コマンド ライン好きの方なら、iexplore.exe–nomerge パラメータ (訳注 : 正しくは -noframemerging) を付けて実行します。

これとは対照的に、ファイル メニューの新規ウィンドウ新しいタブタブを複製やデスクトップのショートカットのクリックでは、新しいタブやウィンドウは元のタブとセッション Cookie を共有します。これを “セッション結合” と呼びます。

なぜブラウザーにセッション結合が実装されているのか?

セッション結合の適切なサポートは、多くの Web アプリケーションがそれを期待しているため重要です。例えば Web アプリケーションがポップアップ ウィンドウを開く場合、通常ポップアップウィンドウはメイン ウィンドウとセッション Cookie を共有していると期待されており、ユーザーはログイン状態のままでその設定も維持されていると期待されています。同じようにユーザーが タブを複製 コマンドを使った場合、新しいタブでも元のタブと同じコンテンツが表示できるというのが合理的な考え方ですが、このシナリオが正しく機能するには Cookie の共有が重要です。

その一方、HTML5 draft の制作者はウィンドウやタブの間で Cookie が共有される事でいくつかの問題が生じる可能性を警告しています:

一例として、ユーザーが異なる二つのウィンドウを開き同じサイトを表示している状態で飛行機のチケットを購入したとします。このサイトでユーザーがどのチケットを購入したのか追跡するため Cookie を使っており、ユーザーがそれぞれのウィンドウでページからページへとクリックしていった場合、現在購入しようとしているチケットが片方のウィンドウから別のウィンドウに漏れるかもしれません。そのためユーザーが明確な通知なしに同じフライトで 2 枚のチケットを購入してしまう潜在的可能性があります。

こうした理由で、HTML5 の sessionStorage 機能は同じブラウザー セッション中のタブがそれぞれ独立したストレージ オブジェクトを持つよう設計されています。一つのタブで sessionStorage 属性を変更した場合、同じブラウザー セッションで実行されていてもこの変更は他のタブに影響を与えません。対照的に、localStorage 属性は永続 Cookie と似た動作をします。localStorage 属性を変更すると、現在 (と将来) のブラウザー セッション中のすべてのブラウザー タブに影響します。

IE8 の新規セッション オプションとセッション結合について確認できるよう、簡単なテスト ページを作りましたのでご利用ください。

-Eric Lawrence

2010 年 1 月 11 日追記: 最近、iexplore.exe をコマンドラインからオプション付きで直接実行する代わりに、CoCreateInstance COM API を使って “NoMerge” セッションを開始する方法が無いか尋ねられました。残念ながら、この方法は現時点ではサポートされていません。代わりに IELaunchURL
API では常に IE を NoMerge オプションで起動します。


広告

1件のコメント »

  1. […] IE8 の セッション Cookie と sessionStorage […]

    ピンバック by 人気記事ベスト20 « Hebikuzure's Tech Memo — 2011年6月4日 @ 1:27 PM


RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com で無料サイトやブログを作成.

%d人のブロガーが「いいね」をつけました。