title: Is HTTP status code 426 Upgrade Required only meant signal an upgrade to a secure channel is required?
body: <p>I have a mobile device communicating via HTTPS to a RESTful API on my servers. One of the operations is a data sync to push modifications made while offline to the server and pull down updates made in parallel on the server.</p>
  
  <p>I've encountered an edge case where that sync operation can fail silently in the existing client. I've upgraded the "sync protocol" on the client to handle the condition properly. Ideally I'd like to have all older clients receive a message when they try to sync telling them to upgrade.</p>
  
  <p>The communication is just between my server and my mobile client so I realize I can return any number of HTTP codes and signal the client to display a message in the future advising the user to upgrade and to immediately stop the sync process.</p>
  
  <p>Would it be seen as a bastardization of the intent of the HTTP 426 Upgrade Required return code to use it to signal this. Every reference (<a href="http://www.ietf.org/rfc/rfc2817.txt">IETF RFC 2817</a>, <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes">Wikipedia</a>) I can find speaks to using it to signal a client to upgrade to TLS. Is it meant to be limited to well defined/security protocols like SSL and TLS or is it a generic upgrade flag at the HTTP layer which has only been used for SSL and TLS traditionally?</p>
  
  <p>If it isn't intended for this use case would a HTTP 303 See Other be considered more appropriate or is there another code I'm missing?</p>