可否要求您在端口80上打开一个tcp套接字来处理http请求,并在端口443上打开一个ssl套接字来处理https ...某些代理如何提供在同一个端口上访问他们两个?如何在同一端口上提供tcp/ssl支持
我发现只有这link但它不是很有用。你能给我一个erlang的例子,或者建议我一些资源,从中我可以更多地了解这个话题?
在此先感谢
可否要求您在端口80上打开一个tcp套接字来处理http请求,并在端口443上打开一个ssl套接字来处理https ...某些代理如何提供在同一个端口上访问他们两个?如何在同一端口上提供tcp/ssl支持
我发现只有这link但它不是很有用。你能给我一个erlang的例子,或者建议我一些资源,从中我可以更多地了解这个话题?
在此先感谢
正如您所提供的链接列出,你将需要编写嗅着请求,然后相应地重定向到正确的协议,自己的自定义服务器。
由于http://www.faqs.org/rfcs/rfc2818.html表示,HTTP会话将初始请求线(如GET /
)开始,而TLS会话将与客户问候开始(更多关于wikipedia TLS会话)
有很多资源在线关于在Erlang编写服务器,例如How to write a simple webserver in Erlang?
顺便说一句,您的术语不正确:http,https SSL和TLS是协议,并且都使用TCP套接字运行(通过网络)。
一些代理如何在同一端口提供对它们两个的访问?
通过实施HTTP CONNECT
方法,(非透明)代理可以切换到提供TCP隧道,浏览器可以在其上访问例如HTTPS资源。
只是为了澄清,是你对“端口统一”(同一端口上运行两个不同类型的服务器)或HTTP代理如何处理两者的HTTP请求的问题和HTTPS服务器? – Bruno 2011-06-08 17:51:50
好吧......我会对你指出的两种情况感兴趣(我试图尽可能地学习这类话题)..谢谢 – user601836 2011-06-09 08:30:34
港口统一不太常见,但它依靠看传入的数据包查看它应该处理哪个协议(@ seb的答案)。在使用HTTPS时,HTTP代理并不真正中继HTTP请求,而是在客户端完成后,它将整个TCP连接转发给HTTPS服务器(因此SSL/TLS层直接在浏览器和目标服务器之间建立)使用'CONNECT'(@ MattH的回答)。 – Bruno 2011-06-09 10:17:27