为什么 Firefox 忽略基于范围查询的缓存控制?

2024-02-16

Web 服务器能够将媒体(本例中为音频)传输到浏览器。浏览器使用 HTML5 控件来播放媒体。然而,我发现 Firefox 正在缓存媒体,尽管我(相信我)明确告诉它不要这样做。我有预感,它与 206 部分内容响应有关,因为带有完整 200 OK 响应的常规“非范围”GET 不会被缓存。 Chrome (27) 可以正常处理,但 Firefox (21) 不能:

HTTP/1.1 206 Partial Content
Date: Tue, 21 May 2013 17:24:29 GMT
Expires: 0
Pragma: no-cache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Disposition: attachment; filename="audio.wav"
Content-Type: audio/x-wav
Connection: close
Accept-Ranges: bytes
Content-Range: bytes 0-218923/218924

有人知道如何让 Firefox 不缓存这个吗?当我单击播放同名的其他音频文件时,Firefox 只会播放会话中单击(缓存)的第一个音频文件,而不是从服务器重新获取新音频文件。

注意这个问题 https://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers似乎直接询问/回答这个问题,但它不起作用......我使用提到的标题。

谢谢你的帮助。

EDIT:我也尝试添加 ETag: 标头,但 Firefox 仍然缓存原始响应。

EDIT: 包括一个Content-Length:匹配的标头(本例中为 218924)似乎不会影响该问题。

EDIT:我已在 bugzilla.mozilla.org 上提交了一个错误,但目前还没有任何活动。


您的 Firefox 正在实施第 13.8 节rfc2616 http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.8。所以这种行为是可以的。

13.8 错误或不完整的响应缓存行为

接收到不完整响应的缓存(例如,响应较少) 比 Content-Length 标头中指定的数据字节数)可以存储 回复。然而,缓存必须将其视为部分响应。 部分响应可以按照第 13.5.4 节所述进行组合;这 结果可能是完整响应,也可能仍然是部分响应。一个缓存 未经明确说明,不得向客户端返回部分响应 使用 206(部分内容)状态代码对其进行标记。 A 缓存不得使用状态代码 200 返回部分响应 (好的)。

部分响应可能会(也可能不会)被存储。所以Chrome和Firefox都遵循规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Firefox 忽略基于范围查询的缓存控制? 的相关文章

  • 更改时触发跨度文本/html

    jQuery 或 JavaScript 中是否有任何事件在以下情况下触发span标签 text html 已更改 Code span class user location span user location change functio
  • 如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数?

    因此 我尝试根据是否选中子复选框 使用 Knockout js 将类添加到元素 为此 我试图通过this作为我的函数的参数 目前 我的精简 DOM 结构如下 tr td td tr
  • `ie9` - contenteditable false 在父级可编辑时不起作用

    我正在尝试制作内容可编辑和不可编辑的容器 用户可以通过 3 种方式使用它 他们可以将内容与non editable 他们可以将内容与editable 他们可以在不选择其中之一的情况下放置内容 可编辑 我正在努力实现以下目标 content
  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 数字和小数的输入掩码

    在测试我的程序后 我发现了以下错误 我在 sqlserver 中的表包含 价格数字 6 2 我的程序的用户输入价格 555 00 就很好了 但是当他输入 555555 时 这是错误的 所以我需要指定掩码 其中尾数是可选的 0 到 999 小
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • 如何在没有分页装饰的情况下渲染 ngTable?

    在我的小型 AngularJS 应用程序中 我使用 ngTable 库渲染多个表格 只有一个可以使用分页 其他的内容总是少于一页 每个渲染的 ngTable 似乎都在表格下方添加了 10 25 50 100 选择器 对于我的大多数桌子来说
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • 如何使用带有 python 的报告实验室将 html 文档转换为 pdf

    我正在尝试使用报告实验室将我创建的 html 文档转换为 pdf html 文档如下 我不确定如何做到这一点 我在网上查看过 似乎找不到解决方案 html文档 h2 Convert to pdf h2 p Lorem ipsum dolor
  • 将样式添加到 mat-autocomplete 的 mat-option

    我有这个 HTML代码在这里 https stackblitz com edit angular mat autocomplete with selected value vx1uqg file src 2Fapp 2Fautocomple
  • Google Maps API 下拉列表,缩放至标记

    我正在使用 Google Maps API v3 我有一个带有一些标记的简单地图 我还有一个下拉列表 我需要最少的代码来完成这项工作 我想在下拉列表中选择一个标记 并将选定的标记平移到它 我已经尝试了一切并在网上查看 我发现事情很接近 但到
  • 当 URL 包含片段时,iframe 会导致父元素在 Google Chrome 上向上滚动

    在 Google Chrome 37 0 2062 122 OSX Windows 上 具有包含片段的 URL 的 iframe 会导致父元素向上滚动 它只发生在 Chrome 中 在 Safari 和 Firefox 中测试 这是显示问题
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • 物化模式覆盖整个页面(模式弹出窗口未带到前台)

    由于保密原因 我无法上传 Web UI 的屏幕截图 物化模态应该表现得像here http materializecss com modals html 但不幸的是 我的网站发生的情况是 包括模式在内的整个页面都是 深色背景 的一部分 模式
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 避免响应式页面的重复内容

    我目前正在做一个涉及响应式设计的项目 整个布局应该使用HTML和CSS来实现 我知道可以使用 java 脚本将内容从一个列布局移动到另一列布局 而无需复制内容 但是使用 HTML 和 CSS 是否可以实现相同的效果 以下面的例子为例 它会在
  • 如何在jquery中以相反的顺序迭代元素? [复制]

    这个问题在这里已经有答案了 我是jquery的新手 我想知道如何使用each 在jquery中以相反的顺序迭代表单元素 任何帮助 将不胜感激 尝试这个 input get reverse each function

