我试图想出一种方法来使用HTTP响应消息来公开Web服务(REST和SOAP接口)的特定构建号.
为了清楚起见我并不是想控制客户端使用哪个版本的应用程序,因为这是由流量管理器和服务注册表处理的(也已经讨论过很多),我只想稍后调试什么版本已经使用或正在使用,例如,检查流量管理器是否正在提供正确的版本.
我花了很长时间查看HTTP规范,无法决定使用Pragma
Pragma: application-version=1.0.0-SNAPSHOT
使用其他服务器标头
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-header有被代理删除的风险,但Pragma不受约束,因此如果想以编程方式使用它,则更难解析.
我也有一种感觉,多个服务器头不会被尊重,但是没有办法用我正在使用的容器(JBoss)指定多个值.
这有先例吗?
有人有任何提示吗?
我应该闭嘴并使用一个吗?
解决方法
To my mind using a Via or a Server is semantically incorrect but using
an X- header bears the risk of being dropped by proxies
我不会太担心丢弃的X标头.以此电话为ebay查找服务
响应包括此标头.
X-EBAY-SOA-SERVICE-VERSION: 1.12.0
我已经看到X标头用于此目的非常多.