首页
学习
活动
专区
圈层
工具
发布

ASP.NET Core ResponseCache进行缓存操作

ASP.NET Core对于HTTP缓存分为两种: 客户端(浏览器缓存) 服务端缓存 客户端缓存 通过设置HTTP的响应头 Cache-Control 来完成页面存储到浏览器缓存中如下所示: ?...None 每次有请求发出时,缓存会将请求发到服务器 ,服务器端会验证请求中所描述的缓存是否过期,若未过期(注:实际就是返回304),则缓存才使用本地缓存副本。 报头设置为“no-cache”。...API 控制器或 Razor Pages 页面模型时, [ResponseCache]属性指定为响应缓存设置适当的标头所需的参数。...严格需要中间件的 [ResponseCache] 属性的唯一参数 VaryByQueryKeys,这与实际 HTTP 标头不对应。 有关详细信息,请参阅 响应缓存在 ASP.NET Core。...Vary Vary 标头用于根据另一个标头改变缓存的响应。

3.6K20

ASP.NET Web API路由系统:路由系统的几个核心类型

虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除了对...System.Web.dll程序集的依赖,实现在ASP.NET Web API框架中的URL路由系统亦是如此。...也就是说,ASP.NET Web API核心框架的URL路由系统与ASP.NET本身的路由系统是相对独立的。...另一个同样通过字典类型表示的只读属性DataTokens,我们应该不会感到陌生,至于通过制度属性Handler返回的HttpMessageHandler对象是组成ASP.NET Web API消息处理管道的核心...Web API管道的HttpConfiguration对象,这依赖于我们对Web API的寄宿方式,这并没有定义在ASP.NET Web API的核心框架之中。

