2014-09-23 52 views
3

在了解有关HTTP 1.1和阅读规范的更多信息时,它让我觉得有一个可以演示协议的公开reference implementation会很有帮助。我想它会提供理想的,基本的例子,以及那些经常在公共服务器上禁用的协议部分(例如TRACE)的工作示例。是否有公共的HTTP 1.1参考实现?

我正在谈论一个正在运行的可公开访问的服务器。这个想法将显示HTTP(应该)如何通过实际运行的Web服务器(和源)来工作。用户可以使用fiddler等构建任意请求,以查看服务器如何响应。我假设它会是开源的。它可能基于现有的web服务器实现(例如Apache),可能带有扩展来支持现有impl的整个协议。没有(Transfer-Encoding压缩等)。我知道这最后一部分是一个梦想,我只是通过解释的方式把它放在这里。

我知道HTTP是一个非常广泛的协议,因此参考实现不会很全面。我可以想象为什么这样的东西不存在的许多原因,我知道我可以启动我自己的本地服务器并使用它(我已经做了多年的这种事情)。我知道我可以针对知名的现有公共服务器(Google等)进行探讨。但是,我想知道是否存在任何类似于公共参考实现的东西。

+0

你的意思是你想引用网络服务器?尝试使用示例的Boost :: asio,或尝试使用http的许多示例的libcurl。 – gbjbaanb 2014-09-23 07:19:46

+0

没有最接近的东西可能是客户端libwww http://www.w3.org/Library/ – nos 2014-09-23 07:19:54

+0

如果通过参考你的意思是官方 - 不,没有 – 2014-09-23 07:21:05

回答

2

作为IETF规范,HTTP/1.1没有参考实现。相反,需要 "at least two independent interoperating implementations with widespread deployment and successful operational experience"

Implementation report for HTTP/1.1 to Draft Standard,你可以看到有大幅不止于此:

我们已经从26个实现

实施&检测报告你说:

我可以想象很多很多原因,为什么这样的事情不会存在

下面是一个:对于一个相当复杂的规范,你不希望人们设计具体的实现。任何“引用”实现都会产生错误,然后由随后的针对该引用构建的代码拾取错误。

该规范是权威的;在实现发散的情况下,您应该查阅规范(及其勘误)以了解正确的行为。

我知道我可以闲逛针对知名现有的公共服务器

没错。每The Tao of IETF

“我们相信,在粗糙的共识和运行代码”