1 of 45

Веб-сервер та бази даних. Взаємодія клієнт-сервер

Модуль «Веб-технології»

Урок 29

2 of 45

Повторюємо

  1. Що таке хостинг?
  2. Назвіть види хостингів.
  3. Опишіть різницю між віртуальним виділеним сервером; виділеним сервером.
  4. Пригадайте, що таке SSL
  5. Які, на вашу думку, недоліки має безкоштовний хостинг? �

3 of 45

НАГАДАЄМО

  • Розробка зі сторони браузера називається front-end, а розробка на стороні сервера — back-end. Серверну сторону веб-сайта найчастіше пишуть такими мовами програмування, як Python, PHP, Java, C#, Ruby, JavaScript.

4 of 45

Веб-сервер та бази даних

5 of 45

Цікаво

  • Перший у світі веб-сервер:�робоча станція NeXT Computer з Ethernet, 1990.
  • На етикетці написано:

«Ця машина є сервером. НЕ ВИМИКАТИ!!» �

6 of 45

Веб-сервер — це програма, яка створює і повертає відповіді на запити веб-pecypcів клієнтами.

7 of 45

Поняття веб-сервера несе два змістових навантаження

  • З одного боку, це сервер, на якому розміщено веб-сайт з усіма файлами, з яких він складається,
  • З іншого — так називається програма, що опрацьовує запити клієнтів, які стосуються веб-ресурсів. �

8 of 45

Порядок дій опрацювання клієнтського запиту:

1) синтаксичний аналіз запиту;�2) перевірка повноважень;�3) зв'язування URL у запиті з ресурсом у файловій системі сервера;�4) побудова відповіді;�5) повернення відповіді клієнту, який звернувся із запитом. �

9 of 45

Як працює веб-сервер

10 of 45

  • Сервер може генерувати повідомлення-відповідь у різний спосіб. У найпростішому випадку сервер лише витягує файл, пов’язаний із URL, та повертає вміст клієнту. В інших випадках сервер може викликати сценарій, який зв’язується з іншими серверами або БД для побудови повідомлення-відповіді �

11 of 45

Цікаво

  • Моніторингові компанії приводять порівняльну статистику, зіставляючи кількість наявних сайтів для різних веб-серверів.
  • У всіх подібних дослідженнях фігурують лише три назви: Apache, IIS (сервер компанії Microsoft) і NGINX.
  • Саме на цих трьох китах тримається основна частина мережевого світу. Безумовним лідером понад 20 років залишається Apache. �

12 of 45

Логотипи найпопулярніших веб-серверів

13 of 45

Apache

кросплатформний веб-сервер, добре працює як на Unix-, так і на Windows-серверах. Сервер і клієнт взаємодіють за протоколом HTTP

Apache відповідальний за безпечне з’єднання між двома машинами.

Веб-сервер працює з різними мовами програмування (PHP, Python, Perl та ін.) за�допомогою спеціального модуля Apache (mod_php, mod_python, mod_perl та ін.) �

14 of 45

Nginx

веб-сервер, перший реліз якого відбувся в 2004�році. Наразі він набув значної популярності.

Nginx було створено для розв’язування так званої «проблеми c10k» — проблеми 10 тисяч з'єднань. Це означає, що веб-сервери, що використовують потоки, не можуть обробляти запити користувачів більше ніж з 10 000 підключень одночасно.

�Веб-сервер Nginx має подійно-орієнтовану архітектуру, тобто він обробляє кожен вхідний запит в єдиному потоці. Він використовується сайтами з великою кількістю показів, такими як Netfl ix, Pinterest і Airbnb �

15 of 45

Apache Tomcat

HTTP-сервер, який обробляє додатки Java замість статичних сайтів.

Google Web Server, IBM HTTP Server (IHS), Oracle HTTP Server (OHS) — всі ці сервери базуються на Apache і доопрацьовані відповідно компаніями�Google, IBM та Oracle �

16 of 45

Опрацьовуючи HTTP-запит сервер Apache Tomcat виконує:

1) перетворення URL-запиту в шлях до файла у файловій системі сервера;�2) визначення, чи має запит дозвіл на доступ до файла;�3) ідентифікацію;�4) виклик обробника для створення відповіді;�5) передачу відповіді клієнту;�6) створення запису про запит у журналі �

17 of 45

NODE.JS

кросплатформений веб-сервер, що працює з одним потоком