10.5K110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何测量并报告ASP.NET Core Web API请求的响应时间

    如何测量并报告ASP.NET Core Web API请求的响应时间 介绍 大家都知道性能是API的流行语。而相应时间则是API性能的一个重要并且可测量的参数。...我们需要在执行方法之前和之后执行响应时间的计算代码。如果您使用过早期版本的Asp.net Web API,那么您将熟悉Filter的概念。过滤器允许您在请求处理管道中的特定阶段之前或之后运行代码。...因此,它实际上无法检测在其他Asp.net管道中花费的时间。 ? 第三次尝试 我们将使用Asp.net Core中间件来计算API的响应时间 所以,什么是中间件呢?...将响应时间数据传递到消息队列,该消息队列可以由另一个应用程序进一步处理以进行报告和分析。 使用响应头将响应时间信息发送到使用我们的Rest API的客户端应用程序。...我们使用X-Response-Time-ms标头作为响应标头。作为惯例,自定义标题以X开头。 总结 在本文中,我们了解了如何利用ASP.NET中间件来管理跨领域问题,例如测量API的响应时间。

    2.5K10

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

    首先客户端发起一个 HTTP 请求,不带有任何认证标头,服务器对此 HTTP 请求作出响应,发现此 HTTP 信息未带有认证凭据,服务器通过 www-Authenticate标头返回 401 告诉客户端此请求未通过认证...不缓存过期资源 不缓存过期资源即浏览器和代理不会缓存过期资源,客户端发起的请求会直接到达服务器,可以使用 no-cache 标头代表不缓存过期资源。 ?...也就是说使用这些 API 的应用程序想要请求相同的资源,那么他们应该具有相同的来源,除非来自其他来源的响应包括正确的 CORS 标头也可以。...注意上面示例中的 Set-Cookie 响应标头还设置了另外一个值,如果发生故障,将引发异常(取决于所使用的API)。...创建 Cookie 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储,然后将 Cookie 与 HTTP 标头一同向服务器发出请求

    7.8K21

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

    想要通过服务器进行身份认证的客户端可以在请求标头字段中添加认证标头进行身份认证,一般的认证过程如下 首先客户端发起一个 HTTP 请求,不带有任何认证标头,服务器对此 HTTP 请求作出响应,发现此 HTTP...不缓存过期资源 不缓存过期资源即浏览器和代理不会缓存过期资源,客户端发起的请求会直接到达服务器,可以使用 no-cache 标头代表不缓存过期资源。...也就是说使用这些 API 的应用程序想要请求相同的资源,那么他们应该具有相同的来源,除非来自其他来源的响应包括正确的 CORS 标头也可以。...注意上面示例中的 Set-Cookie 响应标头还设置了另外一个值,如果发生故障,将引发异常(取决于所使用的API)。...创建 Cookie 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储,然后将 Cookie 与 HTTP 标头一同向服务器发出请求

    6.5K20

    通过 HTTP 标头的 XSS

    但是,由于 CDN 和 WAF,现在还有另一种非常常见的情况,这使得我们可以在不需要数据库步骤的情况下持续攻击:Web 缓存中毒。这就是我们将在这篇文章中看到的内容。...\n”; 正如我们在下面看到的,在带有 -i 标志的命令行中使用 curl,它会向我们显示响应的 HTTP 标头以及包含我们的请求标头的 JSON。...因此,通过添加“lololol”,我们能够检索页面的非缓存版本,由 x-sucuri-cache 标头值“MISS”指示。现在我们将注入我们自己的标头(带有 -H 标志)以检查它是否在响应中出现。...成功,我们的虚拟标头对“Test:myValue”在响应中得到反映。让我们更改我们的“缓存避免字符串”以再发出一个请求,否则下一个请求将返回最后一个带有“lololol”字符串的缓存响应。...我们现在打开我们的Brave浏览器,使用我们煮熟的 URL 并且: 该 URL 将一直处于中毒状态,直到缓存过期。

    3.2K20

    【译】.NET 7 预览版 1 中的 ASP.NET Core 更新

    在未来的预览版中,您可以期待在我们的 HTTP/3 支持中看到高级 TLS 功能和更多性能改进。 最小 API:添加对端点过滤器和路由分组的支持,作为最小 API 的核心原语。...通常还简化 API 的身份验证和授权配置。 gRPC:我们正在投资 gRPC JSON 转码。此功能允许 gRPC 服务像带有 JSON 请求和响应的 RESTful HTTP API 一样被调用。...在 ValidationAttribute 中使用依赖注入 更快的标头解析和写入 gRPC JSON 转码 开始使用 要开始使用 .NET 7 Preview 1 中的 ASP.NET Core,请安装...更快的标头解析和写入 我们对 HTTP/2 和 HTTP/3 的标头解析和写入性能进行了多项改进。...有关详细信息,请参阅以下拉取请求: HTTP/2:提高传入标头性能 HTTP/3:优化验证和设置传入的标头 HTTP 标头枚举器直接移至下一个 gRPC JSON 转码 gRPC JSON 转码允许 gRPC

    5.1K10

    使用.NET8中的.http文件和终结点资源管理器

    背景 在.NET8 新的 Web API 项目模板中增加一个新的文件,该文件以“项目名.http”命名。...这个文件是 Visual Studio 2022 版本的 17.6 以后提供的一个新功能,一种便捷的方式来测试 ASP.NET Core项目,尤其是 API 应用。...并且带有一个UI界面,类似于单元测试。 .http模板 2. HTTP 文件介绍 2.1 简介 HTTP 文件是一种扩展名为 ".http" 的文件,通常包含一个 HTTP 请求或响应的文本表示。...4.请求标头: 在请求行后添加标头,格式为 HeaderName: Value。5.正文: 在空白行后添加请求正文。 下面是一些基本的示例,包含了多个请求头、变量和正文。我们将逐个部分进行简要介绍。...通过遵循正确的文件语法并利用编辑器和终结点资源管理器的功能,你可以轻松地创建、发送和查看 HTTP 请求及其响应。这将有助于提高你在开发 Web 应用程序时的效率和准确性。

    2.5K10

    通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行

    我的一个团队成员编写了一个诊断工具,用来将每个 HTTP 请求和响应的关键要素(包括 Cookie 标头)记录到日志中。...问题仍然存在,这并不意外,因为我们的日志显示匹配的 Set-Cookie 标头绝不会来自两个不同的服务器。...当 OutputCacheModule 缓存 HTTP 响应时,它必须小心不要缓存了 Set-Cookie 标头;否则,包含新会话 ID 的缓存响应会将缓存响应的所有接收者(以及其请求生成了缓存响应的用户...当 ASP.NET 与 IIS 6.0 一起使用并且启用内核模式缓存时,OutputCacheModule 有时无法从它传递给 Http.sys 的缓存响应中删除 Set-Cookie 标头。...• OutputCacheModule 向 Http.sys 提供输出,但是无法从响应中删除 Set-Cookie 标头。

    4.9K80

    ASP.NET JWT认证失败响应:从默认到自定义的优雅改造

    本文主要介绍如何通过ASP.NET Core的JwtBearerEvents机制,实现JWT认证失败响应的深度定制。 1....背景 在之前的文章《一个简单的ASP.NET一致性返回工具库》 中,我们介绍了 Sang.AspNetCore.CommonLibraries 这一通用库,它通过统一API响应模型和标准化的提示页面,显著提升了...然而,当项目集成JWT(JSON Web Token)认证时,默认的授权失败响应(401/403状态码+www-authenticate头)可能与团队约定的“业务状态码优先”规则产生冲突。...Token验证失败: 默认响应 Token过期: 默认响应 这种设计对遵循HTTP标准的前端拦截器非常友好。...自定义响应:实战改造 这里我们需要使用的核心武器是 JwtBearerEvents ,ASP.NET Core的JWT认证模块提供了JwtBearerEvents事件钩子,允许在以下场景中拦截请求并自定义响应

    73700

    跟我一起探索 HTTP-HTTP缓存

    基于 age 的缓存策略 存储的 HTTP 响应有两种状态:fresh 和 stale。fresh 状态通常表示响应仍然有效,可以重复使用,而 stale 状态表示缓存的响应已经过期。...例如,对于带有 Accept-Language: en 标头并已缓存的英语内容,不希望再对具有 Accept-Language: ja 请求标头的请求重用该缓存响应。...因此,下面的请求显示客户端发送带有 If-Modified-Since 请求标头的请求,以询问服务器自指定时间以来是否有任何的改变。...为了解决这些问题,ETag 响应标头被标准化作为替代方案。 ETag/If-None-Match ETag 响应标头的值是服务器生成的任意值。...为了避免这种启发式缓存,最好显式地为所有响应提供一个默认的 Cache-Control 标头。

    1.1K51

    HTTP headers

    响应标头包含有关响应的其他信息,例如响应的位置或提供响应的服务器。 实体标头包含有关资源主体的信息,例如其内容长度或MIME类型。...端到端头 这些标头必须发送给消息的最终接收者:请求的服务器,或响应的客户端。中间代理必须重新传输未经修改的标头,并且缓存必须存储它们。...Pragma 特定于实现的标头,可能在请求-响应链的任何地方产生各种影响。用于与HTTP / 1.0缓存(向后Cache-Control还不存在标头)的向后兼容性。...仅当高速缓存已过期时才用于传输数据。 If-Unmodified-Since 使请求成为条件请求,并期望仅在给定日期之后未修改实体的情况下才发送实体。...这样可以确保特定范围的新片段与先前片段的一致性,或者在修改现有文档时实现乐观的并发控制系统。 Vary 确定如何匹配请求标头,以决定是否可以使用缓存的响应,而不是从原始服务器请求新的响应。

    8.8K70

    ASP Net Core – CORS 预检请求

    CORS(跨源资源共享)是一种机制,它允许同一个来源运行的Web应用程序从在另一个来源运行的服务器访问资源。同源策略是一种非常严格的措施,因为它只允许与服务器起源于同一源的应用程序访问其资源。...应用不会设置、、、或以外的请求标头 Accept Accept-Language Content-Language Content-Type Last-Event-ID 。...下面的示例显示,在不同来源运行的blazor 应用程序的调用将失败,因为服务器未发出“ Access-Control-Allow-Origin”标头: ? Blazor App 请求API ? ?...该调用是一个简单的请求,但由于服务器不信任源而仍然失败。我们可以告诉他信任它,以解决此问题。 我们要做的就是向它发送带有适当Header 的状态代码为200的响应。...并且对于我们的请求,我们还将指定Content-Type标头 -- application/vnd.serilog.clef ? 第一个请求是“选项”请求: ? 第二个请求是我们的请求: ?

    1.5K20

    Asp.Net Web API(二)

    创建一个Web API项目 第一步,创建以下项目 ? 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。...ASP.NET Web API 可以自动序列化你的模型到JSON,XML或一些其它格式,然后把已序列化的数据写入到HTTP响应消息的正文。只要客户端可以读取序列化的数据,那么它同样可以反序列这个对象。...大多数的客户端都可以解析JSON或XML。此外,客户端可以声明它想要通过HTTP请求消息中设置的接收标头的那种格式。        ...位置:当服务端创建一个资源时,它应该在响应的Location标头中包含这个资源的URI。       ASP.NET Web API使它容易操作HTTP响应消息。...通过返回HttpResponseMessage而不是产品,我们可以控制HTTP响应消息,包括状态代码和位置标头的详细信息。

    2.7K10
    领券