fix(订阅式软件提供): 远端资源浏览器侧缓存与主服务统一为 24h
Cache-Control 由 max-age=3600 改为 max-age=86400(复用 REMOTE_ASSET_TTL_SECONDS),保留 ETag 条件请求
This commit is contained in:
1 parent
37413722af
commit
89274ea2bd
1 file changed
+4
-4
@@ -430,7 +430,8 @@ class SubscriptionRemoteAssetView(APIView):
|
||||
GET /API/Subscription/RemoteAsset/<SubscriptionGroupUUID>/<AssetPath>
|
||||
|
||||
- 缓存:内容落库,TTL 24 小时;过期回源并按内容 SHA256 判断是否变更
|
||||
- 响应带 ETag(SHA256):浏览器条件请求命中即 304,不回源
|
||||
- 浏览器侧同为 24h(`Cache-Control: public, max-age=86400`),并带 ETag(SHA256):
|
||||
过期/硬刷新后走条件请求,内容未变即 304,不回源
|
||||
- 免登录:与子服务器原本的公开资源一致(页面渲染前浏览器无法携带业务鉴权)
|
||||
"""
|
||||
|
||||
@@ -452,9 +453,8 @@ class SubscriptionRemoteAssetView(APIView):
|
||||
|
||||
response = HttpResponse(payload['Content'], content_type=payload['ContentType'])
|
||||
response['ETag'] = etag
|
||||
# 主服务侧缓存 24h(回源频率上限);浏览器侧 1h + ETag 条件请求,
|
||||
# 便于提供者更新后 1 小时内可见,又不会频繁打到子服务器。
|
||||
response['Cache-Control'] = 'public, max-age=3600'
|
||||
# 主服务侧与浏览器侧同为 24h(ETag 保留:硬刷新/过期后仍走条件请求,命中即 304)
|
||||
response['Cache-Control'] = f'public, max-age={REMOTE_ASSET_TTL_SECONDS}'
|
||||
response['X-Remote-Cache'] = 'HIT' if payload['Hit'] else ('CHANGED' if payload['Changed'] else 'FRESH')
|
||||
return response
|
||||
|
||||
|
||||
Reference in new issue
Block a user