【要確認・重要】 ・「Safari / iOSの自動削除(7日)」の節は、ブラウザの仕様変更が起きうる箇所。 ・公開前に Apple の公式ドキュメントか WebKit のブログで現行仕様を確認し、 ・確認した日付を本文に明記してください。確認できなければ節ごと削るのが安全です。 (不確かな仕様を書くと、この記事の一番の価値である「正確さ」が崩れます)

こんにちは。麗です。

みなさんは、登録不要でログインも要らないWebツールやブラウザゲームを使っていて、こう思ったことはないでしょうか。

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

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

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

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

今回は、記事としてまとめました。

ブラウザ保存とは

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

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

だから、

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

代わりに、こうなります。

  • 別の端末には自動で引き継げません
  • キャッシュクリアをすると、消えてしまいます

どこに保存されるのか

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

同じ端末の、同じブラウザ

(大事なことなので、二度書きました)

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

たとえば、

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

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

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

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

ここでいう「見れない」とは、同じデータが見れないということです。

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

このように、webアプリやツール自体は使えるもののデータを引き継ぐことができないということです。

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

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

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

ブラウザ保存は、同じアカウントでログインしているから大丈夫ではありません。

そもそも、ブラウザ保存には、「ログイン」という概念がそもそも無いためです。

開発技術的にはいくつか種類があります。

  • localStorage
  • IndexedDB
  • Cookie

しかし、利用者側から見れば「消える条件」はだいたい同じ

なので、この記事で全部はまとめて「ブラウザ保存」と呼びます。

ブラウザ保存を利用した際に、データが消えてしまう場面を7パターンまとめました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

まとめると、消える原因は「自分で消した」「ブラウザが消した」の2つです。

「同期しているから大丈夫」ではない

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

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

同期の対象は、

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

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

対策:現実的にやれること

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

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

「エクスポート」「バックアップ」「保存」などの名前です。

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

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

ちなみに、このバックアップ機能で使われることが多いのは JSON という形式です。人間が読もうとしても少し難しいかもしれません。

JSON:データをまとめて記録するためのテキストファイルです。中身は文字なので、メモ帳でも開けます(読みにくいですが)。同じツールに読み込ませると元に戻ります。

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

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

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

唯一の保管場所にはせず、消えても困らないものだけを使うようにしましょう。

私は自分で作ったツールを毎日使っていますが、ブラウザ保存をしているツールには、大事なデータは置かないようにしています。

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

こういったものだけをブラウザ保存で利用しています。

残しておきたいデータがあれば、「エクスポート」や「バックアップ」をして保存しておきます。

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

ここまで読むと、

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

と思うかもしれません。

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

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

ブラウザの履歴削除による影響も受けません。

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

これには管理上のさまざまなリスクが伴います。管理が必要不可欠であったり、費用が継続的に発生したりするためです。

もっというと、他人にデータを預けるということは、プライバシー面のリスクもあります。

特に、個人で運営している場合、いつまで同じ環境を維持できるかを約束するのは難しいものです。

サービスを終了することもあれば、契約しているサービスを変更したり、何らかの不測の事態により更新できなくなる可能性もあります。

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

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

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

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

つまり、

ブラウザ保存は「サーバーを用意できないから仕方なく使うもの」というより、

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

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

まとめ

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

ブラウザ保存は、とても便利な仕組みですが、貴重なデータは預けない残したいデータはバックアップを取ること

これだけ守っておけば、消えたときの被害はだいぶ小さくなるかと思います。