1.1 Знакомство с веб-приложениями

Сегодня начинаем учиться писать свои собственные веб-приложения. Большие сложные серверные веб-приложения – это та область, где Java занимает свое доминирующее положение. И где Java-программисты зарабатывают больше всего денег :)

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

В чем отличие сайта от веб-приложения? Жесткой границы нет. Сайт больше рассчитан на хранение и отображение контента. Веб-приложение же делает на сервере большие и сложные задачи.

Например, у тебя есть веб-приложение, которое через простой интерфейс позволяет на сервере заниматься монтированием видео. Сложно назвать такое приложение сайтом.

Зайди, например, на сервис GitLab и попробуй сказать, что это «сайт»

1.2 Знакомство с веб-серверами

Еще в 90-е годы, когда появились первые веб-приложения, придумали делить их на две части: собственно, само веб-приложение и веб-сервер.

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

  • Раздача статических файлов, таких как HTML, CSS, JavaScript;
  • Управление правами доступа к ресурсам;
  • Управление загрузкой, работой и выгрузкой веб-приложений;
  • Ведение логов, протоколирование ошибок;
  • Обеспечение взаимодействия веб-приложений друг с другом и тому подобное.

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

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

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

Именно так на свет появился самый популярный веб-сервер для веб-приложений написанных на Java – Apache Tomcat. Официальная страница проекта – https://tomcat.apache.org/

Это очень мощный веб-сервер, его можно очень гибко конфигурировать. Ему уже более 20 лет и сейчас доступна его 9-я версия. Фактически, это стандарт отрасли, так что тебе нужно научиться с ним работать.