1. Знайомство з вебзастосунками

Сьогодні починаємо вчитися писати власні вебзастосунки. Великі складні серверні вебзастосунки – це сфера, де Java має домінуюче становище, і де Java-програмісти заробляють найбільше грошей :)

То що таке ці вебзастосунки? Вебзастосунок – це програма, яка замість графічного інтерфейсу зробила веб-інтерфейс, який можна відкривати в браузері як звичайний сайт. Таким чином, велика та складна програма працює на сервері, а звертатися до неї можна з будь-якого браузера.

У чому відмінність сайту від вебпрограми? Чіткого кордону немає. Сайт скоріше розрахований на зберігання та відображення контенту. Вебзастосунок, в свою чергу, виконує на сервері великі й складні завдання.

Наприклад, у тебе є вебзастосунок, який через простий інтерфейс дозволяє займатися на сервері монтуванням відео. Важко назвати таку програму сайтом.

Зайди, наприклад, на сервіс GitLab і спробуй сказати, що це сайт

2. Знайомство з вебсерверами

Ще в 90-ті роки, коли з'явилися перші вебзастосунки, вирішили ділити їх на дві частини: власне, сам вебзастосунок та веб-сервер.

Веб-сервер брав на себе всю рутинну частину роботи з HTTP-протоколом:

  • Роздача статичних файлів, як-от HTML, CSS, JavaScript;
  • управління правами доступу до ресурсів;
  • Управління завантаженням, роботою та вивантаженням веб-додатків;
  • ведення логів, протоколювання помилок;
  • Забезпечення взаємодії веб-додатків один з одним тощо.

Бізнес-логіку програми виносили у вебзастосунок, а все загальне, що є у всіх вебзастосунків, винесли до веб-сервера. Це дозволило розвивати веб-сервер незалежно від веб-програми, і використовувати один веб-сервер у тисячах програм.

У результаті веб-сервер перетворився на якусь платформу для вебзастосунків. У нього навіть з'явився свій API, який можуть викликати вебпрограми.

Але найважливіше: через те, що один сервер використовувався тисячі разів, було дуже вигідно витрачати сили Java-спільноти на додавання фіч саме до загального веб-сервера, а не кожному до свого вебзатосунку.

Саме так з'явився найпопулярніший веб-сервер для вебзастосунків на Java – Apache Tomcat. Офіційна сторінка проєкту – https://tomcat.apache.org/

Це дуже потужний веб-сервер, його можна гнучко конфігурувати. Йому вже понад 20 років і зараз (на момент написання лекції) доступна його 9-та версія. Фактично, це стандарт галузі, тож тобі потрібно навчитися з ним працювати.