Перевага в тому, що і клієнтська частина, і серверна частина написані однією мовою —�JavaScript.

Запити до бази даних можна робити, також використовуючи цю мову. �

18 of 45

PHP

  • Якщо отримано запит із розширенням .php, сторінки обробляються PHP (Hypertext Preprocessor або Personal Home Page).
  • PHP є мовою сценаріїв, який не залежить від платформи, сценарії вбудовуються в HTML-код.
  • Інтерпретатор РНР виконується під управлінням веб-сервера, інтерпретатор здійснює синтаксичний аналіз і обробку файлів.
  • РНР-файл може містити дані, відправлені користувачем у HTML-формах. �

19 of 45

Типи серверів

20 of 45

Сервер додатків (Application server)

  • Cервер, на якому створені додатки, які�використовують БД, веб-сервіс тощо.
  • Цей сервер додатків буде розміщувати бізнес-рівень (загорнутий веб-службами), заплановані завдання, служби Windows та ін.�

21 of 45

Сервер баз даних

  • Матиме одну або кілька БД, таких як�Oracle, SqlServer, MySql та ін.
  • Програмне забезпечення веб-сервера, додатків і БД може працювати на одному фізичному сервері або розподілятися�по кількох фізичних машинах.
  • На більшості великих сайтів є кілька машин; більшість «споживчих» хостингових пакетів�запускаються в одному вікні. �

22 of 45

Пригадайте

  • Принцип роботи реляційної бази даних
  • Яка мова використовується при створенні запитів до реляційних баз даних

Логотипи популярних реляційних БД�

23 of 45

НЕРЕЛЯЦІЙНІ БД

Потреба у складних веб-сайтах, що повинні бути швидкими при великих об’ємах даних, у веб-чатах, спонукала до створення нереляційних (NoSQL) БД.

дві підгрупи нереляційних БД:

1. розв’язує питання швидкодії під час роботи з великими об’ємами даних

2. дозволяє будувати ефективні «живі» веб-застосунки (такі як чати і новини в соцмережах). �

24 of 45

Послідовність роботи серверів

  • Веб-сервер обробляє запити HTTP (S) і передає їх «обробникам». У них є вбудовані обробники для запитів файлів — HTML-сторінки, зображення, CSS, JavaScript тощо.�
  • Якщо необхідно обробити динамічну сторінку, сервер передає її серверу додатків який здійснить читання коду, що знаходиться на сторінці, сформує остаточну сторінку відповідно до прочитаних кодів, а потім вилучає цей код зі сторінки
  • У результаті сформована статична сторінка, передається веб-серверу, який відправляє її клієнтському браузеру.
  • Всі сторінки, які отримує браузер, містять тільки HTML-код. �

25 of 45

Аналізуємо. Обговорюємо

  1. Назвіть завдання серверної сторони.
  2. Чим відрізняються back-end і front-end?
  3. Які мови програмування використовують�back-end-програмісти?
  4. Наведіть приклади використання серверів.
  5. Опишіть послідовність роботи серверів �

26 of 45

Взаємодія клієнт-сервер

27 of 45

  • Клієнт і сервер взаємодіють один з одним у мережі Інтернет або в будь-якій іншій комп’ютерній мережі за допомогою різних мережних протоколів.
  • Повідомлення, які надсилають клієнти, отримали назву�HTTP-запити. Вони містять певні методи, які вказують серверу, як саме обробляти повідомлення.
  • Повідомлення, які надсилає сервер, отримали назву HTTP-відповіді. Крім корисної інформації вони містять спеціальні коди стану, що дозволяють браузеру дізнатись, як сервер зрозумів його запит. � �

28 of 45

29 of 45

Модель клієнт-сервер

30 of 45

  • Веб-сервер може обмежувати доступ користувачів до певних ресурсів. Керування доступом потребує поєднання автентифікації та авторизації �

31 of 45

Автентифікація (перевірка справжності)

  • визначає користувача, який ініціював запит, а під час перевірки повноважень з’ясовується, чи може користувач мати доступ до певного ресурсу.
  • Більшість систем клієнт — сервер автентифікують користувача, запитуючи в нього ім’я і пароль. У цьому випадку на сервері розташовано файл, який містить імена і паролі всіх зареєстрованих користувачів.
  • З метою захисту інформації паролі можуть зберігатися в зашифрованому вигляді.
  • Процес автентифікації дає можливість серверу ідентифікувати користувача, який звернувся з HTTP-запитом. �

