У каждого веб-сервера есть только один веб-сайт?

Jun 30, 2025
Облако и Интернет
НЕКЕШЕРОВАННЫЙ КОНТЕНТ

Когда вы впервые начинаете изучать, как доменные имена, IP-адреса, веб-серверы и веб-сайты сочетаются и работают вместе, это может быть немного запутанным или ошеломляющим. Как все это работает так гладко? В сегодняшнем посте SuperUser Q&A есть ответы на вопросы любопытного читателя.

Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.

Фото любезно предоставлено Розмари Фогтли (Flickr) .

Вопрос

Читатель SuperUser user3407319 хочет знать, каждый ли веб-сервер содержит только один веб-сайт:

Исходя из того, что я понимаю о DNS и связывании доменного имени с IP-адресом веб-сервера, на котором хранится веб-сайт, означает ли это, что каждый веб-сервер может содержать только один веб-сайт? Если веб-серверы содержат более одного веб-сайта, то как все это решить, чтобы я мог получить доступ к нужному веб-сайту без каких-либо проблем или путаницы?

На каждом ли веб-сервере размещается только один веб-сайт или их больше?

Ответ

У участника SuperUser Боба есть для нас ответ:

Обычно браузер включает имя домена в HTTP-запрос, чтобы веб-сервер знал, какой домен был запрошен, и мог соответствующим образом ответить.

HTTP-запросы

Вот как происходит ваш типичный HTTP-запрос:

1. Пользователь предоставляет URL-адрес в виде http: // хост: порт / путь.

2. Браузер извлекает часть URL-адреса хоста (домена) и переводит ее в IP-адрес (при необходимости) в процессе, известном как разрешение имени. Это преобразование может происходить через DNS, но не обязательно (например, файл локальных хостов в обычных операционных системах обходит DNS).

3. Браузер открывает TCP-соединение с указанным портом или по умолчанию использует порт 80 на этом IP-адресе.

4. Браузер отправляет HTTP-запрос. Для HTTP / 1.1 это выглядит так:

Заголовок хоста является стандартным и требуется в HTTP / 1.1. Он не был указан в спецификации HTTP / 1.0, но некоторые серверы все равно его поддерживают.

Отсюда у веб-сервера есть несколько частей информации, которые он может использовать, чтобы решить, каким должен быть ответ. Обратите внимание, что один веб-сервер может быть привязан к нескольким IP-адресам.

  • Запрошенный IP-адрес из TCP-сокета (IP-адрес клиента также доступен, но он используется редко, а иногда и для блокировки / фильтрации)
  • Запрошенный порт из TCP-сокета
  • Запрошенное имя хоста, как указано в заголовке хоста браузером в HTTP-запросе.
  • Запрошенный путь
  • Любые другие заголовки (файлы cookie и т. Д.)

Как вы, кажется, заметили, наиболее распространенная в наши дни установка общего хостинга помещает несколько веб-сайтов на одну комбинацию IP-адрес: порт, оставляя только хост, чтобы различать веб-сайты.

Это известно как Виртуальный хост на основе имени в Apache-land, а Nginx называет их Имена серверов в серверных блоках , а IIS предпочитает Виртуальный сервер .

А как насчет HTTPS?

HTTPS немного отличается. Все идентично до установления TCP-соединения, но после этого должен быть установлен зашифрованный туннель TLS. Цель - не допустить утечки информации о запросе.

Чтобы убедиться, что веб-сервер действительно владеет этим доменом, веб-сервер должен отправить сертификат, подписанный доверенной третьей стороной. Затем браузер сравнит этот сертификат с запрошенным доменом.

Это представляет проблему. Как веб-сервер узнает, какой сертификат хоста / веб-сайта отправить, если ему нужно сделать это до получения HTTP-запроса?

Традиционно эта проблема решалась выделением выделенного IP-адреса (или порта) для каждого веб-сайта, требующего HTTPS. Очевидно, это стало проблемой, поскольку у нас заканчиваются адреса IPv4.

Войти SNI (Указание имени сервера). Теперь браузер передает имя хоста во время согласования TLS, поэтому веб-сервер получает эту информацию достаточно рано, чтобы отправить правильный сертификат. На стороне веб-сервера конфигурация очень похожа на настройку виртуальных хостов HTTP.

Обратной стороной является то, что имя хоста теперь передается в виде обычного текста перед шифрованием и по сути является утечкой информации. Обычно это считается приемлемым компромиссом, хотя, учитывая, что имя хоста в любом случае обычно отображается в запросе DNS.

Что делать, если вы запрашиваете веб-сайт только по IP-адресу?

Что делает веб-сервер, когда он не знает, какой конкретный хост вы запрашиваете, зависит от реализации и конфигурации веб-сервера. Как правило, указывается веб-сайт «по умолчанию», «универсальный» или «резервный», который будет предоставлять ответы на все запросы, в которых явно не указан хост.

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


Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .

Do Web Servers Only Hold One Website Each?

Do Servers Hold One Website Only? (7 Solutions!!)

How To Host Your Website For Free


Облако и Интернет - Самые популярные статьи

Как генерировать случайные числа в Google Таблицах

Облако и Интернет Nov 5, 2024

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Google Sheets предоставляет простую функцию для генерации случайных чисел внут..


Что случилось с плагинами chrome: // в Google Chrome?

Облако и Интернет Apr 19, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Google внес еще одно изменение в внутренние настройки Chrome, удалив страницу chr..


Как создавать общие и совместные фотоальбомы на вашем iPhone

Облако и Интернет Apr 5, 2025

Если вы хотите поделиться фотографиями с одним другом или десятками друзей, создать совместный ал�..


Как изменить значки жесткого диска на вашем Mac

Облако и Интернет Sep 10, 2025

Если вы подключаете много дисков к своему Mac - или подключаете определенный внешний жесткий диск к �..


Как создавать контрольные списки в приложении Notes на iOS 9, OS X и iCloud

Облако и Интернет Jan 19, 2025

Приложение Notes в iOS 9 содержит множество улучшений, таких как рисование эскизов и добавление фотогр�..


Как переключить поиск в Chrome по умолчанию на международный Google

Облако и Интернет Mar 10, 2025

Поисковой системой Google Chrome по умолчанию является Google. В этом есть смысл; единственная проблема в то..


Упростите копирование и вставку текста в Firefox с помощью AutoCopy

Облако и Интернет Aug 19, 2025

Ищете простой способ ускорить копирование и вставку в Firefox? Теперь вы можете наполовину сократить объем ..


Просмотр номеров подписчиков Feedburner, даже если FeedCount не отображается

Облако и Интернет Aug 14, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Если вы блоггер, который не хочет хвастаться своими номерами подписчиков, обра�..


Категории