答:以下内容摘自Fielding博士论文中文版(《架构风格与基于网络的软件架构设计》)6.5.3小节“HTTP并不是一种传输协议”。 HTTP并不是被设计为一种传输协议(transport protocol),它是一种转移协议(transfer protocol)。在HTTP协议中,消息通过在那些资源的表述上的转移和操作,来对资源执一些动作,从而反映出Web架构的语义。使用这个非常简单的接口来获得广泛的功能是完全有可能的,但是必须要遵循这个接口,以便HTTP的语义被保持为对于中间组件是可见的。 这就是为何HTTP可以穿越防火墙的原因。大多数当前提议的对于HTTP的扩展,除了WebDAV以外,仅仅使用HTTP作为一种使其他的应用协议穿越防火墙的方法,这从根本上来说是一种有误导性的想法。不仅仅是因为这种扩展方式挫败了拥有一个防火墙的目的,而且从长远来看它将无法工作,因为防火墙的厂商将会不得不执行额外的协议过滤。因此这种扩展方式对于那些在HTTP之上的扩展而言是没有意义的,因为在这种情况下HTTP所完成的唯一的事情就是添加了来自一个遗留语法的负载(译者注:即添加了额外的 HTTP 协议负载)。一个真正的HTTP应用应该将协议用户的动作映射到能够使用HTTP语义来表达的某个事物,以这种方式创建一个基于网络的API来提供服务,能够被用户代理和中间组件所理解,而不需要知道关于应用的任何知识。