Что точно продолжается, когда я перехожу к localhost:8080 в своем веб-браузере? (Tomcat Apache)

Я потратил свою карьеру, делающую все программирование локального приложения (Приложения C++ и этажерка). Я пытаюсь вырыть ноги в веб-мир теперь, как бы то ни было. Я использую Eclipse (Марс) и Tomcat Apache 8.0.23, чтобы попытаться настроить envoirnment, в котором я могу экспериментировать с и узнать о серверном программировании (JSP, PHP, и т.д.). У меня есть все это, настроил таким образом это, когда я ввожу

localhost:8080

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

Что точно продолжается, когда я ввожу localhost?

Куда страница кота прибывает из если не Интернет? Я вполне уверен, данные прибывают из сервера, который благодаря Tomcat, находится на моем ПК, но как мой браузер знал, где найти информацию только от localhost:8080?

Я принимаю 8080, порт или что-то, но я действительно не уверен в этом любой и если это - порт, я не действительно уверен, что это означает.

В основном все, что я знаю (я думаю...) о серверной веб-разработке - то, что в чистой веб-разработке html/css вся работа сделана локально, после того как все загружается, но с серверами часть работы (в некоторых разделителях) уходит к серверу и возвращается введенная в HTML в другой форме (во многом как передающие данные к функции в C++ и различные возвращаемые данные), который затем оттянут к странице локально снова.

11
задан 1 July 2015 в 05:16
4 ответа

Что именно происходит, когда я направляю веб-браузер на localhost:8080?

  1. Вы заставляете веб-браузер запрашивать у операционной системы разрешение имени хоста localhost. Обычно операционная система преобразует имя хоста localhost в 127.0.0.1, ваш интерфейс обратной связи.

  2. Любое имя хоста или IP-адрес, за которым следует : и номер порта, например :8080, сообщают браузеру о необходимости подключения к этому TCP-порту вместо порта 80 веб-сервера по умолчанию.

    Так же, как http://localhost:80/, http://localhost/, http://127.0.0.1/:80 и http://127.0.0.1/ каждый из них соединяется с одним и тем же сервером и портом, так и http://localhost:8080/ и http://127. 0.0.1:8080/ также подключаются к одному и тому же ip-адресу, но по TCP-порту 8080

Дополнительное замечание: В HTTP/1.1, несмотря на то, что веб-браузер подключается к одному и тому же IP-адресу и порту, ко многим веб-серверам, есть небольшая разница между localhost и 127.0.0.1. В зависимости от того, что находится в адресной строке, ваш браузер отправит поле заголовка запроса либо с Host: localhost, либо с Host: 127.0.0.1. Когда веб-сервер правильно сконфигурирован, поле заголовка Host браузера позволяет одному веб-серверу прослушивать на одном порту IP-адреса и обслуживать разные веб-страницы для множества различных доменов, которые разрешаются на один и тот же IP-адрес.

Как операционная система обычно разрешает имена хостов, например, localhost?

  1. В Unix-системах или Unix-системах, таких как Linux или Freebsd, файл имеет формат /etc/hosts, и, скорее всего, в нем есть такие строки:

    127.0.0.1 localhost.
    ::1 локальный хост ip6-localhost ip6-loopback
    
  2. В окнах файл имеет c:\windows\system32\drivers\etc\hosts и обычно имеет похожую строку:

     127.0.0.1 локальный хост.
    

Дополнительное примечание: При желании вы можете добавить строки в файл hosts, например:

127.0.0.1     localhost
127.0.0.1     developer.yourdomain.com
# Deny Browser Request For These Sites
127.0.0.2     www.spam.advertisements.com
127.0.0.2     super.ads.com
# Block These Sites
127.0.0.3     www.dont.go.here.com
127.0.0.3     nsfw.stuff.com 
  • Единый локатор ресурсов (URL) http://developer.yourdomain.com:8080/ в адресной строке вашего браузера, направляет веб-браузер на установление TCP-соединения с портом 8080 вашего локального адреса обратной связи по шлейфу 127.0.0.1. Кроме того, согласно rfc1700 page 4 любой адрес в диапазоне 127.0.0.0/8 также является адресом обратного шлейфа. Таким образом, правильно сконфигурированный веб-сервер, запущенный на вашем компьютере, может отклонить все запросы на порту 127.0.0.2, при этом давая общее "Вам не следует сюда ходить". Сайт заблокирован" для соединений на 127.0.0.3.

Откуда идет страница tomcat?

Apache Tomcat - это сервер, который прослушивает порт и запускает java-программы, которые генерируют контент для отправки в ваш браузер.

.
9
ответ дан 2 December 2019 в 21:52

В этом сценарии вы посылаете запрос на разрешение localhost, который равен 127.0.0.1 (интерфейс loopback), и Apache настроен на прослушивание на порту 8080, когда вы получаете доступ к localhost на порту 8080, он возвращает VirtualHost по умолчанию.

