tomcat安全性约束影响缓存

Esp*_*ax4 11 tomcat cache-control security-constraint

我在缓存我的应用程序时遇到问题.

当此代码添加到tomcat的web.xml时:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTPSOnly</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

我收到了这个回复:


Cache-Control   private
Date    Tue, 18 Feb 2014 01:18:17 GMT
Etag    W/"200-1391558564593"
Expires Thu, 01 Jan 1970 00:00:00 WET
Server  Apache-Coyote/1.1
Run Code Online (Sandbox Code Playgroud)

没有这个代码一切都很好:

Accept-Ranges   bytes
Cache-Control   max-age=604800
Content-Length  1496
Content-Type    text/css
Date    Tue, 18 Feb 2014 01:21:26 GMT
Etag    W/"1496-1391558561359"
Expires Tue, 25 Feb 2014 01:21:27 GMT
Last-Modified   Wed, 05 Feb 2014 00:02:41 GMT
Server  Apache-Coyote/1.1
Run Code Online (Sandbox Code Playgroud)

谁能说出问题的原因?以及为什么这段代码将cache-controle更改为我的应用程序的私有.非常感谢

Tomcat 7.0
JDK : 1.6
Run Code Online (Sandbox Code Playgroud)

Cas*_*lia 5

根据Oracle Java EE 6教程,将使用user-data-constraint“ CONFIDENTIAL”的指定

当应用程序要求传输数据以防止其他实体观察传输内容时。

对于HTTP响应,这意味着确保在从服务器到客户端的过程中,没有代理/缓存可以缓存该响应并提供给其他任何请求的客户端。因此使用:

Cache-Control: private
Run Code Online (Sandbox Code Playgroud)

尽管您可能会想使用“ INTEGRAL”而不是“ CONFIDENTIAL”,但是同一教程指出,许多Java EE服务器对这两个值的处理相同。

如果您的应用程序需要允许缓存,我怀疑您需要<user-data-constraint>web.xml文件中删除该元素。

希望这可以帮助!