由于每次登录时都有大量文件下载,我正试图修复一个网络应用程序的性能。为此,我希望启用条件浏览器缓存,即,如果ETag发生变化,从服务器提供新的副本,否则使用浏览器缓存。
通过java过滤器从服务器发送的响应标头:
HTTP/1.1 200 OK
Cache-Control: max-age=25200, s-maxage=25200, private, must-revalidate
Date: Thu, 04 Apr 2019 15:12:28 GMT
Pragma: no-cache
Accept-Ranges: bytes
Content-Length: 875914
Content-Type: text/javascript
Last-Modified: Thu, 04 Apr 2019 12:05:21 GMT
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; includeSubDomains
ETag: 040419095614
Cookie: JSESSIONID=*******; secure; HttpOnly
X-Frame-Options: SAMEORIGIN
浏览器下次调用时,发送的请求标头为:
GET ***.js HTTP/1.1
Host: *****
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
Accept: */*
Referer: *****
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: JSESSIONID=*********
浏览器没有发送 If-None-Match 标头,因此用于验证 ETag 并发回 304 响应代码的服务器端代码失败,并且服务器始终将新副本发送到客户端。
我尝试过其他Cache-Control标头,例如:
Cache-Control: no-cache, must-revalidate, max-age=0
但无济于事。有人能帮忙吗?此外,每当ETag发生变化时,Web应用程序提供新鲜内容非常重要。
我知道这已经有很长时间了,但是我最近也遇到了类似的问题。
在我的情况下,If-None-Match 标头是由前端正确发送的,但是当我们查看日志记录时,如果-无-匹配标头从未到达某些用户的 nginx 代理。事实证明,一些公司过滤掉了这些标头,因此没有 If-None-Match 标头将到达服务器。
因此,如果有人再次遇到这个问题,这可能是一个潜在的原因。
您的ETag
无效,因为它缺少规范要求的双引号。尝试:
ETag: "040419095614"
在处理 ASP 脚本时,任何没有包含在 ASP 定界符或 <SCRIPT> 标记中的文本或图形都将被简单地返回给浏览器。可以通过使用 Response 对象显示地把内容发送给浏览器。 发送内容 要将内容从 ASP 定界符内部或过程发送给浏览器,可以使用 Response 对象的 Write 方法。例如,下面的语句可以根据用户是否访问过此页而发送不同的问候语: <% If FirstTime =
在过去的几个小时里,我一直在阅读推送通知应用编程接口和网络通知应用编程接口。我还发现谷歌 我试图了解我们是否可以使用桌面通知实现对浏览器的推送通知,我相信这就是Web通知API所做的。我在这里看到了一个关于如何为Chrome做到这一点的谷歌文档 现在我还不明白的是: 我们可以使用GCM/APNS向包括Firefox在内的所有Web浏览器发送推送通知吗 我相信所有这些答案都可以帮助很多有类似困惑的人
我已经实现了一个使用基本身份验证(使用Spring Security性)的web服务器。 我在访问URL时禁用了默认身份验证入口点(它只返回401,而不是用www身份验证标头响应401),目的是防止浏览器显示身份验证弹出窗口。 我能够用javascript代码和命令行工具(如curl)连接到服务器,但是当我用浏览器(chrome)测试它时 <代码>curl-v-u用户:密码本地主机:8080/用户
出于某种原因,如果我通过浏览器或MockMVC测试类访问Spring控制器,它会返回不同的响应。有人能帮我找出原因吗? 首先控制器方法: 显然,里面有一些未知的类扩展了,并包含一个名为的列表。这还扩展了。 当我通过浏览器访问代码时,我会得到以下内容: 看起来我很顺从。但当我通过MockMVC请求时。。。 响应中没有HATEOAS兼容元素,因此我的测试在jsonPath检查中失败: 我已经尝试过为M
我在使用Owin cookie身份验证时遇到了一个奇怪的问题。 当我启动IIS服务器时,身份验证在IE/Firefox和Chrome上运行得非常好。 我开始在不同的平台上进行身份验证和登录测试,发现了一个奇怪的错误。Owin框架/IIS偶尔不会向浏览器发送任何cookie。我会输入正确的用户名和密码,代码运行时不会将cookie发送到浏览器。如果我重新启动服务器,它就会开始工作,然后在某个时候我会
我建立了两台服务器:第一台用于前端(localhost:7200),第二台用于后端(localhost:7300)。相应地,在路由“/test”上,前端到后端发出了一个测试请求。 问题在于,当我发送一个json对象(单击“btn”按钮时)时,它会拒绝,并显示以下消息: CORS策略阻止从http://localhost:7300/testhttp://localhost:7200访问XMLHttp