2017-05-24 6 views
1

Normalerweise stelle ich Java-Webapps auf Tomcat-Servern bereit und stufe sie über einen Apache-Proxy mithilfe von proxy_ajp ab. Die Sache ist, in meinen letzten Setups (die alle im Grunde die gleichen sind) sehe ich, dass der Statuscode, den ich in allen meinen Anfragen bekomme, dupliziert ist (d. H. "Statuscode: 200 200"). Ich bekomme das in jedem Browser, in Postman und für jeden Statuscode, den ich bekommen könnte, und alles scheint gut zu funktionieren, aber ich bin besorgt, dass mein Setup nicht optimal ist.Duplizierter Statuscode als Antwort

Obwohl ich keine Lösung finden kann, habe ich das Problem eingrenzen zu dem ajp_proxy, als ob ich

ProxyPass/ajp://localhost:8009/ 
ProxyPassReverse/ajp://localhost:8009/ 

mit ändern:

ProxyPass/http://localhost:8080/ 
ProxyPassReverse/http://localhost:8080/ 

ich nur einen einzigen Statuscode erhalten für meine requets, wie erwartet.

Ich habe nach diesem Problem gesucht und habe nichts gefunden, was auch nur marginal damit zusammenhängt, so dass jede Information sehr geschätzt würde.

Server Informationen:

  • Apache Version: Apache/2.4.18 (Ubuntu)
  • Tomcat Version: Apache-tomcat-8.5.13

Vielen Dank im Voraus.

Antwort

0

Tomcat 8.5 entfernte die "HTTP-Status-Grundphrase" aus der Antwort, so dass Sie in der Antwort HTTP 200 anstelle von HTTP 200 OK erhalten. Es ist möglich, dass Ihre Beobachtungen von einer Software stammen, die den Statuscode in die Statusgrundphrase zur Anzeige kopiert.

Wie beobachten Sie den Statuscode? Wenn Sie einen Protokoll-Trace durchführen, werden Sie feststellen, dass nur ein einziger Statuscode von Tomcat/httpd gesendet wird.

+1

Ich beobachte den Statuscode durch verschiedene Tools: Chrome Netzwerkkonsole, Firebug, Postman und sogar [Hurl] (https://www.hurl.it), und in allen von ihnen bekomme ich einen doppelten Statuscode . Nebenbei habe ich einige Apache Rewrite-Regeln (typisch, wenn http zu https und ähnliche gehen) und sie funktionieren gut, nur ein Antwort-Code und Grund Phase, aber sobald Sie die Seite von Tomcat über Proxy_ajp, ich bekomme doppelten Statuscode und, wie du sagtest, ohne Antwortphrase, was völlig in Ordnung ist. – Skelv

+0

Sind Sie sicher, dass der "doppelte Statuscode" nicht wirklich ein (normaler) Statuscode und eine Grundphrase ist, die zufällig denselben Text wie der Statuscode hat? –

+1

DOH! Ich habe gerade eine Anfrage an meine Seite mit meinem eigenen Code durchgeführt, um es zu debuggen und die tatsächliche Antwort zu sehen, und Sie haben absolut Recht, ich bekomme nur den Statuscode sowohl im Statusfeld als auch als Statustext. Danke vielmals. – Skelv

1

Eigentlich, wie Christopher Schultz darauf hingewiesen hat, erhalte ich den Statuscode sowohl als Statuscode als auch als Statusgrundtext.

Get "Doppel" Status-Code ist nur eine visuelle Irreführung kann man bei der Verwendung von API-Test-Tools, die in der Regel ziemlich zusammen drucken, als eine einzige Information, sowohl den Statuscode und den Statusgrund Text.

Verwandte Themen