问题标签 [if-modified-since]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
caching - 如何使用 Spring-security 对 304 回复设置缓存控制
在为我的所有动态端点使用 spring-security 默认 CacheControl 时,我试图让浏览器缓存我的静态资源......因此我为它们覆盖了 ResourceHandler,如下所示:
这工作正常,当浏览器第一次获取资源时,我得到一个标题
但是,当浏览器使用If-Modified-Since标头检查资源是否在缓存期结束之前已更新时,服务器会回复 304 响应和标头
然后浏览器会在页面重新加载时再次下载资源。
我想要的是设置 304 响应的 Cache-Control 标头,这样浏览器就不会在每两个 GET 请求上下载资源。任何使用 Java 注释的指针?谢谢
java - 在请求中发送“if-modified-since”标头
我是使用 Java 中的 Rest API 的新手。我正在尝试执行if-modified-since
请求并遇到问题:
- 客户端发送一个获取请求,服务器用一个资源和一个
Last-Modified
标头响应。从那时起,客户端发送一个带有Last-Modified
标if-modified-since
头的请求。这是否意味着,来自客户端的第一个 get 请求没有if-modified-since
标头? - 收到的响应是否会
Last-Modified
永远存储在浏览器中,还是应该存储在客户端数据库中的某个位置以发出进一步的请求?
prestashop - 在 Prestashop 中设置 If-Modified-Since 的正确方法
我目前正在开发一个基于 Prestashop(确切地说是 1.6.1.5 版本)的网站。我对设置 If-Modified-Since 标记的正确方法有疑问。
我知道要在 Wordpress 中进行设置,您必须打开 WP-config 文件并添加
但是在使用 Prestashop 时我应该编辑哪个文件?我可以使用同一行还是应该写一些不同的东西?
另外:我必须在 FTP 中编辑文件,我无法添加特定模块。
http-headers - Web 服务器 getFromFile 上的 akka-http 在刷新时导致 404s
我正在为基于 React 的单页应用程序的 Web 服务器使用 akka-http,并且在刷新我的网站时遇到问题。我为所请求的资源(只是 index.html)返回 404。执行“超级刷新”(ctrl + 刷新)工作正常,一切都按预期加载。但是当我进行正常刷新并且 if-modified-since 标头包含在请求标头中时,我注意到服务器返回了 404 响应。
为了确保这确实是问题所在,我进行了健全性检查。我更新了代码以将资源文件夹中所有文件(所有 js 文件和 index.html)的修改日期更新为捕获全部/刷新端点时的当前时间,并注意到这修复了刷新问题。但是,“解决方案”仅适用于本地,因为一旦将它们部署到实际的开发或生产共享主机,我就没有这些资源的写入权限。
我现在只是在寻找一种解决方案,可以让我忽略标题的这一部分或实际正确处理它。我尝试使用 akka-http 的条件(...)指令,但没有任何运气。
有没有人遇到过这个问题?并成功解决了这个问题?
html - 如果服务器返回 304,Edge 不会播放视频
我发现第二次播放视频时 Edge 无法正常工作。我的应用程序使用默认标签,Edge在第二次加载视频时<video>
发送了一个标题。If-Modified-Since
如果我的服务器返回 304 Not-Modified 它不起作用。当我更改它以返回完整的视频时,它可以工作。
任何人都可以验证这种行为?我做错了什么,我应该在我的 304 响应中添加其他内容以使其正常工作吗?
顺便说一句,我看到 Chrome 和 Firefox 等其他浏览器If-Modified-Since
在加载视频时从不发送。
php - 为什么 If-modified-since 适用于 html 文件而不适用于 php 文件
我注意到,如果您首先在 html 中创建一个网页,然后在 php.ini 中重新创建完全相同的页面。接下来检查 varvy.com 或类似的东西,html 文件会说 if-modified-since 函数受支持,而 php 文件会说不支持。
有人可以告诉我为什么以及如何修复它,以便它也适用于 php 文件。感谢您对此的任何帮助。
有些人已将此标记为重复,但我不同意询问 html 和 php 之间的区别以及答案中它说该值是在 $_SERVER['HTTP_IF_MODIFIED_SINCE'] 中设置的,但没有解释它在哪里。请提供有关如何设置的更多答案
c# - 在 Web 请求请求标头中传递 If-Modified-Since
在我尝试使用的API 之一中,我需要以2019-07-25T15:26:49+05:30
. 传递 If-Modified-Since 的属性是 C# 中的 DateTime。我们如何才能将参数中的格式与 TimeZone 传入相同。
php - Vimeo API 未响应“If-Modified-Since”标头
根据Vimeo API 文档:
If-Modified-Since标头使您能够仅返回自特定日期和时间以来已修改的那些 API 资源。
标题如下所示:
If-Modified-Since: {ddd}, {D} {MMM} {YYYY} {HH}:{mm}:{ss} {Z}
注意:如果您的格式代码生锈,则以格林威治标准时间 2023 年 6 月 20 日星期二 14:42:36 为例。如果自此日期以来没有任何资源被修改,API 将返回空响应正文和 HTTP 状态 304 Not Modified。
我正在为 Vimeo API 使用官方 PHP 库。
根据GitHub 问题 #130,PHP 库的request()
方法接受一组标头。这个提交显示了$headers
数组是如何传递和解析的:
但是当我通过示例中显示的未来日期时,我仍然收到完整的视频列表,而不是文档中指定的“空响应正文和 HTTP 状态 304 未修改”。
我究竟做错了什么?
结果:
编辑
根据这个答案(不是关于 Vimeo),如果在“If-Modified-Since”日期之后修改了其中一个视频,API 似乎可能会返回整个视频集。
如果整个响应中有任何变化,那么它会将整个响应发送给您。
但如果日期在未来,我仍然希望结果为空。我是不是误会了?
编辑
Tom 建议 Vimeo API 忽略将来设置的“If-Modified-Since”标头。我最近尝试设置我的,但我仍然得到在该日期之前修改的结果:
结果包括:
编辑
我错了。如上所述,我相信如果响应中的任何项目自“If-Modified-Since”时间戳以来已被修改,则会返回整个响应。这使它看起来像标题不工作。但是我将时间戳设置为尽可能接近当前时间,并且确实得到了“304 Not Modified”响应,正如汤姆在下面的回答中所报告的那样。其他人(内容制作者)也可以访问我正在测试的 Vimeo 帐户,但我不知道他们最近多久修改了内容。
php - Apache 不需要在 PHP 脚本中进行显式 if-modified-since 处理?
在某些情况下,我的 PHP 脚本提供了一个大的二进制文件。我想支持if-modified-since标头。
在我的测试中,我观察到了意外的行为:如果我在 PHP 中设置了最后修改的响应标头,那么 Apache 似乎会自动处理带有if-modified-since标头的请求('200 OK' + 内容或没有内容的 '304 Not Modified')。它甚至推翻了header("Last-Modified: $lastModifiedValue GMT", true, 200);
.
在决定是否依赖它或是否应该实现if(isset($headers['If-Modified-Since'])){...}
块之前,我试图找到有关此行为的文档。
任何关于这种行为有多正式的经验、建议或提示都将非常受欢迎。
完整的测试片段:
(服务器在 Apache 上运行:2.2,PHP:5.6)
java - Java Web 服务器比较 if-modified-since 和 last modified
我正在尝试制作一个 Java Web 服务器,它将 if-modified-since 与文件的最后修改进行比较。但是,我不知道如何从客户端获取 if-modified-since 标头并进行比较。