javascript - 在决定下载之前检查文件校验和
问题描述
我想实现以下逻辑:获取大文件(最大 100MB)并将其存储在 service worker 中。然后我想定期检查(比如每小时一次),如果远程文件发生变化 - 需要重新下载。否则 - 我不想打扰服务器。
我正在考虑发送类似“选项”请求的内容,只是为了获取文件的校验和。
我怎么能解决这个问题?
解决方案
使用HTTP 条件请求。这是一种可以实现的方法:
- 将服务器配置为包含一个
Last-Modified
响应标头,其中包含上次修改请求文件的日期,304 Not Modified
如果自请求标头指示的日期以来未修改文件,则If-Modified-Since
响应标头。 - 让服务工作者保存
Last-Modified
标头的值,并在对文件的下一个请求中使用它。如果服务器返回 a304 Not Modified
,则表示缓存文件仍然是最新的。如果服务器返回200 OK
,则缓存该文件并存储Last-Modified
标头的值。
您还可以将 ETag 与If-None-Match
.
这是使用 HTTP 处理缓存的标准方法。
推荐阅读
- docker - 如何在 Kubernetes 中归档一个微服务应用程序的多个隔离实例?
- pyspark - PySpark 类型错误
- c# - 为什么缩放为空?
- python - Python CSV:无法上传文件。索引错误(“字符串索引超出范围”)
- matplotlib - 如何避免在 matplotlib.pyplot.plotfile 中的非连续数据之间画线
- javascript - 通过 innerHTML 和 document.createElement 创建 HTML 有什么区别?
- listview - 是否可以使用 flutter_share 或其他共享插件从 Flutter image_picker 共享文本和照片?
- javascript - 如何加载身份验证?
- jenkins - 詹金斯 - 禁用单阶段的停止/取消
- django - 如何在创建提交的模型时修改我的 Django REST 端点以自动创建依赖模型?