HTML5 хранилище данных на стороне клиента

HTML5 хранилище данныхПоследние годы развитие технологий перемещает все большее количество вычислений со стороны сервера к клиенту. В связи с этим возникает необходимость хранилища данных не только на сервере, но и у пользователя. Традиционный метод решения этой проблемы – механизм cookie. Если его отключить, то серфинг станет гораздо менее комфортным, и пользователь лишится множества возможностей:  усложнится аутентификация, станет невозможно отслеживать сессии,  исчезнут возможности персональных предпочтений и настроек и перестанут работать системы сбора статистики.

Ку́ки (слово не склоняется; от англ. cookie — печенье) — небольшой фрагмент данных, созданный веб-сервером или веб-страницей и хранимый на компьютере пользователя в виде файла, который веб-клиент (обычно веб-браузер) каждый раз пересылает веб-серверу в HTTP-запросе при попытке открыть страницу соответствующего сайта. (Источник: Wikipedia)

Не смотря на широчайшее распространение этой технологии, cookie имеют множество недостатков. Основным из них является ограничение по размеру. Для сохранения совместимости не рекомендуется превышать размер в 4 кБ. Следующей проблемой является рост трафика, так как при каждом запросе к серверу cookie автоматически к нему присоединяется.  Безопасность cookie тоже не всегда может быть гарантирована, так как во многих случаях они передаются по открытым каналам связи, не говоря уже о возможности прямого доступа к файлам на диске, которые хранятся в не зашифрованном виде.

Необходимость в альтернативном хранилище данных на стороне клиента назрела уже давно, и в контексте господствующей тенденции к применению HTML5 формируется новый стандарт.  На данный момент стандарт W3C HTML5 Web Storage  находится еще на стадии черновика,  но его принятие уже назревает. Последняя доступная редакция датирована 28 ноября текущего года, что говорит о ведущейся в этом направлении работе.

Сейчас технология Web Storage уже поддерживается браузерами IE8, Firefox 3.5, Safari 4, Google Chrome 4, Opera 10.50 и более новыми их версиями. Таким образом она уже может применяться.

Учитывая все проблемы технологии cookies можно быть уверенным, что новый стандарт получит заслуженное распространение. Такая техническая возможность не может остаться не востребованной. Новый стандарт обеспечивает два огромных преимущества: простой API и огромный размер доступной памяти.

В настоящий момент в документе определено 2 типа хранилища данных: session storage и local storage. Session хранилище предназначено для хранения данных в пределах одной сессии и доступно для всех экземпляров сайта параллельно открытых в разных вкладках. Local хранилище не имеет привязки к сессии и может содержать мегабайты данных. Основной сферой его применения должно стать хранение пользовательских документов или, например, почты, для повышения производительности и снижения нагрузки на сервер. Каждый сайт имеет отдельное хранилище, размер которого может быть задан с участием пользователя. Подобный метод хранения данных уже применялся в Silverlight.

HTML5 хранилище данных обеспечивает множество интересных возможностей для разработчиков. Наконец-то появляется возможность запуска веб приложений офлайн и хранения пользовательских данных между сессиями. Отличным примером такого использования могут стать, например, добавленные в корзину электронного магазина продукты. Ощутимым недостатком такого хранилища является то, что с нем могут содержаться только текстовые данные (string). Так же нельзя забывать о безопасности. Помните, что для передачи данных рекомендуется использовать безопасные соединения.

Говоря о развитии стандарта HTML5 нельзя не вспомнить о нашей коллекции HTML5 шаблонов, которая в свою очередь призвана задавать стандарты  современного дизайна.

Прокомментируйте первым.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>