HTMx 的不同标头中间件

问题描述 投票:0回答:1

HTMx 有一个常见的模式,根据

hx-..
请求标头返回不同的响应,建议添加相应的
Vary
响应标头:

请注意,如果您的服务器可以根据某些其他标头为同一 URL 呈现不同的内容,则需要使用 Vary 响应 HTTP 标头。例如,如果您的服务器在 HX-Request 标头丢失或为 false 时呈现完整的 HTML,并且在 HX-Request: true 时呈现该 HTML 的片段,则您需要添加 Vary: HX-Request。 https://htmx.org/docs/#caching

这似乎是中间件的一个很好的用例,例如:

给定 URL 的所有响应都应使用相同的 Vary 标头值,包括 304 Not Modified 响应和“默认”响应。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary

所以我的问题是:

  1. 向每个响应添加
    Vary: hx-request, hx-target, hx-trigger, hx-trigger-name
    标头有什么缺点吗?
  2. 是否有理由将其添加到
    GET
    HEAD
    以外的请求方法?
http htmx
1个回答
0
投票

这取决于您的缓存策略,但我认为最好完全避免中间件并根据具体情况处理缓存。

原因是,稍后您可能会得到各种不同的标头组合(不仅仅是 htmx 标头组合),因此在每个请求上都可用它可能是一种矫枉过正,并导致一堆被覆盖的逻辑。

至于第二个问题 - 否。推荐的方法是仅在数据获取时应用缓存。

© www.soinside.com 2019 - 2024. All rights reserved.