我有一个很大的问题:请看下面的示例链接。我的应用程序当前向所有“资源/链接”附加了一个会话ID。我在Firefox缓存中偶然发现了这一点:
http://localhost:8080/jquery-ui-1.7.2.custom.css;jsessionid=A8483FBF3BB6DDA499E06210BE0D612C
我最大的问题是,像上面的URL这样的URL是否会导致任何缓存头(我使用Cache-Control已有几年)或多或少会变得无用,因为会话ID将使每个请求都是唯一的?
(==>What我的意思是,在30分钟后分配一个新的sessionID。而缓存很可能只在这段时间内有效。在这段时间之后,将生成新的会话ID,间接地使在其url中具有SessionID的客户端侧上的所有高速缓存的内容无效。
=>是智能的浏览器,可以发现要缓存的资源是:
http://localhost:8080/jquery-ui-1.7.2.custom.css
而不是:
http://localhost:8080/jquery-ui-1.7.2.custom.css;jsessionid=A8483FBF3BB6DDA499E06210BE0D612C
或者url中的sessionId是否会导致浏览器中缓存或多或少被禁用?
非常感谢!1月
发布于 2009-11-10 22:59:12
这不是浏览器是否足够智能的问题。W3 standard for HTTP声明不同的URL应该分别缓存。因此,浏览器观察完整的URL是正确的,包括缓存中的GET参数,如会话ID。
您不应该将会话ID附加到任何静态内容(如样式表)。
发布于 2009-11-10 22:59:13
你是对的-浏览器还不够智能,一个不断变化的URL将非常有效地否定缓存。
为什么要把会话ID放在第一个位置呢?如果资源不依赖于会话,则从URL中删除会话ID,这将解决您的问题。如果资源是会话相关的,那么您已经拥有了所需的所有资源,因为一个会话不应该使用来自另一个会话的资源。
https://stackoverflow.com/questions/1708533
复制相似问题