You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by DAngel <da...@gmail.com> on 2024/03/22 20:14:13 UTC

Tomcat 9.0.87 - status 400 in css / images

Hi guys.

Tomcat 9.0.87 (and Tomcat 9.0.76)
Ubuntu 22.04 (and Red hat 8)
java 8 : openjdk version "1.8.0_382"
protocol: HTTP

I have migrated an application from tomcat 7 (7.0.76) to tomcat 9.0.76 (and
also to tomcat 9.0.87)

After upgrading to Tomcat 9.0.76, the web page is not displaying correctly
as some CSS/images are returning HTTP status 400. If we reload the browser,
it works fine.

 When this happens, the "type" of the resources is text/html .

 My error is similar to this:
https://stackoverflow.com/questions/77989064/intermittently-getting-status-400-for-js-css-images-after-upgrading-to-tomcat-9

 Any configuration I may be missing?
 Any advice to solve this error is welcome.

 thank you
 Angel

Re: Tomcat 9.0.87 - status 400 in css / images

Posted by Konstantin Kolinko <kn...@gmail.com>.
пн, 1 апр. 2024 г. в 23:54, DAngel <da...@gmail.com>:
>
> Hi!
>
>  I am using http 1.1
>
>  The browser connects directly to tomcat (in my environment, I directly
> access localhost:8080/myApp )
>
>  In my development environment I can do the necessary tests (without
> restrictions)
>
>  I can always reproduce the error by simply clearing the browser cache.
>  In the first request the CSS resources do not load correctly, when I
> refresh the page they load correctly.
>
> In the browser console, the error on the first request is:
> refused to apply style from "..." because its mime type 'text/html is not a
> supported styleshee mime type

1. Do you see those requests in an access-log file (if you have an
AccessLogValve configured).

> In the browser console, the error on the first request is:
> refused to apply style from "..." because its mime type 'text/html is not a
> supported styleshee mime type

Content-Type text/html is expected for an error response, but I wonder
why the browser behaves like that. A response with a status code of
400 should be ignored. One should not try to process it as a css file.
Is status code "400" shown in the access log file?

2. I think that as you can reproduce the issue at will, a good way
forward is to try remote debugging.
See
https://cwiki.apache.org/confluence/display/TOMCAT/Troubleshooting+and+Diagnostics#TroubleshootingandDiagnostics-CommonTroubleshootingScenario

3. In general HTTP error 400 means that a client makes a wrong request.
If it is a server-side error, I would expect a 5xx code.

I wonder why a repeated request results in a success.

Is the URL the same? There are no random components in it?
Are headers the same?

If rejection were caused by a request URI validation (and it is more
strict in Tomcat 9 than in an old version of Tomcat 7, configurable on
<Connector>) then there would be no difference whether it is the first
request or a repeated one.

I think that some frameworks (like Spring) use result code 400 when
they cannot find a proper route/handler for the request. Or maybe when
a parameter has an incorrect value (passing text where a number is
expected).

4. It is possible to configure a custom error page for a result code
in the WEB-INF/web.xml file of a web application.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat 9.0.87 - status 400 in css / images

Posted by DAngel <da...@gmail.com>.
Hi!

 I am using http 1.1

 The browser connects directly to tomcat (in my environment, I directly
access localhost:8080/myApp )

 In my development environment I can do the necessary tests (without
restrictions)

 I can always reproduce the error by simply clearing the browser cache.
 In the first request the CSS resources do not load correctly, when I
refresh the page they load correctly.

In the browser console, the error on the first request is:
refused to apply style from "..." because its mime type 'text/html is not a
supported styleshee mime type

El lun, 25 mar 2024 a las 13:58, Christopher Schultz (<
chris@christopherschultz.net>) escribió:

> DAngel,
>
> On 3/22/24 16:14, DAngel wrote:
> > Tomcat 9.0.87 (and Tomcat 9.0.76)
> > Ubuntu 22.04 (and Red hat 8)
> > java 8 : openjdk version "1.8.0_382"
> > protocol: HTTP
> >
> > I have migrated an application from tomcat 7 (7.0.76) to tomcat 9.0.76
> (and
> > also to tomcat 9.0.87)
> >
> > After upgrading to Tomcat 9.0.76, the web page is not displaying
> correctly
> > as some CSS/images are returning HTTP status 400. If we reload the
> browser,
> > it works fine.
> >
> >   When this happens, the "type" of the resources is text/html .
> >
> >   My error is similar to this:
> >
> https://stackoverflow.com/questions/77989064/intermittently-getting-status-400-for-js-css-images-after-upgrading-to-tomcat-9
> >
> >   Any configuration I may be missing?
> >   Any advice to solve this error is welcome.
>
> 400 indicates that the client sent a bad request.
>
> Are you using HTTP 1.1 or h2?
>
> Is there a reverse-proxy between your browser and Tomcat? If so, what
> product+protocol are you using to connect the two?
>
> Is this an environment where you could enable debug/trace logging, or is
> this production which would represent a big problem for you?
>
> Are you able to reproduce it, even non-predictably? Meaning, if you load
> a page 10 times can you make it happen, or is it only every 100,000 page
> loads or something?
>
> -chris
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: Tomcat 9.0.87 - status 400 in css / images

Posted by Christopher Schultz <ch...@christopherschultz.net>.
DAngel,

On 3/22/24 16:14, DAngel wrote:
> Tomcat 9.0.87 (and Tomcat 9.0.76)
> Ubuntu 22.04 (and Red hat 8)
> java 8 : openjdk version "1.8.0_382"
> protocol: HTTP
> 
> I have migrated an application from tomcat 7 (7.0.76) to tomcat 9.0.76 (and
> also to tomcat 9.0.87)
> 
> After upgrading to Tomcat 9.0.76, the web page is not displaying correctly
> as some CSS/images are returning HTTP status 400. If we reload the browser,
> it works fine.
> 
>   When this happens, the "type" of the resources is text/html .
> 
>   My error is similar to this:
> https://stackoverflow.com/questions/77989064/intermittently-getting-status-400-for-js-css-images-after-upgrading-to-tomcat-9
> 
>   Any configuration I may be missing?
>   Any advice to solve this error is welcome.

400 indicates that the client sent a bad request.

Are you using HTTP 1.1 or h2?

Is there a reverse-proxy between your browser and Tomcat? If so, what 
product+protocol are you using to connect the two?

Is this an environment where you could enable debug/trace logging, or is 
this production which would represent a big problem for you?

Are you able to reproduce it, even non-predictably? Meaning, if you load 
a page 10 times can you make it happen, or is it only every 100,000 page 
loads or something?

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org