32 of 45

Авторизація (перевірка повноважень)

  • Для керування доступом до веб-ресурсів сервер повинен реалізувати�стратегіюавторизації.
  • Йому необхідно мати ефективний спосіб визначення, які автентифіковані �користувачі можуть мати доступ до певного ресурсу. �

33 of 45

  • Веб-браузери взаємодіють із веб-серверами за допомогою протоколу передавання гіпертексту (HTTP)
  • Будь яка дія користувача спонукає�браузер надсилала на сервер HTTP-запит. � �

34 of 45

HTTP-запит включає:

  • шлях, який визначає цільові сервер і ресурс (наприклад,�файл, певна точка даних на сервері, що запускається сервіс, та ін.);
  • метод, який визначає необхідну дію (наприклад, отримати�файл, зберегти або відновити деякі дані тощо)

35 of 45

Методи передавання даних

  • GET – отримати певний ресурс, наприклад, HTML-файл, що містить інформацію про�товар або список товарів;
  • POST - створити новий ресурс, наприклад, нову статтю на Вікіпедії, додати новий контакт в базу даних;�

36 of 45

метод HEAD

  • отримати метадані про певний ресурс без отримання змісту, як робить GET.
  • Можна використовувати запит HEAD, щоб дізнатися, коли в останній раз ресурс�оновлювався, і тільки потім використовувати (більш «витратний») запит GET, щоб завантажити ресурс, який було змінено;�•

37 of 45

Метод PUT

оновити існуючий ресурс або створити новий,�якщо такого не існує��

Метод DELETE

вилучити вказаний ресурс

38 of 45

Взаємодія «клієнт — сервер» на прикладі статичного сайта

  • Коли користувач хоче перейти на сторінку, браузер відправляє HTTP-запит GET із зазначенням URL-адреси його сторінки�HTML.
  • Сервер витягає запитуваний документ зі своєї файлової�системи і повертає відповідь HTTP, що містить документ, і код�стану HTTP «200 OK» (із зазначенням успіху).
  • Серверу для статичного сайта буде потрібно лише обробляти запити GET
  • Він також не змінює свої відповіді на основі даних HTTP-запиту�

39 of 45

Порядок дій для роботи з динамічним сайтом

  1. Веб-браузер створює HTTP-запит GET на сервер з використанням базової URL-адреси ресурсу. Запит GET використовується, тому що запит — це лише вибірка даних (не зміна даних).

  • Веб-сервер виявляє, що запит є «динамічним» і пересилає його у веб-додаток для обробки (веб-сервер визначає, як обробляти різні URL-адреси на основі правил зіставлення шаблонів, визначених у його конфігурації).

  • Веб-додаток визначає мету запиту, отримує необхідну інформацію з бази даних (використовуючи додаткові «внутрішні» параметри). �

40 of 45

Порядок дій для роботи з динамічним сайтом

  1. Веб-додаток динамічно створює HTML-сторінку, поміщаючи дані (з бази даних) у наповнювачі всередині HTML-шаблону.
  2. Веб-додаток повертає згенерований HTML�у веб-браузер (через веб-сервер) разом з кодом стану HTTP 200 («успіх»).
  3. Веб-браузер починає обробляти повернутий HTML, відправивши окремі запити, щоб отримати будь-які інші файли CSS або JavaScript, на які він посилається.
  4. Веб-сервер завантажує файли з файлової�системи й повертає безпосередньо в браузер �

41 of 45

Взаємодія «клієнт — сервер» на прикладі динамічного сайта

42 of 45

Аналізуємо.Обговорюємо

  1. Що таке автентифікація та авторизація?
  2. У чому різниця?
  3. Як називають повідомлення, сформовані клієнтом; сервером?
  4. У чому різниця між методами GET і POST?
  5. Опишіть механізм автентифікації користувача на сервері.
  6. Які протоколи (крім HTTP) використовуються під час взаємодії «клієнт — сервер»?

43 of 45

Завдання для самостійного виконання

  • Поясніть повідомлення, наведене на рисунку. Коли воно може з’явитися?

44 of 45

Домашнє завдання

Знайдіть відомості в Інтернеті про розвиток реляційних баз даних.

Результат роботи представте у вигляді презентації та надішліть вчителю на поштову скриньку

45 of 45