在了解有关HTTP 1.1和阅读规范的更多信息的同时,让我觉得有一个可以演示协议的公共reference implementation会很有帮助。我想它会提供理想的基本示例,以及协议中那些通常在公共服务器上禁用的部分(例如TRACE)的工作示例。
我正在谈论一个正在运行的,可公开访问的服务器。我们的想法是通过实际运行的webserver(和源代码)来展示HTTP(应该)如何工作。用户可以使用fiddler等构建任意请求,以查看服务器如何响应。我假设它是开源的。它可能基于现有的web服务器实现(例如,Apache),可能具有支持现有impl的整个协议的扩展。没有(传输编码压缩等)。我知道这最后一部分是一个白日梦,我只是通过解释把它放在这里。
我理解HTTP是一种非常广泛的协议,因此参考实现不会很全面。我可以想象为什么这样的东西不存在的很多很多原因,我知道我可以启动自己的本地服务器并玩它(我已经做了多年这样的事情)。我知道我可以针对众所周知的现有公共服务器(谷歌等)。但是,我想知道是否存在类似公共参考实现的内容。
答案 0 :(得分: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:
“我们相信粗略的共识并运行代码”