Страница 1 из 1

Обработка данных на серверной стороне - основной принцип

Добавлено: 09 май 2012, 13:50
Kurutah
Часто встречаются споры между сторонниками делать обработку данных на серверной стороне (основной аргумент - безопасность) и сторонниками максимально загружать клиента (аргумент - не перегружать сервер).

Я раньше серверную сторону использовал только как посредника и замучался возиться со взломщиками. Хочу доучиться, и сразу возник вопрос об основном принципе. Правильно ли я понимаю, что почти в каждом запросе нужно делать сначала SELECT а затем UPDATE или INSERT в зависимости от задачи? То есть раньше я обращался к пхп скриптам уже с чёткой целью, и обычно в каждом скрипте был 1 запрос к MySql. Но если планировать делать всё на сервере, получается - сначала SELECT затем второй запрос с операцией.

2 вопроса:

1. Правильно ли я понял основной принцип. Если нет - то прошу сформулировать просто для дурака, что значит обрабатывать данные на серверной стороне :)
2. Если я понял правильно, сильный ли рост нагрузки на сервер выйдет из-за того что количество запросов к БД вырастет примерно в два раза?

Спасибо.

Re: Обработка данных на серверной стороне - основной принцип

Добавлено: 09 май 2012, 15:20
Alazaur
1. Да вы все правильно поняли. Если нужно что-то купить, делаете запрос, проверяя есть ли у пользователя достаточно денег, если есть покупаем, если нет то ругаемся)))
2. Если у вас запросы к серверу идут по действиям пользователя, то есть каждый пользователь не долбит постоянно сервер по 5 раз в секунду, то 3 - 4 запроса в БД это не нагрузка для сервера. В пример поставлю популярные CMS такие как Drupal или Joomla там по 50 запросов на каждую загрузку страницы)))

Re: Обработка данных на серверной стороне - основной принцип

Добавлено: 09 май 2012, 17:13
alexei
1) Можно использовать WHERE:

Код: Выделить всё

UPDATE health=maxhealth, cash=cash-500 WHERE cash>=500 AND vkid=1
И узнаем, сколько строк обработано. Это более оптимизировано.

2) Будет нагрузка. Но что поделать. Главное безопасность.

Re: Обработка данных на серверной стороне - основной принцип

Добавлено: 10 май 2012, 21:00
Александр
На клиенте следует выполнять операции, которые не требуют их скрытия от пользователя.
Например, если надо получить только количество символов в тексте, то можно посчитать их на клиенте и передать одну цифру, а не передавать весь текст и делать подсчет на сервере.

Нагрузка на сервере будет сильно заметна при большом количестве пользователей. Чтобы снизить её в этом случае, можно использовать кэширование. Всё конечно же не закэшировать.
Например, не вытаскивать каждый раз таблицу рекордов из базы, а хранить кэш, который обновлять раз в несколько секунд/минут.