Happ VPN

XHTTP: что это

Автор
Екатерина Лебедева, редактор раздела knowledge base
Проверил:
Артём Волков
Проверено:
Опубликовано:
, обновлено
Версия гайда:
1.0

Коротко

XHTTP — транспорт Xray-core, который передаёт данные VLESS в виде обычных HTTP-запросов и ответов, а не одним TCP-соединением. В Happ он задаётся параметром type=xhttp в ссылке VLESS вместе с path и host.

XHTTP пришёл на смену более раннему транспорту SplitHTTP и умеет работать поверх HTTP/1.1, HTTP/2 и HTTP/3. У него четыре режима: auto выбирает вариант автоматически по типу защиты канала, packet-up отправляет данные отдельными запросами, а stream-up и stream-one держат постоянный поток в одну или обе стороны. Транспорт подходит, когда сервер стоит за CDN или обратным прокси и должен принимать обычные HTTP-соединения. В Happ параметр XHTTP указан среди транспортов VLESS, а для VMess и Trojan документация его не упоминает.

XHTTP — транспорт Xray-core, по которому клиент и сервер обмениваются данными в виде обычных HTTP-запросов и ответов вместо одного долгого TCP-соединения. Он заменил собой более ранний транспорт SplitHTTP и умеет работать поверх HTTP/1.1, HTTP/2 и HTTP/3.

Суть транспорта

Любому протоколу Xray-core — VLESS, VMess или Trojan — нужен транспорт: способ, которым байты фактически идут по сети между клиентом и сервером. Самый простой вариант — обычное TCP-соединение. XHTTP устроен иначе: клиент и сервер обмениваются данными в форме HTTP-запросов и ответов, которые понимает любой веб-сервер, обратный прокси или CDN на пути.

Транспорт разделяет данные, которые клиент отправляет на сервер, и данные, которые сервер отправляет клиенту, и передаёт их разными HTTP-обменами. Такой формат совпадает с обычным веб-трафиком на уровне отдельного запроса, поэтому его пропускают узлы, рассчитанные на HTTP или HTTP/2, включая CDN.

XHTTP — не первая попытка Xray-core сделать HTTP-транспорт: до него существовал транспорт с названием SplitHTTP. XHTTP занял его место, сохранив идею разделения потоков и добавив новые режимы работы и поддержку более новых версий протокола HTTP.

Режимы работы

Поведение XHTTP настраивается параметром mode. Значение auto — вариант по умолчанию, и в большинстве ссылок его не меняют.

РежимКак передаются данныеКогда его выбирает auto
autoСам выбирает один из трёх режимов нижеЗначение по умолчанию
packet-upКаждая порция исходящих данных — отдельный HTTP-запрос, ответ сервера идёт потокомОбычный TLS без HTTP/2 или его отсутствие
stream-upКлиент держит один длинный потоковый запрос на отправку и получает поток в ответTLS с HTTP/2
stream-oneОдно HTTP-соединение обслуживает передачу в обе стороныReality

packet-up — самый совместимый вариант: он опирается только на обычные HTTP-запросы и подходит, если между клиентом и сервером стоит строгий обратный прокси. stream-up и stream-one эффективнее за счёт постоянного соединения, но требуют, чтобы промежуточные узлы полностью поддерживали потоковую передачу HTTP/2 или HTTP/3.

Версию самого протокола HTTP — 1.1, 2 или 3 — Xray-core также выбирает по контексту: с TLS или Reality используется HTTP/2, без них — HTTP/1.1. Передача через HTTP/3 возможна, если сервер стоит за CDN, который сам конвертирует внешний HTTP/3 во внутренний HTTP/2 или HTTP/1.1.

Как это выглядит в Happ

Документация Happ перечисляет XHTTP среди транспортов VLESS вместе с TCP, WebSocket и gRPC. У VMess и Trojan XHTTP среди описанных транспортов не значится — для них перечислены только TCP, WebSocket и gRPC.

В ссылке VLESS транспорт задаётся параметром type=xhttp, а сама настройка сервера передаётся теми же параметрами, что и для WebSocket, — path и host, плюс собственный параметр mode:

Ссылка
vless://00000000-0000-0000-0000-000000000000@example.com:443?type=xhttp&mode=auto&path=%2Fexample&host=example.com&security=tls&sni=example.com#Example

Все эти параметры Happ передаёт в Xray-core без изменений — приложению не нужно ничего настраивать отдельно, достаточно правильной ссылки или подписки. Если значение path или host не совпадает с тем, что ждёт сервер или прокси перед ним, Happ не сможет установить соединение и покажет ошибку «Конфигурация не валидная» при импорте либо тайм-аут при попытке подключиться к уже добавленному серверу.

