— Привет, Амиго!

— Здорово, Билаабо! Что у нас сегодня?

— Сегодня я расскажу тебе, как установить web-сервер Tomcat.

Tomcat install, configure - 1

— А веб-сервер – это что? Что такое вообще сервер?

— Есть такой принцип взаимодействия программ – «клиент-сервер». Сервер (от слова serve – обслуживать) – обслуживает запросы клиентов. Клиенты обращаются со своими запросами к серверу, сервер их выполняет и возвращает результат.

Вот представь ситуацию: продавец в магазине обслуживает клиентов. Тогда продавец – это фактически сервер, клиенты магазина – клиенты, а товар, который продавец продает, — результат обработки запроса (результат работы сервера).

— Т.е. сервер – это тот, кто обслуживает запросы/заказы/потребности клиентов, так?

— Да.

— Хорошо, а что же такое – веб-сервер?

— Веб-сервер – это программа, которая обслуживает запросы страниц из браузеров пользователей.

Когда ты вбиваешь в браузере определенный URL(ссылку), то запрос уходит на сервер, сервер этот запрос обслуживает, генерирует веб-страницу и отдает (отсылает) ее обратно браузеру.

Tomcat install, configure - 2

Веб-сервер – это сервер. Браузер – клиент. URL – это запрос. Веб-страница – результат обработки запроса.

— Ага. Ситуация понемногу проясняется. Т.е. веб-сервер – это программа(?), которая генерирует страницы для браузера(ов). Так?

— Да.

Давай возьмем обычную ссылку:

Разбор ссылки
http://javarush.com/alpha/api/contacts?userid=13&filter=none&page=3
Описание частей ссылки
javarush.com – это домен — уникальное имя (адрес) компьютера в интернете
http — это протокол (стандарт) взаимодействия клиента и сервера
alpha/api/contacts – запрос к веб-серверу / запрос веб-страницы на сервере
userid=13 &filter=none & page=3 – параметры запроса

Смотри. Мы берем компьютер, подключаем его к интернету.

Затем покупаем ему доменное имя.

Затем запускаем на нем программу веб-сервер.

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

— Вроде понятно.

— Приведу некоторую аналогию, чтобы все стало еще немного понятнее.

Разбор ссылки обращения
По-русски://Вася,/дай мне папку?номер=13
Описание частей  ссылки запроса
Вася – это уникальное имя компьютера в интернете
По-русски — это протокол (стандарт) взаимодействия клиента и сервера
дай мне папку – запрос к веб-серверу / запрос веб-страницы на сервере
номер=13 – параметры запроса

— Ага. Так действительно понятнее. Спасибо.

— Это еще не все. Иногда на одном компьютере запускают несколько программ – веб-серверов. Для того чтобы их отличать, им назначают номера.

Представь, что домен – это дом. Если в доме живет одна семья, то при отправке ей письма, ты бы написал что-то вроде «ул. Третьего Анти-Марсианского Восстания, дом 5».

А теперь представь, что в доме живет много семей.

— Многоквартирный дом?

— Именно! Очень похоже. Спасибо за аналогию.

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

Пример:

http://javarush.com:80/alpha/api/contacts?userid=13&filter=none&page=3
http://javarush.com:8080/alpha/api/contacts?userid=13&filter=none&page=3
http://javarush.com:443/alpha/api/contacts?userid=13&filter=none&page=3

На самом деле, все сервера – это многоквартирные дома. И в каждом по 65000 квартир (портов).

— А почему 65000?

— Для обозначения номер порта используются два байт данных. 65536 – это максимальное значение в целом типе длинной в два байта.

У каждого протокола (http, https, ftp,…) есть свой порт, используемый по умолчанию.

Если номер квартиры (порт) не указан, то используется порт по умолчанию, который определяется на основе протокола.

Если протокол http, то порт – 80. Если протокол https, то порт – 443, и т.д.

Т.е. эти записи эквиваленты:

Ссылка Что это значит на самом деле
http://www.mail.com http://www.mail.com:80
http://javarush.com http://javarush.com:80
http://javarush.com/alpha http://javarush.com:80/alpha
https://javarush.com/api?x https://javarush.com:443/api?x

— А если порт 444, а протокол – https?

— Я же уже говорил. Если порт не указан, он определяется из протокола, а если указан – используется указанный.

— Ясно.

— Ты знаешь, что люди, кроме имен, иногда еще используют местоимения: я, ты, он,…

— Ага. Но люди странные сами по себе. Стараюсь не обращать на это внимание.

— Так вот, у компьютера тоже есть доменное имя, которое обозначает «Я». Это – localhost.

Если ты в браузере напишешь localhost, то браузер обратится к твоему же компьютеру.

И если у тебя будет установлена программа – веб-сервер, то она будет отдавать браузеру веб-страницы.

— Круто! Хочу запустить себе веб-сервер и открывать его страницы в браузере.

Расскажи мне как это сделать, Билаабо. Пожалуйста!!! Ты же мне друг?

— Для друга Билаабо сделает все что угодно.

Тогда слушай.

Шаг 1
Надо установить JavaJDK
Результат
Установленная JDK

— Билаабо, я же программист 30 уровня, у меня JDK уже давно стоит!

— Отлично, тогда пойдем дальше.

Tomcat install, configure - 3
Шаг 2
Скачать Tomcat 7
Подсказка 1
Погуглить
Подсказка 2
Официальная страница Apache Tomcat
Подсказка 3 (прямая ссылка для Windows пользователей)
Скачать Apache Tomcat

— Есть.

— Отлично.

Шаг 3
Установить Tomcat 7
Используй настройки установки по умолчанию.
Ничего менять не надо.
Экран 3
Tomcat install, configure - 4
Экран 4
Tomcat install, configure - 5

Тут можно задать имя web-сервера и его рабочий порт. По умолчанию 8080.
Ничего менять не надо, оставляем все как есть.

Экран 5
Tomcat install, configure - 6

Указываем папку, где у нас стоит JDK

Экран 6
Tomcat install, configure - 7
Экран 7
Tomcat install, configure - 8

— Ага. Просто покликал Next и все.

— Отлично. Теперь у тебя установлен и запущен веб-сервер Tomcat 7, который слушает запросы на порту 8080. Это стандартный порт для разработки программ.

— Да, Tomcat у меня есть, а как мне написать программу для него?

Я хочу, чтобы он написал что-нибудь интересное. Какую-нибудь прикольную страницу.

— Хорошо, я расскажу тебе, как это сделать, но после небольшого перерыва.