2009/03/08

Stainlessで同一サイト複数セッション!

興味のある記事を見つけました。

Chromeを超えた? 1タブ1プロセスのブラウザ最新版「Stainless 0.5」 | パソコン | マイコミジャーナル

見出しによると、プロセスがタブごとに分かれていることが売りとなっています。
Web/ブラウザがOSになったとか言われていますが、ある意味OSの備えるべき保護機能を普通に地味に実装したと言えます。

これはこれで興味深いのですが、プロセス云々が非機能であるのに対し、
私が注目したのはこちらです。
Google Chromeを含む他のブラウザにない機能の例としては、異なるタブ/証明書を使い1つのサイトへ同時のログインを可能にする新機能「パラレルセッション機能」と、独自のcookie保管機構が挙げられた。
Webアプリは最近少し触れるようになった初心者ですが、ちょうど興味を持っていたところにこのニュースでした。

なぜこんなことが話題になるかと言うと、一重に、
HTTPは元来ハイパーテキストにおいて単にファイル転送を行うために開発されたため、(中略) ステートレスなプロトコルである(HTTP cookie - Wikipedia)
からですね。
これに対してクッキーが導入されブラウザ(プロトコル)がステートフルになったわけですが、こいつがブラウザグローバル。
すなわち(URLでは区別されるが)ブラウザのウィンドウやタブ間で区別されないと言うことです。(IEには例外があるってほんと?)

これがユーザにどういう影響を及ぼすかと言うと、タブやウィンドウを複数開いても、異なる複数のGoogleアカウントのGmailを同時に読むことが出来ない、と言うことになります。

これに対して不満を持っている人も少なからずいるようです。

例に挙げたGmailの通知機能限定ですがFirefoxの有名なアドオンにtLo : Gmail Managerと言うのがあり、複数アカウントのGmailの着信通知や未読件数表示が可能です。
汎用的には、クッキーのセットをタブごとに変更できるアドオンにNektra.com > CookiePie FireFox/Flock/GNU IceWeasel Extensionがあります。(使ってみたところ今ひとつ安定しませんでしたが)
同時ではありませんが、クッキーのセットお手軽に切り替える類似目的のアドオンにCookieSwap :: Firefox Add-onsなんていうのもあります。
また、先の記事では否定されていたChromeですが、 プライベートブラウジング(incognito)機能は、オープンな私と慎重な私で多重ログインする機能と見ることも出来ます。

まとめると、
Web/ブラウザが一人前のOSになるには、
複数のステートを管理出来ることが重要だが、
これにはブラウザ側が何らかの対処が必要で、
その一つの解がStainlessであり、
その他アドオンも複数あります、
ということのようです。


ところで、これはブラウザだけの問題ではなく、クライアントをクッキー(とSSLセッション)だけで区別しているプロトコルの問題でもあるように思います。
SSL通信路やCookieによる設定等の状態は共有したいが、案件毎にセッションを区別して管理したいとなると、とたんに破綻します(RESTfullに解決する方法はありそうだが)。


これに対して、WebのOS化に熱心なGoogleあたりが何かしてくるような気もしますが...

今後の動きに注目したいと思います。

# Webアプリ初心者への突っ込み歓迎