Преимущество и недостаток сохранения состояния в представлении восстановления в клиент-серверном JSF 2

На этапе восстановления представления JSF 2 мы можем настроить сохранение состояния каждого компонента на сервере или клиенте с помощью

<context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>client</param-value>
</context-param>

У меня вопрос, в чем преимущество и недостаток, если мы сохраняем состояние на стороне клиента или на стороне сервера?
Большое спасибо!


person phanhongphucit    schedule 31.05.2013    source источник


Ответы (1)


Сначала вы должны прочитать

Подводя итог ответа на ваш вопрос,

Клиентская сторона. Сохранение состояния на клиенте снижает нагрузку на сервер за счет дополнительного сетевого трафика. Это связано с тем, что по умолчанию клиентская сторона хранится в виде большого скрытого поля <input> в веб-браузерах. Сохранение состояния на клиенте также лучше работает в ситуациях отработки отказа, потому что даже если сервер не работает, состояние не будет потеряно.

Сохранение состояния на стороне клиента имеет проблемы с безопасностью, а также накладные расходы на сериализацию всего дерева JSF каждый раз.

На стороне сервера: предотвращает CSRF и фишинговые атаки.

person Vikas V    schedule 31.05.2013
comment
CSRF не является большой проблемой в JSF; состояние, сохраненное на клиенте, зашифровано и может быть дополнительно зашифровано в зависимости от вашей реализации. :-) - person Edward Quixote; 27.08.2020