我试图想出一种方法来使用HTTP来响应消息来公开Web服务(REST和SOAP接口)的特定内部版本号。
为了清楚起见我并不是想控制客户端使用哪个版本的应用程序,因为这是由流量管理器和服务注册表处理的(也已经讨论过很多),我只想调试一下之后使用或正在使用的版本,例如,检查流量管理器是否提供正确的版本。
我花了很长时间查看HTTP规范,无法决定使用Pragma
Pragma: application-version=1.0.0-SNAPSHOT
使用额外的Server
标题
Server: Apache-Coyote/1.1
Server: MyService-1.0.0-SNAPSHOT
使用Via
Via: MyService-1.0.0-SNAPSHOT
或客户标题
X-ApplicationVersion: 1.0.0-SNAPSHOT
在我看来,使用Via
或Server
在语义上是不正确的,但使用X-
标头可能会被代理丢弃,但Pragma
不受约束,因此如果想以编程方式使用它,则更难解析。
我也有一种感觉,即多个Server
标题不会被尊重,但是无法用我正在使用的容器(JBoss)指定多个值。
这有先例吗? 有人有任何提示吗? 我应该闭嘴并使用一个吗?
答案 0 :(得分:3)
在我看来,使用Via或Server在语义上是不正确但使用 X-header承担被代理人丢弃的风险
我不会太担心丢弃的X标头。将此调用带到ebay查找服务,例如
响应中包含此标题。
X-EBAY-SOA-SERVICE-VERSION: 1.12.0
我已经看到X标头用于此目的。