问题标签 [http-status-code-304]

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.

0 投票
2 回答
3210 浏览

spring-mvc - Spring MVC 可选地在单个映射中不返回视图

我有一个案例需要:

  • 如果博客尚未修改,则返回 304 未修改状态
  • 或者如果它在 If-Modified-Since 请求标头后被修改,则返回博客视图

问题是当我想返回 304 状态时,我如何告诉 spring mvc 不要从 null 返回假定另一个视图,并立即开始发送带有状态的响应?

0 投票
0 回答
335 浏览

httpresponse - 带有 if-none-match 的 codeception 获取请求不返回 304

我正在使用 codeception 来覆盖 REST API 的代码。在我目前的情况下,我想测试发送请求以接收所请求资源的 ETag-Header 的行为,并在标题为“If-None-Match”的同一资源上的第二次请求中重用此 ETag 的值实现304响应码。

所以我在 Cest-File 中所做的是:

当我执行此测试时,它在第二个请求说响应代码 200 与 304 不匹配后失败。当我使用外部工具(Firefox 的 HTTP 请求程序插件)执行相同的请求时,我得到了预期的行为。我必须做些什么才能让我的测试正常工作?我是否在代码接收方面发了一些错误信息,或者这可能是一个错误?

任何帮助表示赞赏,也许有人以前已经遇到过这种情况。在此先感谢您的帮助!

0 投票
1 回答
8569 浏览

android - 响应代码 304 和 200 时的 Volley 异常错误

在使用 Volley 库时,我注意到在进行 POST 时JsonObjectRequest,如果服务器返回代码 304 或 200 且响应中没有数据(response.data),Volley 会将其解释为错误响应,而不是成功。

Response<JSONObject> parseNetworkResponse(NetworkResponse response)我设法通过在类的方法中添加几行代码来解决它JsonObjectRequest.java

它是这个问题的最佳解决方案吗?

谢谢!

编辑

检查课程BasicNetwork.java我意识到 Volley 通过询问 if 来检查响应是否没有数据httpResponse.getEntity() != null

但问题仍然是当 Volley 尝试response.data == new byte[0]在 parseNetworkResponse 方法中创建新字符串时发生的 JSONException。

0 投票
1 回答
23128 浏览

apache - 避免 304(未修改)响应

它是否ExpiresDefault足以避免来自服务器的 HTTP 状态 304 响应的 Apache 指令?我已经设置了,但是每当我打开本地PHPMyFAQ站点上的任何页面时ExpiresDefault "access plus 10 years",我仍然会看到带有 304 响应的日志条目。清空浏览器缓存似乎没有任何改变。"GET /assets/template/default/css/style.min.css?v=1 HTTP/1.1"

0 投票
1 回答
72 浏览

php - 避免重新下载php发送的图像

我有一个网站,其中包含一些从 php 脚本发送的图像。每次发送 ETag 并检查下一个请求。这很好用。在打开的第一页上,所有文件都以 200 Ok 下载,下一页以 304 Not Modified 下载。

但我注意到,如果我重新打开页面但在重新加载时(F5),则直接从 http 服务器发送的某些文件未检查是否修改了事件。

我想要做的是让浏览器跳过检查我的文件是否被修改并显示缓存版本。所以我检查了 http 和 php 脚本发送到浏览器的响应:

来自 http 服务器的静态内容:

由 php 脚本提供的内容:

所以区别是:

但我认为唯一能让浏览器不检查更新的是 Last-Modified。因此,如果我将 Last-Modified 添加到我的 php 脚本中 - 浏览器会跳过检查更新吗?

0 投票
3 回答
42054 浏览

python - requests.codes.ok 是否包含 304?

我有一个程序,它使用请求模块发送一个获取请求,该请求(正确)以 304“未修改”响应。提出请求后,我检查以确保response.status_code == requests.codes.ok,但此检查失败。请求是否不将 304 视为“ok”?

0 投票
0 回答
673 浏览

internet-explorer - IE 不会通过 https 返回 If-None-Match 标头

我在通过 https 在 IE 上使用 etags 缓存内容时遇到问题。

Chrome 和 Firefox 允许我使用以下组合成功缓存内容

If-None-Match 标头很重要,因为可能以两种不同的方式查看同一页面,这将生成不同的 etag。

这非常有效,除非我在 https 上使用 IE(我尝试过 IE9 和 10)。在这种情况下,它会删除 if-none-match 标头,但不会删除 if-modified-since 标头。这是一个问题,因为现在它为两种不同的查看方式显示相同的缓存内容,因为修改后的时间戳和 url 都匹配。

SSL 证书是有效的,我已经阅读过它可能会导致问题,并且它在 FF 和 Chrome 中都可以使用。有没有办法来解决这个问题?

这是我在 Chrome、IE (http) 和 IE (https) 中的标题。
请注意,IE (https) 中缺少 If-None-Match 标头。如果问题出在服务器响应上,我已经包含了请求和响应。我已经更改了 url 和服务器名称。

Chrome - https(按预期工作)

IE - http(按预期工作)

IE - https(未按预期工作)

我将非常感谢任何建议。

0 投票
2 回答
842 浏览

google-chrome - 缓存问题 w。自定义网络服务器。Chrome 不发送 If-Modified-Since 标头,但仍不时收到 304

我正在使用基于 NanoHTTPD 构建的自定义 Web 服务器,并添加了缓存功能。代码中只有一部分可能会引发 304 Not Modified 响应:

isNotModified 方法:

出于某种原因,即使标头中没有指定 If-Modified-Since (或与缓存相关的任何内容),我仍然使用(至少)Chrome 获得 304。这会导致浏览器将资源解释为空字符串并破坏内容。

0 投票
0 回答
850 浏览

asp.net-mvc-4 - IIS 以 304 HTTP 状态响应非条件请求

有时我的 IIS 服务器开始以 304 HTTP 状态响应非条件请求。我还没有确定到底什么时候会发生这种情况,但是当它启动时,所有浏览器都会不断收到 304。

这是请求(使用提琴手调试):

和回应:

ASP.NET MVC 方法如下:

该请求没有任何 If-Modified-Since (或类似)标头。服务器不应该发出 200 响应吗?

如果没有发送 If-Modified-Since,可能与获取 304 有关?

0 投票
2 回答
14528 浏览

http - 为什么 304 状态码算作“重定向”?

我目前正在尝试了解 304/未修改究竟如何符合 3xx 范围类的 HTTP 状态代码。RFC 1945,秒。9.3RFC 2616,秒。10.3都写着:

此类状态码表明用户代理需要采取进一步的行动才能满足请求。

虽然“从客户端的本地缓存加载”显然是“进一步的操作”,但我很难理解这是 HTTP 意义上的重定向。我是不是太从字面上看这个了?