为什么HTTPS成为标准方法而不是S-HTTP?

为什么HTTPS获胜? 有谁知道为什么Netscape和Microsoft都selectHTTPS而不是S-HTTP (RFC 2660)的具体原因?

在我看来,S-HTTP更灵活,并且不需要单独的IP或端口来提供正确的证书,因为S-HTTP能够使用主机头。 IP空间是当时的一个问题吗?

我可以看到HTTPS比S-HTTP更多地encryption连接数据的观点,但是如果您可以轻松地知道用户访问哪个网站,那么我看不出多less关键点,因为每个IP只有一个站点时间)和证书通常说什么域。

我的答案: 1994年由Netscape和HTTPS于1993/1994年创build的SSL在1994年左右同时被添加到它。HTTPS的最初目标是将现有协议改进为安全性,而不做任何更改。 S-HTTP直到1999年才出现,并且需要HTTP 1.1,所以到目前为止,HTTPS已经非常稳固,实施S-HTTP没有什么好处。 感谢大家。

编辑:我曾经在几个地方看过RFC 2817,叫做“S-HTTP”,但是这个错误与这个问题无关,这个问题与RFC 2660有关,就像@Dave Holland在他的回答中指出的那样。 我的答案的一些内容也可以适用于RFC 2660,由于有相似之处,所以比较可能会有用,但我并不真正值得在这里进行表决。 道歉混淆…

我认为,与HTTPS相比,将S-HTTP HTTP升级到TLS的一般指责是通过拦截但不中继Upgrade消息(虽然服务器可以做些什么)来做降级攻击,从浏览器的angular度来看,很难确定URI是否是安全的( https:// vs http:// prefix)。 (当然这与使用诸如STARTTLS机制的协议所使用的非常相反的论点,更类似于S-HTTP HTTP升级到TLS。)在这两种情况下,协议都必须正确configuration(右密码套件,。 ..),用户界面必须提供足够的用户来判断连接是否安全(好的证书/不好的证书,…)。

更重要的是,它可能与“市场力量”有关,历史上已经实现了HTTPS而不是S-HTTP,并且没有理由改变(在底层的SSL / TLS级别,从SSLv2移到足够长的时间SSLv3和TLSv1及以上)。

另外, RFC 2817于2000年发布,到那个时候,HTTPS已经有一段时间了。 Upgrade机制也依赖于使用HTTP 1.1,而HTTPS也可以通过HTTP 1.0工作(当时,并非所有的东西都支持HTTP 1.1)。

你可能会发现这些有趣的线索:

SHTTP是1993年在Mosaic和NCSA httpd上发明和实现的。HTTPS在市场上赢得了,因为Mosaic Communications Corporation / Netscape在Netscape Navigator和Netscape Enterprise Server中开发并embedded了SSL。 网景拒绝实施SHTTP。 Netscape发布后,没人想用Mosaic。

当时的实际决策者的一些意见/线索将会很有趣 – 我可以回想起当时,我不记得听说过很多关于s-http的内容,而且https早在那里。

事后看来,s-http规范看起来是非常开放和灵活的,这可能是杀了它 – https我相信指定使用SSL,并暗示使用全局PKI,以及如何工作 – 什么时候s-http说“是的,我们可以做到这一点,如果你想…加上所有其他的东西”。

我可以告诉你,S-HTTPencryption单个消息,并且HTTPSencryption整个通信信道,这可能是技术angular度的一部分原因。 由于它只encryption单个消息,因此不能用作VPN等协议。 我真的不知道否则。 有关S-HTTP的更多详细信息,请参阅http://tools.ietf.org/html/rfc2660