Чем XHTTP отличается от WebSocket и gRPC

XHTTP, WebSocket и gRPC решают одну задачу — донести трафик VLESS через инфраструктуру, рассчитанную на обычный веб-трафик, — но делают это по-разному.

ТранспортОсноваФорма соединения
XHTTPHTTP/1.1, HTTP/2 или HTTP/3От отдельных запросов (packet-up) до одного потока (stream-one) — выбирается по ситуации
WebSocketОдин HTTP-запрос с заголовком UpgradeОдно постоянное соединение на весь сеанс
gRPCHTTP/2Потоки внутри одного HTTP/2-соединения, с собственной мультиплексацией

WebSocket — универсальная веб-технология, которую поддерживает практически любой сервер и браузер. gRPC полагается на возможности HTTP/2 и подходит, когда сервер или прокси перед ним умеет работать именно с этим протоколом. XHTTP — собственная разработка Xray-core: она не привязана к одной версии HTTP и подбирает поведение под конкретную схему TLS или Reality на сервере.

Выбор транспорта не меняет сам протокол VLESS: UUID клиента, адрес назначения и способ проверки сервера остаются такими же, как описано на странице VLESS в Happ. Транспорт влияет только на то, как байты идут по сети между клиентом и сервером.

Главное

  • XHTTP — транспорт Xray-core, который передаёт данные HTTP-запросами и заменил собой более ранний транспорт SplitHTTP.
  • У XHTTP четыре режима: auto подбирает вариант автоматически, packet-up шлёт данные отдельными запросами, stream-up и stream-one держат постоянный поток данных.
  • В Happ транспорт задаётся параметром type=xhttp в ссылке VLESS вместе с path и host, как у WebSocket.
  • Документация Happ связывает XHTTP только с протоколом VLESS; для VMess и Trojan среди перечисленных транспортов его нет.
  • XHTTP работает и с обычным TLS-сертификатом, и с Reality, а версию HTTP выбирает автоматически в режиме auto.

Частые вопросы

Чем XHTTP отличается от WebSocket?

WebSocket устанавливает одно постоянное соединение поверх одного HTTP-запроса с заголовком Upgrade и держит его открытым всё время сеанса. XHTTP в режиме packet-up обменивается отдельными HTTP-запросами, а в stream-up и stream-one работает ближе к WebSocket, но поверх HTTP/2 или HTTP/3. Оба транспорта используют одинаковые параметры path и host, поэтому в ссылке отличается только значение type.

Какой режим XHTTP выбрать: packet-up, stream-up или stream-one?

Обычно достаточно auto: Xray-core сам выберет stream-up для TLS с HTTP/2, stream-one для Reality и packet-up в остальных случаях. Указывать режим вручную имеет смысл, если администратор сервера прямо просит конкретное значение — например, из-за настроек обратного прокси, который иначе не пропускает длинные потоковые запросы.

Работает ли XHTTP в Happ с VMess или Trojan?

В документации Happ среди транспортов VMess и Trojan указаны TCP, WebSocket и gRPC, а XHTTP числится только у VLESS. Если провайдер выдал ссылку vmess:// или trojan:// с type=xhttp, проверьте её у него: это нестандартная для описанных в документации Happ комбинаций настройка.

Нужен ли для XHTTP домен и сертификат?

Это зависит от слоя защиты, а не от транспорта. С обычным TLS нужен домен с действительным сертификатом, как для сайта. С Reality сертификат не нужен — клиент проверяет сервер по публичному ключу. XHTTP работает в обеих схемах, параметр security в ссылке остаётся отдельным от type=xhttp.

Что означают параметры path и host у XHTTP?

path — адрес на сервере, по которому XHTTP принимает запросы, например /example. host — значение заголовка Host, которое видит обратный прокси или CDN перед сервером. Оба параметра должны совпадать с настройкой сервера: если сервер ждёт другой путь или домен, Happ не сможет установить соединение и покажет ошибку конфигурации.

Что случилось с транспортом SplitHTTP?

SplitHTTP — прежнее название того же транспорта в Xray-core; в текущих версиях он называется XHTTP и получил дополнительные режимы работы и поддержку HTTP/3. Старые ссылки с type=splithttp современные версии ядра по-прежнему распознают, но в новых конфигурациях используют название xhttp.

Упомянутые темы

Разделы по теме

Источники

  1. Документация Xray: транспорт XHTTP — обращение 28 сентября 2026
  2. Документация Happ: примеры ссылок и параметры — обращение 28 сентября 2026
  3. Документация Xray: исходящее подключение VLESS — обращение 28 сентября 2026