随机推荐

  • 重命名包名称后出现“找不到符号 R”错误

    重命名我的项目包名称 使用重构 后 我收到此错误 Error 7 44 error cannot find symbol class R 我的全部R用法无效 我尝试手动修复它 但它对我不起作用 Invalidate chases Resta
  • Next.js 中未定义 localstorage

    我正在尝试将应用程序从 React 移至 Next 在 React 中我没有收到此代码的错误 let authTokens setAuthTokens useState gt localStorage getItem authTokens
  • MongoDB TTL过期检查的更改周期

    关于基于TTL索引的文档过期MongoDB 文档 https docs mongodb com manual core index ttl timing of the delete operation says 删除过期文档的后台任务每 6
  • 选项卡切换事件可用于 Google Chrome 扩展吗?

    作为 Google Chrome 扩展 是否可以监听选项卡切换 也就是说 在标签切换刚刚发生时收到通知 I want to make an extension that in fullscreen when switching tabs w
  • 如何使用 localstorage / ajax jquery 获取从第一页到第二页的单选按钮值

    目前正在处理本地存储 在第一页中 如果用户选择第二页面板中的第一个单选按钮 则必须隐藏两个单选按钮 如果用户选择单选按钮 则第二页验证中的一个文本字段不应发生 我不知道如何使用 localStorage 或 ajax 哪一个是最好的 当我看
  • Github 自述文件中的 .gif 水平居中

    我正在尝试将 gif 居中 这是 markdown 代码 Demo demo gif 上面的代码将我的 gif 对齐到左侧 见下图 所以 我尝试将 markdown 放入其中 p 像这样的标签 但它不起作用 p p align center
  • 如何在clickhouse中根据日期和时间段选择数据

    我想通过两者过滤一些数据yyyymmdd 日期 和hhmmss 时间 但是clickhouse不支持time类型 所以我选择datetime将它们结合起来 但如何做这样的事情 这是代码dolphindb 它支持second类型来表示hhmm
  • svnrdump 转储和 svnadmin 转储之间的区别

    我需要 svn 存储库的转储 我找到了两个解决方案 svnrdump dump And svnadmin dump svnrdump dump是相同的svnadmin dump 如果不是 这两个命令有什么区别 svnrdump生成相同的转储
  • UWP ListView DataTemplate 绑定到项目而不是属性

    如何将数据模板中的项目绑定到项目本身 而不是该项目的属性 我有一个将项目作为模型的用户控件 鉴于这些模型 public class Car public string Name get set public Color color get
  • QImage/QPixmap 大小限制?

    是否有任何已知的尺寸 空间限制QPixmap and or QImage记录的对象 我没有找到任何与此相关的有用信息 我目前在 OSX 和 Windows 上使用 Qt 4 7 3 我特别感兴趣的是 宽度 高度限制 限制取决于颜色格式 32
  • UTF-8 和 ISO-8859-1 有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么区别UTF 8 https en wikipedia org wiki UTF 8 and ISO 8859 1 https e
  • JSF:commandLink 作为 outputFormat 的参数

    我正在国际化一些 JSF 文件 因此正在外部化字符串 以及使用占位符的字符串连接 我对 JSF 的经验很少 今天和昨天 所以如果我的问题有一个明显的答案 请原谅 我一直在成功地使用 h outputFormat 标记 和 f param 标
  • 用户窗体根据屏幕分辨率调整大小

    我有一个 Excel 用户表单 我想在打开时调整大小以适应屏幕分辨率 我通过得到高度和宽度Application Height and Application Width 通常使用这两个参数和以下代码 应该可以解决问题 Me Top App
  • 以编程方式最大化窗口并防止用户更改窗口状态

    如何以编程方式最大化窗口 以便窗口一旦打开就无法调整大小 达到最大化状态 例如 最大化 Internet Explorer 并查看它 我将 FormWindowState 属性设置为 this WindowState FormWindowS
  • 检测视图中的任何触摸(iPhone SDK)

    我目前正在使用 void touchesBegan NSSet touches withEvent UIEvent event void touchesEnded NSSet touches withEvent UIEvent event
  • 在 Electron 中使用量角器

    我正在尝试为我运行的应用程序设置单元测试和 e2e 测试Electron http electron atom io using 量角器 https angular github io protractor 我参考了很多不同的帖子 this
  • Rails 渲染路线路径

    我对 Rails 还很陌生 很难理解 Rails 中路径系统的工作原理 在我的routes rb中 我创建了一个用于注册的别名 match signup gt user new resource user controller gt use
  • 数据路径 '''' 不应具有附加属性 (es5BrowserSupport)

    尝试在 Angular 中开始 在 CLI 中创建项目后 我尝试使用两者打开项目ng serve o and npm start但我收到以下错误 Schema validation failed with the following err
  • 线程与并行,它们有何不同?

    线程和并行有什么区别 哪一个比另一个有优势 Daniel Moth 我的前同事 线程 并发与并行 http www danielmoth com Blog 2008 11 threadingconcurrency vs parallelis
  • 为什么 Firefox 忽略基于范围查询的缓存控制?

    Web 服务器能够将媒体 本例中为音频 传输到浏览器 浏览器使用 HTML5 控件来播放媒体 然而 我发现 Firefox 正在缓存媒体 尽管我 相信我 明确告诉它不要这样做 我有预感 它与 206 部分内容响应有关 因为带有完整 200