HTTP через AF_UNIX: HTTP-соединение с Unix-сокетом

У нас есть HTTP-сервер, для которого у нас есть HTTP-клиентское приложение (на Linux), работающее нормально.

Но теперь нам нужно прослушивать сокеты домена Unix из нашего клиентского приложения. Так можно отправить/получить httprequest, пакет httpresponse из сокета домена unix?

Scenerio1: при подключении к localhost требуется исключить SSL  накладные расходы путем подключения HTTP к Unix-сокету вместо HTTPS к  локальный порт.

В принципе Ищете стандартную кодировку пути сокета unix в URL-адресе HTTP.

Большое спасибо заранее.

Ответ 1

Пока ваш сокет является потоковым сокетом (SOCK_STREAM а не SOCK_DGRAM), тогда это технически возможно. В HTTP-протоколе нет ничего, что требует TCP/IP, для этого требуется надежный двунаправленный поток.

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

Также обратите внимание, что некоторые вещи, от которых зависают обычные веб-серверы (например, getpeername(), для идентификации клиента), не имеют смысла, когда вы не используете TCP/IP.

РЕДАКТИРОВАТЬ Я только что видел ваше редактирование о сопоставлении localhost с UNIX-сокетом. Это вполне осуществимо, вам просто нужно убедиться, что клиент знает, как найти путь к сокету UNIX, который должен использоваться вместо подключения к 127.0.0.1:xxx

Ответ 2

У меня есть похожий случай использования HTTP через доменные сокеты UNIX в Java. Я не вижу никакой серверной библиотеки, поддерживающей это из коробки. Вы когда-нибудь работали над этим?