首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MS Graph是否处理带有ETag标头的缓存?

MS Graph是微软提供的一种用于访问和操作Microsoft 365中数据的API。它提供了一种统一的方式来访问不同的Microsoft 365服务,如Outlook、OneDrive、SharePoint等。在处理带有ETag标头的缓存方面,MS Graph提供了相应的支持。

ETag是HTTP协议中的一个标头字段,用于标识资源的版本号。当客户端请求一个资源时,服务器会将该资源的ETag值返回给客户端。客户端可以在后续的请求中将该ETag值发送给服务器,以便服务器判断资源是否发生了变化。

在MS Graph中,当客户端请求某个资源时,服务器会返回该资源的ETag值。客户端可以在后续的请求中将该ETag值发送给服务器,通过在请求中添加If-None-Match标头来实现缓存验证。如果服务器判断资源的ETag值与客户端发送的ETag值相同,表示资源未发生变化,服务器会返回304 Not Modified响应,客户端可以继续使用缓存的资源。如果资源的ETag值与客户端发送的ETag值不同,表示资源已经发生变化,服务器会返回新的资源以及新的ETag值,客户端需要更新缓存。

通过使用ETag标头的缓存机制,MS Graph可以有效地减少网络传输和服务器负载,提高应用程序的性能和响应速度。同时,它还可以确保客户端获取到最新的资源数据,避免使用过期的缓存数据。

在使用MS Graph时,可以通过相关的API文档和开发指南来了解更多关于ETag缓存的详细信息和使用方法。腾讯云提供了一系列与Microsoft 365集成的产品和服务,如云服务器、对象存储、内容分发网络等,可以帮助开发者构建基于MS Graph的应用。具体的产品和服务信息可以参考腾讯云的官方网站或者咨询腾讯云的客服人员。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用 cURL 请求测试 ETag 浏览器缓存

简而言之,ETag 标识符是一个值,通常是一个散列,代表特定 Web 资源版本。该资源与 ETag 值一起缓存在浏览器中,并且服务器会在确定特定缓存资源是否已更改时使用该值。...在 Netlify 下,cache-control 告诉浏览器缓存资源,但也不信任缓存。这样做是为了使客户端始终尝试获取最新资源。etag 代表资源版本,并随将来请求一起发送。...如果服务器回复说两次请求之间 etag 没有改变,则响应将会带有 304 代码,从而将使用缓存资源。...,将包含 If-None-Match ,其值为前一个请求 etag 哈希。...由于我是使用内容交付网络(CDN)处理缓存新手,因此对于测试缓存如何与任何给定资源 etag 哈希一起工作对我来说非常有用。

1.4K10

对不起,看完这篇HTTP,真的可以吊打面试官

首先客户端发起一个 HTTP 请求,不带有任何认证,服务器对此 HTTP 请求作出响应,发现此 HTTP 信息未带有认证凭据,服务器通过 www-Authenticate返回 401 告诉客户端此请求未通过认证...如果 Etag 是资源响应一部分,则客户端可以在未来请求头中发出 If-None-Match,以验证缓存资源。...缓存未占用资源 Etag 另一个典型用法是缓存未更改资源,如果用户再次访问给定 URL(已设置Etag),并且该 URL过时,则客户端将在 If-None-Match 字段中发送其 Etag...要使用 Last-Modified 很难实现强验证,通常,这是通过使用带有资源 MD5 哈希值 Etag 来完成。...,仅当 If-None-Match 字段值与 Etag 值不一致时,可处理该请求。

