我们有HTTP服务器,我们有基于HTTP客户端的应用程序(在Linux上)正常工作。
但现在我们需要从客户端应用程序中侦听Unix域套接字。 那么是否可以从unix域套接字发送/接收httprequest,httpresponse包?
Scenerio1:连接到localhost时,需要消除SSL 通过将HTTP连接到unix套接字而不是HTTPS来连接开销 当地港口。
基本上寻找在HTTP URL中编码unix套接字路径的标准。
非常感谢提前。
答案 0 :(得分:10)
只要你的套接字是一个流套接字(SOCK_STREAM
而不是SOCK_DGRAM
),那么它在技术上是可行的。 HTTP中没有任何需要TCP / IP的内容,它只需要一个可靠的双向流。
但是,我从未见过知道如何连接到这样一个套接字的HTTP客户端。如果您确实需要使用URL与服务器通信,那么我知道没有可用的URL格式。
另请注意,当您不使用TCP / IP时,普通Web服务器所依赖的某些内容(例如getpeername()
)来识别客户端是没有意义的。
编辑我刚刚看到了关于将localhost
映射到UNIX套接字的编辑。这是完全可行的,您只需要确保客户端知道如何找到应该使用的UNIX套接字的路径而不是连接到127.0.0.1:xxx