问题标签 [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.
java - 支持 ETag、If-Modified-Since 的 Android 图像加载器库
我已经使用了一段时间Android Http Image Manager,最近我切换到了Android Universal Image Loader
恐怕他们都不支持验证本地缓存是否是最新的。
我目前正在寻找的是一个具有社区支持和支持通过ETag和/或If-Modified-Since检查远程更改的 Image Loader 库
jquery - jQuery,浏览器缓存,使用 attr('src', newimage) 刷新图像
我正在通过 attr('src', newimage) 刷新图像,其中 newimage 可能指向多个图像之一,并且可能已经被浏览器缓存。不幸的是,当通过这种方法请求时,浏览器缓存被完全忽略了。
此示例中的所有图像确实都被浏览器缓存了。当最初从服务器获取时,服务器返回正确的“Cache-Control”、“Last-Modified”和“Etag”标头。使用 jQuery 运行 attr('src', newimage) 时,发起的请求既不检查浏览器缓存,也不发送请求标头 'If-Modified-Since' 和 'If-None-Match' :(
有人知道如何告诉 jQuery 在向服务器发送请求之前检查浏览器缓存吗?
顺便说一句,我正在使用 jQuery 1.7.1
java - 查看文件是否已使用 GWT 修改
我想知道自从使用 GWT 一段时间以来图像是否已被修改。我发现设置 If-Modified-Since http 标头可能会起作用,所以我尝试像在这篇文章中那样做:
问题是我得到一个等于 0 的状态码。你能告诉我我做错了什么吗?这是了解服务器上的文件是否已被修改的好方法,还是有其他使用 GWT 的方法?谢谢。
http - HTTP/1.1 领域中实体的年龄是多少
我已经为这个问题苦苦挣扎了好几天。
存储在缓存中的对象的年龄是多少。特别是,我想知道 Cloud Front。如果我指定
缓存控制:max-age=60,公共
当我在 T = N 上传它,然后 10 分钟过去了,我的实体的官方年龄是 600 秒吗?换句话说,一个实体的年龄是现在 - T 吗?
例如,如果我将一个过期日期为 30 分钟的文件推送到 S3,然后我在 1 周内不推送它的新版本,Cloud Front 是否会重新验证(GET If-Modified-Since)该实体每个请求?或者它会每 30 分钟重新验证一次实体,并在每次重新验证后将年龄设置回 0?
我在这里寻找年龄的定义,但我不太确定答案是什么:
java - Java Web Start 是否缓存资源或曾经使用过 If-Modified-Since?
浏览器可以缓存图片等资源,并发送标头,If-Modified-Since
以便 servlet 可以检查并在未修改时返回 304。
那么 Java Web Start 呢?它曾经这样做过吗?If-Modified-Since
我检查了我的 java web start甚至对于启动画面也没有标题。这是否意味着 Java Web Start 没有像浏览器那样的缓存?
jquery - 如何在 IE 上使用 JQuery/JSON 获得 If-modified-since?
我正在使用一个特别昂贵的(就查询和带宽而言),将其视为项目目录。但是,目录还需要始终完全准确,即目录的更新需要实时反映,因此固定的缓存到期期限将不起作用。
客户当前正在使用 JQuery 1.8.2 请求目录,就像这样:
结果是格式正确的 JSON,内容类型为“application/json”。
由于我在服务器端维护了一个可靠的缓存,我真的很想实现 If-Modified-Since 语义,以便我的服务器可以在缓存是当前的(不会导致数据库或网络命中)时返回 304,并且只发送如果自“If-Modified-Since”时间戳后发生重新加载,则向客户端提供新目录。
但是,我无法让它工作(至少在 IE 上)。我尝试设置以下内容,但仍然无法让客户端发送 If-Modified-Since:
- 在 JSON 请求上设置“缓存:真”
- 使服务器在响应中返回“Cache-control: private”HTTP 标头
任何对此有任何见解的人?
作为后续,我还想知道如果我将 Cache-control 设置为“public”(即可由代理服务器缓存),缓存一致性是否仍会通过代理维护?即每次客户端请求该页面时,代理都会检查回我的服务器。如果我要启用代理缓存,我需要完全确定代理将保证一致的缓存状态。
我已经坚持了一段时间,所以任何帮助将不胜感激!
谢谢,-K。
python - 检测网页是否更改
在我的 python 应用程序中,我必须阅读许多网页来收集数据。为了减少 http 调用,我只想获取更改的页面。我的问题是我的代码总是告诉我页面已更改(代码 200),但实际上并非如此。
这是我的代码:
我不明白出了什么问题。谁能帮我?
file - 为 File::Stat 模拟或存根 mtime
我的对象GET
sa 文件通过 HTTP。
它这样做,使用If-Modified-Since
标题。如果自标头中的时间以来文件尚未修改,则将返回 Not Modified 响应,并且不应获取和写入文件。像这样:
我想测试这两种情况(在这两种情况下,磁盘上都存在一个文件)。为此,我需要存根其中的任何Net::HTTP
内容,或者我需要存根 File.stat 以返回一个mtime
我确信在线资源将返回一个新的或未修改的自。
我应该存根(甚至模拟)Net::HTTP
吗?如果是这样,是什么?
或者我应该存根mtime
返回一个遥远的过去或未来的日期,以强制或禁止未修改的标题?
编辑:深入研究此事,我了解到i.ytimg.com域不支持这些标头。所以我需要通过从 YouTube API 检查 JSON 来解决这个问题。但是,“测试 if-modified-since-headers 时模拟什么以及如何模拟”的问题仍然存在。
以下是我得出的域不支持这一点的结论:
那里没有“最后修改”。用另一个调用来说明 exaple.com,它确实支持 if-modified-since 标头。
http - 在“If-Modified-Since”HTTP 标头中使用客户端生成的时间
我们使用来自服务器的“Last-Modified”响应标头和“If-Modified-Since”请求标头进行资源验证。HTTP 标头定义声明“If-Modified-Since”应该包含从服务器接收的值(它不禁止使用另一个值)。在某个时候,我们开始使用“最后更新时间”作为客户端发送的“If-Modified-Since”的值。“上次更新时间”是客户端上次从服务器收到更新的时间(资源的新版本或 304 错误)。我们被告知,由于可能存在时间同步问题,我们不能使用任何客户端生成的时间。
当然,所有时间都以格林威治标准时间表示。
我找不到确认这是一项要求。很高兴听到 espert 的意见,必须使用从服务器返回的值作为“If-Modified-Since”的值,还是有一定程度的灵活性?在什么情况下可以使用客户端生成时间?
非常感谢
web-services - 更新通行证时出错
我将序列号为 1 的通行证添加到 iPod touch ,然后我将序列号为 34455 的通行证添加到 iPhone 5。接下来,我推送一个新的通行证;现在我可以通过切换传球的背面来更新传球。我在 iPhone 5 中切换通行证,然后更新通行证。但是当我在 iPod touch 中切换通行证时,通行证无法更新,并且我在 php_error.log 中收到此错误:
[01-May-2013 10:51:56 Europe/Berlin] Passbook Error Log: [2013-05-01 15:51:54 +0700] Get pass task (pass type pass.cam-mob.passbookpasstest, serial number 1, if-modified-since Wed, 01 May 2013 14:59:39 GMT + 7; with web service url http://192.168.1.202/passesWebserver/webService/) encountered error: Requested serial number 1, received serial number 34455
我应该如何解决这个问题?