首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If-None-Match标头未由浏览器发送

If-None-Match标头未由浏览器发送
EN

Stack Overflow用户
提问于 2019-04-04 23:25:25
回答 1查看 359关注 0票数 1

我正在尝试修复web应用程序的性能,因为在每次登录时都会有大量的文件下载。为此,我希望启用条件浏览器缓存,即,如果ETag发生更改,则从服务器提供新的副本,否则使用浏览器缓存。

通过java过滤器从服务器发送的响应头:

代码语言:javascript
复制
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

下一次浏览器调用时,发送的请求头为:

代码语言:javascript
复制
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头文件,比如:

代码语言:javascript
复制
Cache-Control: no-cache, must-revalidate, max-age=0  

但无济于事。有没有人能帮帮忙。此外,每当ETag发生变化时,web应用程序提供新鲜内容也是非常重要的。

EN

回答 1

Stack Overflow用户

发布于 2019-04-04 23:41:01

您的ETag无效,因为它缺少specification所需的双引号。尝试:

代码语言:javascript
复制
ETag: "040419095614"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55519681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档