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

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
Kurutah
Сообщения: 42
Зарегистрирован: 09 ноя 2011, 12:40

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

Сообщение Kurutah »

Часто встречаются споры между сторонниками делать обработку данных на серверной стороне (основной аргумент - безопасность) и сторонниками максимально загружать клиента (аргумент - не перегружать сервер).

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

2 вопроса:

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

Спасибо.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

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

Сообщение Alazaur »

1. Да вы все правильно поняли. Если нужно что-то купить, делаете запрос, проверяя есть ли у пользователя достаточно денег, если есть покупаем, если нет то ругаемся)))
2. Если у вас запросы к серверу идут по действиям пользователя, то есть каждый пользователь не долбит постоянно сервер по 5 раз в секунду, то 3 - 4 запроса в БД это не нагрузка для сервера. В пример поставлю популярные CMS такие как Drupal или Joomla там по 50 запросов на каждую загрузку страницы)))
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

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

Сообщение alexei »

1) Можно использовать WHERE:

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

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

2) Будет нагрузка. Но что поделать. Главное безопасность.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

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

Сообщение Александр »

На клиенте следует выполнять операции, которые не требуют их скрытия от пользователя.
Например, если надо получить только количество символов в тексте, то можно посчитать их на клиенте и передать одну цифру, а не передавать весь текст и делать подсчет на сервере.

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