Як працює сервер?
Сервер - це якась програма, апарат або програмно-апаратний комплекс, який реалізує якісь сервіси. У свою чергу сервіс - це служба, яка виконує якісь дії, запитувані клієнтом. Давайте розглянемо уважніше, як працює сервер.
Складові клієнт-серверної схеми
Подивимося, з чого складається сам сервер і без яких зовнішніх компонент він не може обходитися. По-перше, сервер втрачає свій сенс за відсутності клієнтів. Принцип роботи сервера - реалізовувати потреби клієнтів. Клієнт формує вимоги до сервера і бере на себе деяку частку його роботи. Тому частіше говорять не просто про сервер, а про систему клієнти-сервер. Клієнт становить запити до сервера, за допомогою яких виявляють свою волю. Тому наступним, другим компонентом системи буде той формальний мову, на якому ці запити складаються. Цих мов велика кількість і вибір того чи іншого напряму залежить від сервера. Запити до сервера повинні якось доставлятися. Третій елемент - канал зв`язку клієнта і сервера, по якому передаються дані. Це найчастіше або локальна мережа, або Інтернет, або локальні зв`язку однієї машини. Прийшовши запит сервер повинен якось прийняти і розпізнати. Приймаючий пристрій - так званий зовнішній інтерфейс, являє собою кілька портів, які сервер безперервно (або не безупинно) слухає. Прийняті запити відправляються в програмну частину сервера, де й обробляються відповідно до того, як сервер запрограмований. І в залежності від прийнятого запиту, запускається той чи інший сервіс з тими чи іншими початковими даними. Сервіси і будуть останньою складовою системи. Після закінчення роботи сервісу результат виконання надсилається клієнту по тому ж каналу зв`язку. Або, якщо сервіс інтерактивний, то і в процесі його роботи буде інтенсивний обмін даними по каналу «клієнт-сервер».
Для чого потрібен сервер
Зараз основне призначення клієнт-серверних систем - перемістити навантаження з машин-клієнтів на машину сервер. Саме тому обчислювальна потужність звичайного сервера на пару порядків вище, ніж она у звичайного домашнього комп`ютера. Але іноді така організація роботи системи віддає всю навантаження на клієнти, а сервер служить для організації їх роботи та взаємодії. Або строго навпаки, сервер виконує всі обчислення, а клієнти служать лише для видачі інформації користувачеві. Як видно, способів використовувати клієнт-серверну модель маса.
Плюси і мінуси моделі
Плюси очевидні - сам принцип роботи сервера забезпечує зручність роботи з системою, простоту управління нею, правильний розподіл навантаження на машини. А мінусом є мова запитів і пов`язані з ним компоненти. Якщо користувач випадково або навмисно відсилає на сервер невірно сформульований запит, то якщо така помилка не була передбачена програмістом, система дасть збій. Обізнані люди складають свідомо невірні запити так, щоб система, покликана видавати клієнту прогноз погоди, вивела зловмисникові, наприклад, дані кредитних карт всіх користувачів (якщо, звичайно, за дані карт і за прогноз погоди відповідає один і той же сервер). І щасливий зловмисник спочатку йде і перераховує собі всі гроші всіх користувачів сервісу, а потім довго і вдумливо тікає від управління «К», що розслідує цей злочин.
Безпека
Клієнт-серверна модель організації роботи системи - дуже зручна в програмуванні, управлінні і роботі річ. Але щоб такий системою можна було користуватися, кожна компонента працюючої схеми повинна бути захищена як від зловмисників, так і від користувачів, які не знають, як працює сервер, але жмущих все кнопочки, до яких зможуть дотягнутися в довільній послідовності. Щоб в системі можна було зберігати, передавати і обробляти важливі дані, наприклад, відомості про платіжні картки, система інформаційної безпеки сервера має задовольняти певним законом вимогам.