gpt4 book ai didi

java - 客户端缓存的空间限制

转载 作者:行者123 更新时间:2023-12-01 12:48:18 24 4
gpt4 key购买 nike

我的搜索结果页面返回大约 40 张图像。我使用 mongohq 来存储我的图像。现在这些形象永远不会改变。它们将被删除或保持原样。

所以我的Spring servlet根据图像id从mongoHq读取图像后流式传输图像

/app/download/{uniqueImageId}

一切正常。除了流图像的加载时间。我觉得这些图像对于这些唯一的 ID 来说将保持不变,所以为什么不缓存它们。我可以添加一个适用于我的上述网址类型的过滤器,并添加一个缓存 header ,我计划提供一个非常长的值,例如可能将图像缓存一周。

我的问题是,如果我开始告诉客户端的浏览器缓存所有这 40 多个图像,它会缓存所有这些图像吗?客户端没有空间限制吗?

您认为有更好的选择来处理这种情况吗?

最佳答案

My question is, if i start telling the client's browser to cache all these 40+ images, will it cache all these images? Aren't there any space restrictions from the client side?

当然,客户端有空间限制(而且整个世界的存储空间也是有限的……呃,抱歉……)。用户可以限制缓存空间,和/或浏览器只是自动获取可用于缓存的可用空间。

通常,我希望浏览器缓存始终为一些兆字节(比方说 100+),因此在 session 中传输的经常需要的图像(例如图标)将被缓存。当用户三天后访问您的网站时,图像是否仍在缓存中取决于缓存大小以及其间的用户 Activity 。所以你永远不知道。

客户端或任何中间代理的行为超出了您的直接控制范围。通过设置缓存 header ,您所做的唯一一件事就是表明暂时不刷新此资源是合法的。如果您确实在应用程序中设置了 header ,请确保您正确理解 HTTP1.1 header 。

Do you see any better option to handle such scenario?

“更好”这个词在这里并不十分准确。您到底需要优化什么?

如果您对同一图像集有大量请求,则可以通过在应用程序前面放置边缘服务器(例如 nginx)(配置为缓存反向代理)来减少服务器和数据库负载。在这种情况下,您自己的边缘服务器正在解释缓存 header 。一般来说,如果应用程序在提供静态资源方面没有显着的负载,我认为这是一个很好的设计。

关于java - 客户端缓存的空间限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24467295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com