Wir verwenden die Swisscom CloudFoundry Lösung mit einer Java und einer Node.JS Anwendung. Seit neuestem werden jeder HTTP-Statuscode mit 5xx beginnen (getestet mit 500
und 503
) mit dem Statuscode automatisch zugeordnet 302 Found
mit einem Redirect-Header /offline_pages/
(getestet mit DELETE
, POST
und GET
). Dies geschieht zwischen unserer Anwendung und dem Front-End und fordert eine Ressource mit einem Statuscode an.Interner Server Fehler werden mit einer Weiterleitung an "/ offline_pages /" auf Swisscom CloudFoundry 302 gefunden.
Wir verwenden aktiv die 5xx
Statuscodes, um einen Serverfehler über unsere REST-API an das Front-End zu melden (einschließlich Wartungsausfall usw.). Dies funktioniert nicht mehr, aufgrund der automatischen Zuordnung. Zum Beispiel gibt es keine automatische Weiterleitung zu einer Wartungsseite mehr, da das Front-End 3xx
Status nicht als Fehler anzeigt.
Dieses Problem tritt in beiden Anwendungen (Java und Node.JS) auf. Die Protokolle zeigen jedoch den korrekten 503
bzw. 500
Fehler an. Darüber hinaus ist in der Codebasis unserer Anwendung die Umleitungs-URL-Zeichenfolge /offline_pages/
nicht vorhanden; was zu der Schlussfolgerung führt, dass dies außerhalb unserer Anwendung geschehen muss.
Wenn eine sichtbare Browserseite eine 500
zurückgibt, wird der Benutzer tatsächlich auf die Seite /offline_pages
umgeleitet, die eine Swisscom-Fehlerseite anzeigt. Diese Fehlerseite (zu der sie weitergeleitet wurde), gibt ihrerseits einen 200
Statuscode zurück, der es unmöglich macht, den Fehler in einem Kiosk-Browser automatisch zu erkennen.
Gibt es eine Möglichkeit, die Swisscom CloudFoundry zu konfigurieren, um dieses plötzlich auftretende Verhalten zu deaktivieren?
Dies ist die von dem Front-End gemacht Anfrage:
GET /api/account HTTP/1.1
Host: <HOST>
Connection: keep-alive
Accept: application/json, text/plain, */*
User-Agent: <USER-AGENT>
Referer: <REFERER>
Accept-Encoding: gzip, deflate, br
Accept-Language: <LANGUAGES>
Und das ist die Antwort:
HTTP/1.0 302 Found
Location: /offline_pages/
Connection: Keep-Alive
Content-Length: 0
Excpected ist das gleiche wie in den Server-Logs, in In diesem Fall ein 503
. Hier sind die Protokolle für diese Anfrage:
2017-11-14 13:54:07 [RTR/1] OUT <HOST> - [2017-11-14T12:54:07.455+0000] "GET /api/account HTTP/1.1" 503 [...]
Großartig, es funktioniert wieder, danke! –