版本号格式

版本号以三段正整数表示,以小数点分隔,形式为"x.y.z",数字"y"和"z"不能超过99。比如,WFS 的版本有1.0.0,2.0.0等。

版本号的出现形式

版本号至少出现在两个地方,一是用于描述服务的 Capabilities XML 文档中,一是客户端的请求参数中。

版本号协商(negotiation)

客户端和服务器端的版本号协商通过 GetCapabilities 操作完成。

所有的 Capabilities XML 都必须包含协议版本号,为了响应一个包含版本号的 GetCapabilities 请求,WFS 必须响应与请求一致的版本。

客户端请求的版本号应该与服务器支持的版本号匹配,否则按照最近匹配原则:

  • 如果服务器实现了请求的版本,服务器必须返回这个版本号。
  • 如果客户端请求一个未知的版本,此版本号高于服务器能够理解的最低版本,服务器必须发送一个低于请求版本的最高版本号。
  • 如果客户端请求的版本低于服务器的任何版本,服务器必须发送一个它能理解的最低版本号。
  • 如果客户端不能理解服务器发送的新版本号,客户端可以停止与服务器的交互,或者发送一个带有客户端能理解的新版本的请求,但这个版本必须小于服务器之前返回的版本号。
  • 如果服务器已经响应了一个较高的版本(因为客户端请求的版本低于服务器所能理解的任何版本),但是客户端不能理解这个版本,客户端可以发送一个新的带有高于服务器返回的版本号的版本号。

处理过程会不断重复,直到双方达成一致,或者客户端取消与服务器的通信。

例1,服务器能够理解版本1,2,4,5,8。客户端理解版本1,3,4,6,7。客户端首先请求版本7,服务器响应版本5;客户端再请求版本4,服务器响应版本4,客户端和服务器端达成一致。

例2,服务器理解版本4,5,8。客户端理解版本3。客户端首先请求版本3,服务器响应版本4,客户端不能理解这个版本或任何更高版本,客户端停止和服务器的通信。