Ответ 1
При проверке на стороне клиента это клиент (webbrowser), который проверяет ввод с помощью клиентского языка, например. JavaScript. При проверке на стороне сервера это сервер (веб-сервер), который проверяет ввод с помощью серверного языка, например. Ява.
Вы никогда не должны проверять на стороне клиента только, потому что конечный пользователь может контролировать (и, следовательно, также hackable/spoofable). Обычно вы хотите использовать проверку на стороне клиента, поскольку она дает гораздо более высокую обратную связь. Конечный пользователь не должен ждать завершения подачи формы и не должен сталкиваться с "вспышкой содержимого" (страница затухает, а затем повторно отображается с новым контентом). Вы хотите использовать проверку на стороне сервера, чтобы обеспечить целостность представленных данных. Конечный пользователь никоим образом не контролирует результат проверки на стороне сервера.
В случае JSF проверка всегда является серверной. Поскольку JSF 2.0 позволяет отправить форму (и, следовательно, также проверить ее), используя встроенную аяксиальную функциональность. Это сочетает в себе лучшие из двух миров: мгновенную обратную связь без вспышки контента и надежность/целостность проверки на стороне сервера.