こんにちは。麗です。

みなさんは、登録不要でログインも要らないWebツールやブラウザゲームを使っていて、

「このデータ、いったいどこに保存されてるのだろう?」

と、思ったことはないでしょうか。

そして、あるとき開いたらきれいさっぱり消えていた、という経験がある人もいるかもしれません。

私は個人でWebツールやゲームを制作して公開していますが、その多くが 「ブラウザ保存」 という仕組みを使っています。

なので、制作物を掲載している側として、「ブラウザ保存」の仕組みについて、良いところや悪いところの両方を説明しておく責任があると思い、記事としてまとめました。

ブラウザ保存とは?

ブラウザ保存のデータを引き継げる条件を、端末とブラウザの組み合わせで表にした図。同じ端末の同じブラウザでのみ引き継げ、ブラウザか端末が変わると引き継げないことを示している

「ブラウザ保存」とは、名前のとおり、ブラウザの中に、データをしまう仕組みです。

インターネット上のサーバーには送りません。

だから、

  • アカウント登録が要らない
  • 制作者(私を含む)は、利用者のデータを見られない

利用する人たちにとっては、このようなメリットがあります。

その代わりに、

  • 別の端末には自動で引き継げない
  • キャッシュクリア・履歴消去で、消えてしまう

こういったデメリットもあります。

データはどこに保存されるのか?

開発者ツールのアプリケーションパネルで、urara.devのローカルストレージに保存されているキーと値の一覧を表示している画面。作品ごとの進行データがキー名で並んでいる

「ブラウザ保存は」ブラウザの中に、データをしまう仕組みだと先に書きましたが、保存先は 「同じ端末の、同じブラウザ」 です。

同じ端末の、同じブラウザ (大事なことなので、二度書きました)

この2つが両方揃っている必要があります。

たとえば、

パソコンの Chrome で保存 → 同じパソコンの Edge では見れません

このように、ブラウザが変わると見れません。 パソコンだけではなく、スマホやそれ以外の端末でも同様です。

さらに、ブラウザは同じでも、端末が変わると見れません。

パソコンの Chrome で保存 → スマホの Chrome では見れない

ここでいう「見れない」とは、同じデータを引き継ぐことが出来ないという意味です。

そのツール自体は使えるものの、データはリセットされてしまいます。

たとえば、

スマホの Safari でゲームを 「10ステージ」 で終える → 同じスマホの Chrome では 「はじめから開始」 になる

ということです。

このように、端末またはブラウザが変わると、webアプリやツール自体は使えるものの、データを引き継ぐことができなくなってしまいます。

逆に言えば、同じ端末・同じブラウザであれば、データの引継ぎが出来るということですね。

スマホの Safari でゲームを「10ステージ」で終える → 同じスマホの Safari では 「11ステージ」から再開 できる

同期していれば大丈夫?

ブラウザのアカウントで同期している人は、 「ブックマークもパスワードも同期されるんだから、データも同期されるんじゃないか」 と思いがちです。

しかし、基本的にブラウザ保存されたものは、同期されません。

同期の対象は、

  • ブックマーク
  • 履歴
  • パスワード
  • 拡張機能の設定

などがありますが、個々のサイトが保存したデータは対象外となっている場合があるのです。

データが消える7つの場面

Chromeの右上メニューを開き、「閲覧履歴データを削除...」の項目がハイライトされている画面

ブラウザ保存のいちばんのリスクは、データが消えてしまう可能性があることではないかと、個人的には思います。

これは、仕様通りといえば仕様通りなのですが、利用する側がそれを理解していないと、大切なデータをなくしてしまうことやトラブルに発展する場合もあるかもしれません。

そこで、ブラウザ保存によってデータが消失していまうパターンまとめました。

1. 「閲覧履歴の削除」でまとめて消す

データが消えるパターンで一番多いのが「閲覧履歴の削除」です。

ブラウザの設定から履歴を消すとき、「Cookieと他のサイトデータ」みたいなチェック項目が入っていることがありますよね。

ここにブラウザ保存のデータが含まれます。

使う側からすると「一部の履歴を消したかっただけなのに‥」という場合でも一緒に消えてしまうことがあります。

これが本当によくあるパターンです。

2. そのサイトの「サイトデータ」を削除する

ブラウザの設定から、特定のサイトのデータだけを消す操作です。

狙って消すぶんには問題ありませんが、そのサイト内の別のツールのデータも一緒に消えます。

当サイト(urara.dev といいます)では、1つのドメインに複数のツールを置いています。全部の制作物ではないのですが、ほとんどの制作物が同じドメイン内です。

このように同じサイト内にある場合、ツールAのデータを消したつもりでツールBのデータも消えます。

3. プライベートモード(シークレットモード)で使った

シークレットウィンドウで使うと、ウィンドウを閉じてしまうとデータは消えてしまいます。

これは仕様どおりの動作で、故障ではありません。

逆に、データを保存したくないときには便利な機能です。

4. ブラウザを初期化した/アンインストールした

言うまでもない話はありますが、ブラウザを初期化したりアンインストールしたりすると、データは消えます。

パソコンの調子が悪くてブラウザを入れ直したとき、一緒に消えています。

5. 端末を買い替えた・初期化した

新しい端末から開いた場合、データは移りません。

端末の引き継ぎ機能を使っていても移らないことがあります。

