Кратко
- HTTP/1.0 мог отправить путь по TCP, но адрес назначения не сохранял для Web-сервера DNS-имя, выбранное клиентом.
- HTTP/1.1 потребовал Host, чтобы путь принадлежал правильному пространству ресурсов и несколько сайтов могли делить один IP.
- Абсолютный request-target также несёт authority, поэтому стандарты определили приоритет, переписывание proxy и отказ при отсутствии, дубликате или неверном Host.
Адрес и косая черта
RFC 1945 зафиксировал обычный HTTP/1.0. Клиент разрешал имя, открывал TCP и часто посылал только путь. При одном сайте на адрес GET / казался достаточным: соединение неявно выбирало единственный корень.
Когда несколько имён ведут к одной IP, это исчезает. DNS-запрос не входит в TCP-поток. Сервер получает адрес и порт, но не исходную метку. На общем endpoint один / относится к разным сайтам.
Host вернул authority в сообщение
RFC 2068 в 1997 году обязал HTTP/1.1 передавать Host. Прямой запрос несёт путь и query в строке, а сетевое местоположение — в Host. Точная ресурсная цель складывается из обоих.
Отсутствие Host требовало 400. Спецификация назвала целью несколько сайтов на IP и возврат адресов, выделенных только для различения Web-имён.
Host сообщает намерение, но не доказывает владение. Origin обязан проверить, обслуживает ли он эту authority.
Две authority требовали победителя
Origin-form обычно содержит путь. Absolute-form для proxy уже включает scheme, host и path. Если абсолютная URI говорит одно, а Host другое, сообщение указывает две цели.
RFC 2068 дал приоритет URI. RFC 7230 потребовал от proxy заменить Host authority из request-target. Конфликт должен закончиться на посреднике.
Нет Host, несколько строк или неверное значение — 400. Выбор первой или последней копии позволил бы proxy, cache и origin разойтись по сайтам.
Эффективная цель строится
RFC 7230 называет результат effective request URI. В установленном порядке участвуют конфигурация, контекст соединения, форма target и Host. Путь получает смысл только внутри authority.
User agent объявляет, proxy нормализует, origin проверяет и выбирает virtual host. Cache key и redirect должны следовать тому же решению. RFC предупреждает о непроверенном Host во внутренней маршрутизации и общем кеше.
Риск создаёт реальная власть поля: значение от запрашивающей стороны выбирает адресата приложения.
Формат изменился, единственность осталась
RFC 9112 сохраняет один валидный Host в HTTP/1.1. Неоднозначность не исправляется догадкой.
HTTP/2 использует :authority. RFC 9113 требует при переводе в HTTP/1.1 создать из неё Host и заменить прежний, если одновременно не меняется target. Перевод сохраняет одну идентичность.
Host отделил сайт от IP и возложил на каждый hop обязанность сохранить одно согласованное имя.
Источники и пределы
Закрытый набор: RFC 1945, RFC 2068, RFC 7230, RFC 9112, RFC 9113. Он устанавливает правила и мотивы, не нынешние числа сайтов, сэкономленных IP, defaults или инцидентов. Host не аутентифицирует DNS, TLS и отправителя.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