.
1
ответ дан 2 December 2019 в 21:52

Когда вы набираете в веб-браузере www.google.com, он открывает соединение на порту 80 по умолчанию с сервером Google (через поиск DNS, чтобы увидеть, какой IP-адрес www.google.com) и запрашивает веб-страницу. Сервер Google отвечает веб-страницей, которую ваш браузер отрисовывает на экране (обычно путем дальнейших вызовов изображений, CSS и JavaScript).

Когда вы заходите на localhost:8080, это то же самое. Имя сервера Localhost всегда разрешается на машине, на которой вы работаете, и использует поддельный IP-адрес 127.0.0.1 (ваш компьютер будет иметь два IP-адреса - этот поддельный, который есть на каждом компьютере, и реальный). Поэтому у вас должен быть экземпляр Tomcat, работающий локально для прослушивания соединений на порту 8080.

Почему порт 8080, а не порт 80 по умолчанию http? Ну, это на случай, если у вас уже есть веб-сервер.

Обычно у вас есть веб-серверы и серверы приложений.

  1. Веб-серверы (например, Apache httpd) обслуживают статические страницы. На самом деле это как модный односторонний FTP-сервер. Вы открываете TCP-соединение и запрашиваете файл с помощью HTTP-команд (обычно GET). Веб-сервер возвращает HTML-файл, а ваш браузер загружает его и анализирует, видит, что ему нужны другие изображения, и запрашивает их. Веб-сервер очень быстр, но, в основном, поднимает файлы с локального диска и возвращает их.

  2. Сервер приложений (как Tomcat или JBoss) похож, за исключением того, что он обычно запускает код для "создания" запрашиваемой страницы, вместо того, чтобы поднимать ее прямо с диска. Что он делает, чтобы создать эту страницу, зависит от вашего приложения. Оно может подключиться к базе данных, запустить программу, случайно обслужить страницу.... и т.д. Когда вы входите в систему онлайн-банкинга, например, сервер приложений устанавливает сеанс для вас, возвращает идентификатор сеанса в файле cookie, который ваш браузер отправляет обратно каждый раз, когда вы делаете запрос до тех пор, пока вы не выйдете из системы. Таким образом, если вы запрашиваете страницу "мои остатки", то банк ищет, кто вы на основе вашего идентификатора сессии, а затем идет в свою базу данных, чтобы получить ваше имя и банковский баланс, а затем создает страницу, говоря: "Привет Джон Смит, ваш баланс составляет 100 евро". Серверы приложений, как правило, медленнее, но более универсальны, чем сервера Webserver.

Во многих местах WebServer работает на порту по умолчанию 80, а затем AppServer работает на вторичном порту (например, 8080). Поэтому статические страницы обслуживаются быстро, и когда пользователи нажимают на ссылку, которая переводит их на динамическую страницу, ссылка либо переходит на 8080 (на которую отвечает сервер приложений), либо веб-сервер настраивается на переадресацию определенных запросов к серверу приложений (в этом случае он все еще выглядит как порт по умолчанию 80 и поэтому выглядит немного лучше для пользователя).

Конечно, это очень высокий уровень обзора, и ничто не является таким черно-белым. Большинство серверов приложений могут создавать динамический контент, выполняя скрипты (обычно CGI через нее будут скрипты, использующие perl или PHP), и большинство серверов приложений также могут обслуживать простые файлы, как веб-сервер. На самом деле можно просто запустить сервер приложений и изменить номер порта tomcat с 8080 на 80.

Наконец, многие приложения отходят от обслуживания полных HTML-страниц для каждого запроса к серверу приложений (который рассматривается как медленный и неэффективный) и вместо этого отвечают только фрагментами данных, используя AJAX для отправки JSON или XML. Возвращаясь к оригиналу www.google.com, который вы использовали для ввода поискового запроса, нажмите Поиск и получите страницу с результатами. Теперь, вместо этого, по мере того как вы набираете текст, ваш браузер постоянно посылает AJAX-запросы в Google, который отвечает актуальными результатами поиска, основанными на том, что вы набрали до сих пор, а затем ваш браузер обновляет страницу. Это означает, что нет необходимости ждать, пока пользователь отправит страницу так быстро и динамично (как это было бы со старым школьным приложением для рабочего стола)

.
1
ответ дан 2 December 2019 в 21:52

Проще говоря, локальный хост в качестве веб-адреса соединяется с вашей локальной машиной, на которой в данном случае установлен Apache в качестве веб-сервера.

Вторая часть, :8080, означает соединение с портом 8080 этого веб-адреса. Если вы не укажете его, ваш веб-браузер подключится к порту веб-сервера по умолчанию, которым является порт 80.

Если у вас еще есть IP-адрес, localhost - это фиксированная DNS-ссылка на 127.0.0.1.

Должна привести вас туда...

.
0
ответ дан 2 December 2019 в 21:52

Теги

Похожие вопросы