Web services HTTP响应头-应用程序版本
我试图想出一种方法,使用HTTP来响应消息,从而公开web服务(REST和SOAP接口)的特定构建号 为了明确起见,我不想控制客户端正在使用哪个版本的应用程序,因为这是由traffic manager和service registry处理的(前面也有很多讨论),我只想以后能够调试使用了或正在使用的版本,例如。,检查traffic manager是否提供了正确的版本 我花了很长时间研究HTTP规范,无法决定是否使用Web services HTTP响应头-应用程序版本,web-services,http,rest,soap,Web Services,Http,Rest,Soap,我试图想出一种方法,使用HTTP来响应消息,从而公开web服务(REST和SOAP接口)的特定构建号 为了明确起见,我不想控制客户端正在使用哪个版本的应用程序,因为这是由traffic manager和service registry处理的(前面也有很多讨论),我只想以后能够调试使用了或正在使用的版本,例如。,检查traffic manager是否提供了正确的版本 我花了很长时间研究HTTP规范,无法决定是否使用Pragma Pragma: application-version=1.0.0-S
Pragma
Pragma: application-version=1.0.0-SNAPSHOT
使用附加的服务器
头
Server: Apache-Coyote/1.1
Server: MyService-1.0.0-SNAPSHOT
通过
Via: MyService-1.0.0-SNAPSHOT
或客户标题
X-ApplicationVersion: 1.0.0-SNAPSHOT
在我看来,通过或服务器使用在语义上是不正确的,但是使用X-
头有被代理删除的风险,但是Pragma
是不受约束的,因此如果想要以编程方式使用它,解析起来就更困难
我也有一种感觉,多个Server
头不会得到尊重,但我使用的容器(JBoss)无法指定多个值
这有什么先例吗?
有人有什么建议吗?
我应该闭嘴用一个吗
在我看来,使用Via或服务器在语义上是不正确的,但是使用
X-header承担被代理丢弃的风险
我不会太担心X头被删除。例如,打这个电话到ebay查找服务
响应包括此标题
X-EBAY-SOA-SERVICE-VERSION: 1.12.0
我已经看到X头文件被大量用于此目的。谢谢Deepak,使用“非标准”头文件确实让我感到紧张,但似乎是元数据中最常见的。我只是担心如果罗伊·菲尔丁(Roy Fielding)曾经评论过我的服务,我不会使用现有的内置功能哈哈!说到Roy和标准/风格,你可能会发现这篇博文很有趣-