引き継ぎ機能でコピーされるのは主にアプリやアカウント情報で、ブラウザの中のサイトデータまでは対象外になっていることが多いからです。

古い端末で開きなおせば、元のデータのまま見ることが出来ます。

6. 長期間そのサイトを訪れなかった

ブラウザにもよりますが、しばらく訪問していないサイトのデータを自動的に削除する動きがあります。

特に iPhone や Mac の Safari では、この動作が知られていて「久しぶりに開いたら、続きが消えていた」ということがあり得ます。

何も操作していないのに消えるので、一番びっくりするパターンかもしれません。

7. 端末の空き容量が足りなくなった

端末内に保存できる量には限界があります。

端末の空き容量が少なくなると、ブラウザが古いサイトのデータから消していってしまうことがあります。

このように、自分の知らないうちに、データが消えてしまうというリスクがあるのです。

データが消える7つの場面を「自分で消した」と「ブラウザが消した」の2つに分けた図。左に閲覧履歴の削除・サイトデータの削除・ブラウザの初期化やアンインストール・端末の買い替えや初期化の4つ、右にシークレットモード・長期間訪れなかった・端末の空き容量不足の3つを並べ、長期間訪れなかった場合は何も操作していないのに消えることを示している

まとめると・・・

データが消える原因は 「自分で消した」「ブラウザが消した」 の2つです。

対策:現実的にできること

① 書き出し機能があるなら、使う

サイトやツールによっては、データをファイルに書き出す機能が付いていることがあります。

「エクスポート」や「バックアップ」、「保存」 といった名前の機能ですね。

書き出したファイルは、端末内にダウンロードされることと思います。

これらは、ファイルなので端末を買い替えても残るものです。

② 大事なものは置かないようにする

もっとも重要なのがこれです。

ブラウザ保存は下書き置き場と考えておくと良いでしょう。

長期間の保管場所にはせず、消えても困らないデータだけを使うようにするのがおすすめです。

私は自分で作ったツールを毎日使用しており、データもブラウザ保存をしていますが、大切に長期間保管しておきたいデータに関しては、別の場所に移すようにしています。

ブラウザ保存で使っているのは、

  • その日だけ使うデータ
  • なくなっても困らない、あれば便利なメモ
  • かんたんなゲームのデータ

こういったものだけ。

作業をしながら「大切だな」「なくしたくないな」と思うものが出てきたら、エクスポートして保存しておくようにしています。

では、なぜブラウザ保存を選ぶのか

ここまで読むと、

「そんなに消える可能性があるなら、ブラウザ保存は辞めたほうがいいんじゃない?」 「やっぱり、サーバー保存が安心・安全だね」

と思うかもしれません。

ここで、サーバー保存について少しお話していきたいと思います。

会員登録をしてから使うツールやアプリは、基本的にサーバー保存をしていると考えて良いでしょう。

サーバー保存は、利用者登録やアカウントの紐づけをしておけば、端末やブラウザを変えてもデータを引き継げるというメリットがあります。

もちろん、ブラウザの履歴削除やキャッシュクリアによる影響も受けません。

ただし、制作者がデータを預かる必要があります。

つまり、制作者がコストをかけて管理をしているわけなのです。これには、いくつかのリスクが伴います。

ひとつはプライバシー面のリスク。めったにないこととは思いますが、他人にデータを預けるわけなので個人情報を盗まれてしまうリスクなどが生じます。

もうひとつは、データ消失のリスクです。

どのサービスにおいても、いつまで同じ環境を維持できるかを約束するのは難しいものです。

突然サービスを終了になることもあれば、制作者が契約しているデータの保管先を変更したりすることもあるでしょう。また、何らかの不測の事態により、開発が止まってしまう可能性もあります。

そうなると、サーバーに預けられていたデータも、運営側の事情に影響を受けてしまうわけです。

一方、ブラウザ保存では、利用者のデータを最初から制作者のサーバーで預かりません。

少なくとも「制作者が保存用サーバーを維持できなくなったから、預かっていたデータも一緒になくなる」という構造にはなりません。

もちろん、ブラウザ保存にもこの記事で書いてきたような消失リスクがありますが、他人のデータを扱うからこそ、敢えて制作者側が預からないというのも、個人開発者にとってはひとつの現実的な選択だと考えています。

つまり、

一見するとブラウザ保存は「サーバーを用意できないから仕方なく使うもの」と思われがちなのですが、

登録不要ですぐ使えて、利用者のデータや情報を預からず、運営側の事情だけで保存データまで巻き込まれにくくするための仕組み。

と言うこともできるのです。

まとめ

  • ブラウザ保存は「同じ端末の、同じブラウザ」の中だけ。両方揃わないと見えない
  • サーバーに送らないから安心なのと、消えても誰も助けられないのは同じ性質の裏表
  • 消える原因は「自分で消した」と「ブラウザが消した」の2つ。後者は止められない
  • ブラウザの同期では引き継がれない
  • 対策は書き出し機能を使うこと。無いなら、そこを唯一の保管場所にしない
  • 作る側は「保存先・消える条件・引き継げないこと・バックアップの有無」を必ず書く

ブラウザ保存は、とても便利な仕組みですが、

  • 貴重なデータは預けない
  • 残したいデータはバックアップを取っておく

これだけ守っておけば、万が一のことがあっても、さほど困らずにいられるかと思います。

ブラウザ保存を使用したツール例