6.4K21
  • 震惊 | HTTP 在疫情期间把我吓得不敢出门了

    想要通过服务器进行身份认证客户端可以在请求字段中添加认证进行身份认证,一般认证过程如下 首先客户端发起一个 HTTP 请求,不带有任何认证,服务器对此 HTTP 请求作出响应,发现此 HTTP...如果 Etag 是资源响应一部分,则客户端可以在未来请求头中发出 If-None-Match,以验证缓存资源。...缓存未占用资源 Etag 另一个典型用法是缓存未更改资源,如果用户再次访问给定 URL(已设置Etag),并且该 URL过时,则客户端将在 If-None-Match 字段中发送其 Etag...要使用 Last-Modified 很难实现强验证,通常,这是通过使用带有资源 MD5 哈希值 Etag 来完成。...,仅当 If-None-Match 字段值与 Etag 值不一致时,可处理该请求。

    5.3K20

    网页性能优化浅谈与实践

    通常 cache-control 被认为是一种比 expires(到期) 更现代,更灵活方法,但是两个可以同时使用。 Q: 如何进行缓存?...答: 通过标识资源或资源类型(例如图像或CSS文件),然后使用所需缓存选项指定资源,来启用缓存。...etag 原理说明: 描述: 单纯以修改时间来判断还是有缺陷,比如文件最后修改时间变了,但内容没变。对于这样情况我们可以使用etag处理。...Pragma值为no-cache时,表示禁用缓存, Expires值是一个GMT时间,表示该缓存有效时间。 Tips : expires 只是设置内容应在将来时间。...此后对内容请求必须返回到原始服务器。使用更新且更灵活高速缓存控制expires通常用作备用。 Tips : Pragma 是旧产物,已经逐步抛弃,有些网站为了向下兼容还保留了这两个字段。

    59820

    跟我一起探索 HTTP-HTTP缓存

    例如,对于带有 Accept-Language: en 并已缓存英语内容,不希望再对具有 Accept-Language: ja 请求请求重用该缓存响应。...因此,下面的请求显示客户端发送带有 If-Modified-Since 请求请求,以询问服务器自指定时间以来是否有任何改变。...为了解决这些问题,ETag 响应被标准化作为替代方案。 ETag/If-None-Match ETag 响应值是服务器生成任意值。...doctype html> … 如果该响应是陈旧,则客户端获取缓存响应 ETag 响应值,并将其放入 If-None-Match 请求头中,以询问服务器资源是否已被修改: GET /index.html...对于预构建静态文件生成这些很容易。 这里 ETag 值可能是文件哈希值。

    26651

    HTTP缓存机制Etag、Last-Modified、If-None-Match和If-Modified-Since、Expires和Cache-Control笔记

    请求一个文件流程可能如下:     第一次请求:     1.客户端发起 HTTP GET 请求一个文件;     2.服务器处理请求,返回响应报文,响应包括Etag(例如"2e681a-6-5d044840...但是Cache-Control可能被某些缓存和浏览器忽略。可以通过将Expires HTTP版本1.0字段值设置为早于响应时间时间来进行模拟。...和max-age是一样,不过它只针对代理服务器缓存而言;   (3)public:指示响应可被任何缓存缓存;   (4)private:只能针对个人用户,而不能被代理服务器缓存,不能被共享缓存处理;...它是浏览器告诉服务器和任何中间缓存它想要新资源一种手段。这个和HTTP / 1.0规范中定义Pragma:no-cache字段具有相同目的。但是,它仅为请求定义。...If-Modified-Since如果提供日期以来尚未更改,服务器不会发送文档实际内容。 如果文档ETag仍然与If-None-Match值匹配,则服务器将不发送实际文档。

    2K20

    HTTP缓存机制是什么?

    当客户端或代理服务器收到对资源请求时,它们首先检查缓存,如果存在有效缓存副本,就可以直接返回缓存副本,从而避免了请求发送和服务器端处理过程。...缓存:HTTP 协议提供了一些特定缓存,如 ETag(实体标签)和 Last-Modified(最后修改时间),用于识别和比较资源不同版本。...客户端在后续请求中可以通过发送 If-None-Match ETag 发送回服务器,以检查资源是否发生了变化。...客户端在后续请求中可以通过发送 If-Modified-Since 将最后修改时间发送回服务器,以检查资源是否发生了变化。...服务器根据 ETag 或 Last-Modified 来确定资源是否发生了变化,并返回相应状态码(如 304 Not Modified),以指示客户端使用缓存副本。

    34220

    如何在Ubuntu 16.04上使用Nginx模块实现浏览器缓存

    为此,必须引入告知浏览器行为方式新HTTP响应。 这就是Nginx标题模块发挥作用地方。此模块可用于向响应添加任意任意,但其主要作用是正确设置缓存。...使用Web浏览器时,如果浏览器想要再次请求相同文件(例如,刷新页面时),ETag则会将值存储并发送回带有If-None-Match请求服务器。 我们可以使用以下命令在命令行上模拟它。...使用ETag命令问题是浏览器总是向服务器发送一个请求,询问它是否可以重用其缓存文件。即使服务器以304响应而不是再次发送文件,仍然需要时间来发出请求并接收响应。...第3步 - 配置缓存控制和过期 除了ETag文件验证之外,还有两个缓存控制响应:Cache-Control和Expires。...h和用no-cache设置Cache-Control,它告诉浏览器总是问服务器是否有该文件较新版本(用ETag,像以前一样)。

    1.4K30

    如何在CentOS 7上使用Nginx模块实现浏览器缓存

    为此,必须引入告知浏览器行为方式新HTTP响应。 这就是Nginx标题模块发挥作用地方。此模块可用于向响应添加任意任意,但其主要作用是正确设置缓存。...使用Web浏览器时,如果浏览器想要再次请求相同文件(例如,刷新页面时),则会将ETag值存储并发送回带有If-None-Match请求服务器。 我们可以使用以下命令在命令行上模拟它。...ETag问题是浏览器总是向服务器发送一个请求,询问它是否可以重用其缓存文件。即使服务器以304响应而不是再次发送文件,仍然需要时间来发出请求并接收响应。...第3步 - 配置缓存控制和过期 除了ETag文件验证之外,还有两个缓存控制响应:Cache-Control和Expires。...,并且Cache-Control设置为no-cache,它告诉浏览器总是问服务器是否有该文件较新版本(用ETag,像以前一样)。

    1.5K00

    HTTP headers

    端到端头 这些必须发送给消息最终接收者:请求服务器,或响应客户端。中间代理必须重新传输未经修改,并且缓存必须存储它们。...逐跳标题 这些仅对单个传输级连接有意义,并且不得由代理重新传输或缓存。请注意,只能使用Connection常规设置逐跳。...这样可以确保特定范围新片段与先前片段一致性,或者在修改现有文档时实现乐观并发控制系统。 Vary 确定如何匹配请求,以决定是否可以使用缓存响应,而不是从原始服务器请求新响应。...Cookie2 包含先前由服务器发送带有Set-Cookie2HTTP cookie ,但已被废弃。使用Cookie代替。...如果指定了升级字段,那么发送者还必须发送带有指定升级选项连接头字段。有关Connection字段详细信息,请参见上述RFC6.1节。

    7.7K70

    在Spring Boot中实现HTTP缓存

    HTTP协议定义了几个请求和响应,您可以使用它们来控制客户端何时清除缓存。 选择适当HTTP取决于您要优化特定情况。...通过将值设置为max-age = ,可以通知客户端多长时间不再需要再次获取资源。缓存有效性与请求时间有关。...客户端根据Last-Modified值设置其值,该是与此特定资源先前响应一起发送。...我们只是使用不同值进行比较(以及MD5算法来计算ETag)。请注意,WebRequest有一个重载checkNotModified()方法来处理表示为字符串ETag。...在适用时,您应该始终支持客户端缓存验证。 我们还讨论了服务器端验证并比较了Last-Modified和ETag。最后,您了解了如何在Spring应用程序中设置全局ETag过滤器。

    5.2K50

    HTTP缓存(Cache-Control、Expires 、ETag

    发现这个文件大小为279KB,使用时间为382ms 如果再次刷新首页,那么这个文件还会被再次请求一次。那么如何重复利用之前获取资源而不用反复请求呢?答案是HTTP缓存,这是性能优化一个重要方面。...较大响应需要在客户端与服务器之间进行多次往返通信,这会延迟浏览器获得和处理内容时间,还会增加访问者流量费用。因此,缓存并重复利用之前获取资源能力成为性能优化一个关键方面。...好在每个浏览器都自带了 HTTP 缓存实现功能。您只需要确保每个服务器响应都提供正确 HTTP 指令,以指示浏览器何时可以缓存响应以及可以缓存多久。...可见返回至完全改变了 这个特性可以用来判断两次信息传输是否完整一致 ETag 例子: 例如我们请求一个js文件。 设置一个ETag响应 ?...HTTP 304 没有响应体,因为不需要下载响应内容,直接用缓存就行了 ETag与 Cache-Control区别 假设我们请求两个文件,CSS文件使用Cache-Control缓存,js文件使用ETag

    5.4K50

    Nginx结构全解析(76)

    根据请求和响应启用或禁用对代理请求响应gzipping。请求被代理事实由“Via”请求字段存在确定。...该指令接受多个参数: off:禁用所有代理请求压缩,忽略其他参数; expired:如果响应包含“Expires”字段,其值为禁用缓存,则启用压缩; no-cache:如果响应包含带有“ no-cache...”参数“Cache-Control”字段,则启用压缩; no-store:如果响应包含带有“ no-store”参数“Cache-Control”字段,则启用压缩; private:如果响应包含带有...“ private”参数“Cache-Control”字段,则启用压缩; no_last_modified:如果响应不包含“Last-Modified”字段,则启用压缩; no_etag:如果响应不包含...“ETag”字段,则启用压缩; auth:如果请求包含“授权”字段,则启用压缩; any:为所有代理请求启用压缩。

    46200

    HTTP1.1协议状态码

    100 目的是允许正在发送带有请求正文请求消息客户端确定源服务器是否愿意接受请求(基于请求)在客户端发送请求正文之前。...201响应可能包含ETag响应字段,该字段指示刚刚创建所请求变量实体标签的当前值,请参见14.19节。...如果ETag或Last-Modified不完全匹配,则缓存不得将206响应与其他先前缓存内容组合在一起,请参见13.5.4。...-ETag和/或Content-Location(如果已发送) 在对同一请求200条回复中 -如果字段值可能会过期,缓存控制和/或变化 与先前任何回复中发送相同 变体...否则(即,条件GET使用弱验证器),响应中不得包含其他实体;这样可以避免缓存实体与更新之间不一致。

    2.7K40

    使用 ETag 和 Last-Modified 报头减轻服务器压力(转)

    因为服务器首先产生 Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客 户端)缓存。...(true); } 如果你缓存是基于文件方式,如XML或http中.ashx处理,也可以使用下面的基于文件方式客户端缓存: SetFileCaching /** /// 基于文件方式设置客户端缓存...ETag HTTP 。...response.Cache.SetETagFromFileDependencies(); //基于处理程序文件依赖项时间戳设置 Last-Modified HTTP 。...,如前所述,如果能正确合理利用各种不同缓存,他们会给你带来很多好处.我 希望本文已为你当下或将来基于Web项目提供了精神食粮,并正确地在底层利用Last- Modified和ETag响应去优化你项目

    45810

    前端面试查漏补缺

    如果资源发生了修改,则返回修改后资源。协商缓存也可以通过两种方式来设置,分别是 http 信息中Etag 和Last-Modified属性。...服务器在返回资源时候,在信息中添加了 Etag 属性,这个属性是资源生成唯一标识符,当资源发生改变时候,这个值也会发生改变。...服务接收到请求后会根据这个值来和资源当前 Etag 值来进行比较,以此来判断资源是否发生改变,是否需要返回资源。通过这种方式,比 Last-Modified 方式更加精确。...反射型指的是攻击者诱导用户访问一个带有恶意代码 URL 后,服务器端接收数据后处理,然后把带有恶意代码数据发送到浏览器端,浏览器端解析这段带有 XSS 代码数据后当做脚本执行,最终完成 XSS 攻击...恶意代码窃取⽤户数据并发送到攻击者⽹站,或者冒充⽤户⾏为,调⽤⽬⽹站接⼝执⾏攻击者指定操作。这种攻击常⻅于带有⽤户保存数据⽹站功能,如论坛发帖、商品评论、⽤户私信等。

    58110
    领券