title: What is the correct pattern to provide client-server backward compatibility?
body: <p>I'm developing a client-server application and can't force users not to use older versions of client, or even other clients, since the protocol is WebDAV.</p>
  
  <p>What I need is to support all of them, with some kind of backward compatibility, so that server side will behave different way, depending on what client version it is working with. </p>
  
  <p>My question is how to prepare my application to this situation, before facing it. Do I need to use some design pattern? How to design backward compatibility?</p>