Ich habe ein mobiles Gerät, das über HTTPS mit einer RESTful-API auf meinen Servern kommuniziert. Eine der Operationen ist eine Datensynchronisierung, um Änderungen, die offline an den Server vorgenommen wurden, zu übertragen und Aktualisierungen auf dem Server parallel durchzuführen.Ist der HTTP-Statuscode 426 Upgrade erforderlich, bedeutet dies nur, dass ein Upgrade auf einen sicheren Kanal erforderlich ist?
Ich habe einen Edge-Fall festgestellt, bei dem der Synchronisierungsvorgang im vorhandenen Client unbemerkt fehlschlagen kann. Ich habe das "Sync-Protokoll" auf dem Client aktualisiert, um den Zustand richtig zu behandeln. Idealerweise möchte ich, dass alle älteren Clients eine Nachricht erhalten, wenn sie versuchen, sie zu synchronisieren, damit sie sie aktualisieren können.
Die Kommunikation besteht nur zwischen meinem Server und meinem mobilen Client. Daher stelle ich fest, dass ich eine beliebige Anzahl von HTTP-Codes zurückgeben kann und dem Client eine Nachricht in der Zukunft anzeigen kann, die den Benutzer auffordert, den Synchronisierungsprozess sofort zu beenden.
Wäre es als eine Bastardisierung der Absicht des HTTP 426 Upgrade Required Return-Code zu sehen, um es zu signalisieren. Jede Referenz (IETF RFC 2817, Wikipedia) kann ich finden, um es zu verwenden, um einem Client zu signalisieren, auf TLS zu aktualisieren. Soll es auf genau definierte Sicherheitsprotokolle wie SSL und TLS beschränkt sein oder handelt es sich um ein generisches Upgrade-Flag auf der HTTP-Ebene, das bisher nur für SSL und TLS verwendet wurde?
Wenn es nicht für diesen Anwendungsfall gedacht ist würde ein HTTP 303 Siehe Andere geeigneter sein oder gibt es einen anderen Code, den ich vermisse?
[RFC 2616] (http://tools.ietf.org/html/rfc2616#section-14.42) sagt, dass Sie dem Kunden sagen müssen, worauf er "upgraden" soll. Wenn Sie Ihren Anwendungsfall darauf abstimmen können, ist es wahrscheinlich keine Bastardisierung. ;) – Sven