如何在同一端口上提供tcp / ssl支持

时间:2011-06-08 08:29:49

标签: ssl tcp erlang

Le'ts说您在端口80上打开一个tcp套接字来处理http请求,在端口443上打开一个ssl套接字以处理https ...一些代理如何在同一个端口上提供对它们的访问?

我发现只有这个link,但它不是很有用。你能给我一个erlang的例子,或者给我一些资源,我可以从中学到更多关于这个主题的信息吗?

提前致谢

2 个答案:

答案 0 :(得分:5)

  

某些代理如何在同一端口上提供对它们的访问?

通过实施HTTP CONNECT方法,(非透明)代理可以切换到提供TCP隧道,浏览器可以通过该隧道访问HTTPS资源。

相当稀疏的规范:
http://tools.ietf.org/html/rfc2616#section-9.9

答案 1 :(得分:3)

如您提供的链接所述,您需要编写自己的自定义服务器来嗅探请求,然后相应地重定向到正确的协议。

http://www.faqs.org/rfcs/rfc2818.html所示,HTTP会话将以初始请求行(例如GET /)开始,而TLS会话将以ClientHello开始(更多关于{{3}上的TLS会话})

网上有很多关于在Erlang中编写服务器的资源,例如: wikipedia

顺便提一下,您的术语不正确:http,https SSL和TLS是协议,并且所有术语都使用TCP套接字进行操作。