HTTP响应标头 - 应用程序版本

时间:2013-03-20 13:31:35

标签: web-services http rest soap

我试图想出一种方法来使用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

在我看来,使用ViaServer在语义上是不正确的,但使用X-标头可能会被代理丢弃,但Pragma不受约束,因此如果想以编程方式使用它,则更难解析。

我也有一种感觉,即多个Server标题不会被尊重,但是无法用我正在使用的容器(JBoss)指定多个值。

这有先例吗? 有人有任何提示吗? 我应该闭嘴并使用一个吗?

1 个答案:

答案 0 :(得分:3)

  

在我看来,使用Via或Server在语义上是不正确但使用   X-header承担被代理人丢弃的风险

我不会太担心丢弃的X标头。将此调用带到ebay查找服务,例如

http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&keywords=harry%20potter

响应中包含此标题。

X-EBAY-SOA-SERVICE-VERSION: 1.12.0

我已经看到X标头用于此目的。