Web Storage
Webサーバがブラウザ側にデータを保管する技術としては従来からHTTP Cookie(クッキー)があるが、Web StorageはCookieよりも最大容量が大きく、HTTPヘッダで直に値をやり取りしないという違いがある。
Web Storageでは、データを永続的に保管する「localStorage」(ローカルストレージ)と、サーバとクライアントの間の連続したやり取り(セッション)の間だけ一時的にデータを保管する「sessionStorage」(セッションストレージ)に分かれている。ブラウザの実装によるが、いずれもサーバあたり5~10MB程度の容量があり、4KBまでのCookieから大幅に拡張されている。
Cookieと同じように、あるサーバから受け取ったデータを他のサーバへ送信することはできないよう制限が課されている。「同一生成元ポリシー」に基づいて、同一のURIスキーム(httpやhttps)、同一のホスト名(ドメイン名まで省略せず記したFQDN)、同一のポート番号の組み合わせのみを同一の送信元とみなす。
Cookieはすべてのファイルの送受信のたびに自動的にHTTPリクエストやHTTPレスポンスのヘッダ領域に付加されて送受信されたが、Web Storageではクライアント側が受信したページに記述されたJavaScriptなどのスクリプトによって送受信が制御される。クライアント側が必要なタイミングで値の取得や送信が可能である。
データは一対のキー(key)と値(value)をセットにして連想配列(KVS:Key-Valueストアとも呼ばれる)に保管される。ストレージに値を書き込むときは標識となるキーを指定し、後からその値が必要なときはそのキーを指定すれば取り出すことができる。キーには文字列を指定するが、値として保存できるのはJavaScriptが扱うデータなら文字列、数値、配列、オブジェクトなど何でもよい。