当前位置: 首页 > 知识库问答 >
问题:

超文本传输协议响应中没有Cache-Control标头的ETag

房子昂
2023-03-14

我正在努力学习一些关于HTTP的基础知识。我检查了一些HTTP响应头,注意到了两件让我困惑的事情:

>

  • 没有缓存控制标头,并且

    ETag标头存在。

    我理解 ETag 的方式是,客户端将 ETag 中的请求发送到缓存,并且缓存将资源 Etag 与服务器重新验证。但是,如果没有缓存控制标头作为响应,则所有后续请求都直接与服务器进行重新验证并完全省略缓存。是这种情况还是我错过了什么?当响应中不存在缓存控制标头时,是否还会发生其他情况?如果所有请求都将直接转到服务器,为什么 ETag 甚至存在?

  • 共有1个答案

    法镜
    2023-03-14

    没有缓存控制标头并不意味着无法缓存资源,而是由客户端(即web浏览器)决定如何处理此未定义状态。

    缓存它(无论是在内存中还是在磁盘中),并且只有在ETag验证时才使用缓存的版本,对我来说似乎是一个非常合理的实现。

    如果您不想缓存资源,那么您应该使用“max-age=0, no-store, no-cache,必须重新验证”的缓存控制标头明确说明这一点。

     类似资料:
    • 我只是有一个关于服务中http请求的结构和处理响应的问题。我正在使用Angular2。alpha46 Typescript(刚刚开始测试-我喜欢它…Ps…。感谢所有一直致力于它并通过github作出贡献的人) 因此,采取以下措施: 登录表单。组成部分ts 从这个组件中,我导入了我的userService,它将容纳我的超文本传输协议请求,以登录用户。 使用者服务ts 我想做的是能够处理http请求之

    • 我的LogCat: 签名密钥(sw)为https://api.dropbox.com/1/shares/dropbox/a.jpg?oauth_consumer_key=2f2y1dyuqhp58ek 我对http没有太多经验。。 因为httpPost=新的httpPost(sw);工作正常,这是否意味着基本字符串签名正确? 还是我错过了什么?

    • 我启用了 Lambda 代理集成,并将响应标头设置为 Lambda 输出和 API 网关的一部分,这些网关会将其作为 HTTP 响应的一部分返回给客户端。 示例代码: 我需要在标题中发送3个cookie。我试过了。但是失败了: [编辑]我连接了cookie并作为响应传入,客户端获得了cookie。但是当客户端在“位置”中调用目标时,请求的标头中没有cookie。 请帮助将这3个cookie发送给我

    • 我正在努力将Sustainsys.Saml2与Gluu服务器结合起来设置。我使用Sustainsys.Saml2.2.0、Sustainsys.Saml2.Mvc2.2.0和Gluu 3.1.6。我使用的应用程序是针对. NET 4.6.2编译的MVC应用程序。以下是发生的流量: 得到https://localhost:44300/Saml2/SignIn 得到https://lb/idp/pro

    • 我正在使用下面的代码登录apiendpoint并从中检索数据,但响应似乎已编码,我无法读取内容。我正在使用request-requestes-0.0.1 当我在控制台上打印相同的响应 有人能告诉我如何解码和读取响应中的数据吗

    • 我想知道你对这个概念的看法/意见。如果有替代方案?这是否可行/有益? 据我所知,对于每个http请求,服务器都会执行一些操作并返回http响应。 现在考虑任何场景,我们希望对服务器上运行的进程有更多的控制。 情景1:http请求发送- 在这里,资源被浪费了。 情况2:http请求发送- 在这里,客户端不知道服务器中运行的进程的状态。客户端必须等待,直到它获得超文本传输协议响应。 我的想法是:在初始