25

我们有 HTTP 服务器,我们有基于 HTTP 客户端的应用程序(在 Linux 上)工作正常。

但是现在我们需要从我们的客户端应用程序监听 Unix 域套接字。那么是否可以从 unix 域套接字发送/接收 httprequest、httpresponse 数据包?

场景1:连接本地主机时,需要通过将HTTP连接到unix套接字而不是HTTPS连接到本地端口来消除SSL开销。

基本上在 HTTP URL 中寻找标准编码 unix 套接字路径。

提前谢谢了。

4

1 回答 1

20

只要您的套接字是流套接字(SOCK_STREAM而不是SOCK_DGRAM),那么它在技术上是可行的。HTTP 中没有任何东西需要 TCP/IP,它只需要一个可靠的双向流。

但是,我从未见过知道如何连接到这样一个套接字的 HTTP 客户端。如果您确实需要使用 URL 与服务器通信,那么我所知道的任何 URL 格式都不会起作用。

getpeername()另请注意,当您不使用 TCP/IP 时,普通 Web 服务器所依赖的某些东西(例如,识别客户端)是没有意义的。

编辑我刚刚看到您关于映射localhost到 UNIX 套接字的编辑。这是完全可行的,您只需要确保客户端知道如何找到应该使用的 UNIX 套接字的路径,而不是连接到 127.0.0.1:xxx

于 2013-02-08T11:09:18.257 回答