我试图想出一种方法来使用 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
在我看来,使用 aVia
或 aServer
在语义上是不正确的,但使用X-
标头有被代理丢弃的风险,但Pragma
不受约束,因此如果想以编程方式使用它,则更难以解析。
我也有一种感觉,多个Server
标头不会被尊重,但是没有办法用我正在使用的容器(JBoss)指定多个值。
这有什么先例吗?
有人有任何提示吗?
我应该闭嘴并使用一个吗?