Vary HTTP 標頭

1.前言

服務器端 Web 資源緩存的想法是在客戶端和上游之間設置一個組件來緩存先前計算的結果,以避免后者過載。根據您的基礎架構和要求,此組件可以是反向代理或 API 網關。HTTP 提供Cache-Control標頭來自定義緩存的不同方面,例如,服務器在認為資源過時之前將其保存在緩存中的時間。我在上面的文章中使用了插件配置,但您也可以委托給Cache-Control。

關于超文本傳輸??協議 (HTTP) 字段名稱注冊表項目的規范,詳見鏈接:超文本傳輸??協議 (HTTP) 字段名稱注冊表-2024-02-16更新

2.問題

想象一下以下場景。你請求一個資源,例如,GET /blog并得到如下結果:

HTTP/1.1 200 OK
Content-Type: application/json{"id": 1,"title": "CSDN"
}

請求成功;結果被緩存。現在,我請求相同的資源,但由于我的代碼是圍繞 XML 工作的,因此我將標Accept頭設置為application/xml。不幸的是,服務器返回緩存的 JSON 資源,這與我要求的不同,可能會完全破壞我的代碼。

問題是,緩存鍵默認只有一個維度,即 URL。

2.解決方案

我們需要一個可配置的多維緩存鍵。您現在可能已經猜到了,這就是標Vary頭的作用:它明確列出緩存鍵的所有維度。在上面的示例中,上游將使用以下內容傳達附加緩存鍵:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Language: en
Vary: Accept{"id": 1,"title": "CSDN"
}

我們現在不再為每個 URL 設置一個緩存條目,而是為每個 MIME 類型/URL 組合設置一個緩存條目。請注意,是否使用此信息取決于緩存組件。

另一個常見的請求標頭是Accept-Encoding,它通常指定客戶端可以接受哪些壓縮算法。編碼是另一個可能的緩存鍵。規范允許指定多個緩存鍵:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Language: en
Vary: Accept, Accept-Encoding{"id": 1,"title": "CSDN"
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13663.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java——通過方法交換實參值

想寫一個方法來交換main函數中的兩個變量值,代碼如下: public class Test {public static void swap(int x,int y) {int tmp x;x y;y tmp;}public static void main(String[] args) {int a 10;int b 20;System.out.println("交換前&#xff1…

Autodesk Maya 2025軟件安裝教程(附軟件下載地址)

軟件簡介: 軟件【下載地址】獲取方式見文末。注:推薦使用,更貼合此安裝方法! Autodesk Maya 2025是一款領先的三維動畫設計軟件,界面直觀且功能豐富。它集成了全球領先的3D設計技術,提供了多種創意功能&a…

深度學習 --- stanford cs231 編程作業(如何在chrome中安裝colab)

stanford cs231 編程作業(如何開始你的colab編程) 斯坦福231n的所有作業都要求在colab里面做,colab可以為你提供免費的云計算。實際上在他的官網中也有關于如何安裝colab的詳細說明視頻。 https://youtu.be/DsGd2e9JNH4https://youtu.be/DsGd2e9JNH4 我…

2831.找出最長等值子數組(哈希表+滑動窗口法)

給你一個下標從 0 開始的整數數組 nums 和一個整數 k 。 如果子數組中所有元素都相等,則認為子數組是一個 等值子數組 。注意,空數組是 等值子數組 。 從 nums 中刪除最多 k 個元素后,返回可能的最長等值子數組的長度。 子數組 是數組中一個連…

電路筆記 :元器件焊接相關 酒精燈松香浴加熱取芯片

記錄一下只使用松香和小火源加熱(如酒精燈、小蠟燭)從電路板中取芯片。 過程 多放松香 讓松香淹沒芯片盡量均勻加熱,等芯片旁邊的松香開始從芯片里冒細小的“泡泡”,就差不多了 注:這種方法也可以用于焊接&#xff0…

Qt QString詳細用法

一.基礎用法 1.創建QString對象 QString str1 "Hello, World!"; QString str2("This is a QString object."); //一個是等號的重載,一個是拷貝構造,本質上是等價的 2.獲取字符串長度 int length str1.length(); // 返回字符串…

大模型落地競逐,云計算大廠“百舸爭流”

作者 | 辰紋 來源 | 洞見新研社 從ChatGPT到Sora,從圖文到視頻,從通用大模型到垂直大模型……經過了1年多時間的探索,大模型進入到以落地為先的第二階段。 行業的躁動與資本的狂熱相交匯,既造就了信仰派的腳踏實地,也…

7.從0做一個vue鍵盤組件

文章目錄 1. 從0做一個鍵盤組件1.1. 最終效果1.2. 分析1.3. 實現1.4. 如何引用 1. 從0做一個鍵盤組件 首先是why的問題:為什么需要做鍵盤組件? 我們目前可知的場景: 在新增賬單的時候,需要用到鍵盤在比如從賬單列表頁&#xff…

保護共享資源的方法(互斥鎖)

我最近開了幾個專欄,誠信互三! > |||《算法專欄》::刷題教程來自網站《代碼隨想錄》。||| > |||《C專欄》::記錄我學習C的經歷,看完你一定會有收獲。||| > |||《Linux專欄》&#xff1…

MagicAnimate: Temporally Consistent Human Image Animation using Diffusion Model

show lab NUS&bytedancehttps://github.com/magic-research/magic-animate 問題引入 輸入參考圖片 I r e f I_{ref} Iref?和動作序列 p 1 : N [ p 1 , ? , p N ] p^{1:N}[p_1,\cdots,p_N] p1:N[p1?,?,pN?],其中 N N N表示的是幀數,輸出的是 …

探索iOS中的KVC

目錄 前言 1.iOS中的KVC(鍵值編碼) 1. 什么是KVC? 2. 使用KVC 1.設置屬性值 2.獲取屬性值 3. KVC的高級用法 1.訪問私有屬性 2.訪問集合屬性 4. KVC的安全性 5. KVC原理 1. 查找順序 2. 設置值 6.參考文章 前言 這篇文章主要是…

UbuntuLinux系統下安裝wrk和使用

前言 wrk是一個用c語言寫的壓力測試工具,非常有用,但是ubuntu的軟件倉庫沒有收錄wrk,需要我們自己進行編譯和安裝,最近在學習一些性能測試、性能優化方面的知識,需要使用到這個強有力的工具,故此記錄安裝和…

Windows安全應急--在應急響應中需要知道的信息

在網絡安全事件發生后,一般是要去客戶現場排查問題的, 那么要想解決問題,信息的完整性決定了這次任務的成敗。。 1. 你需要知道的: 先讓客戶梳理一遍事情的起因經過結果 詢問客戶需要解決的問題 了解客戶的網絡環境&#xff08…

【ARM 嵌入式 C 入門及漸進 6.2 -- ARMv8 C 內嵌匯編讀系統寄存器的函數實現】

請閱讀【嵌入式開發學習必備專欄】 文章目錄 ARMv8 C 內嵌匯編讀系統寄存器 ARMv8 C 內嵌匯編讀系統寄存器 要在ARMv8架構中通過C代碼和內嵌匯編來讀取系統寄存器s3_0_c15_c5_5的值,并將其返回,可以按照以下方式實現system_read_reg函數: #…

buuctf的RSA(二)

1.RSA 知道 flag.enc 和 pub.key,典型的加密、解密 將pub,key 改為pub.txt 打開后發現公鑰 在RSA公私鑰分解 Exponent、Modulus,Rsa公私鑰指數、系數(模數)分解--查錯網 進行解密 得到e65537 n8693448229604811919066606200349480058890565…

innerText和innerHTML的區別

innerHTML和innerText都是元素的屬性,通過修改這個元素的屬性可以達到修改元素內容的目的。但是二者之間略有不同。具體來說,它們的區別如下: innerHTML可以獲取或設置元素內部的HTML內容,包括HTML標簽,而innerText則…

LeetCode 79.單詞搜索

原題鏈接:. - 力扣(LeetCode) 給定一個 m x n 二維字符網格 board 和一個字符串單詞 word 。如果 word 存在于網格中,返回 true ;否則,返回 false 。 單詞必須按照字母順序,通過相鄰的單元格內…

若依前后端分離版本-前后端交互整理

ruoyi-ui與后端交互 方法一:表單 使用 headers: {Content-Type:application/x-www-form-urlencoded}, ruoyi-ui的vue中 //ruoyi-ui的vue中定義 formData: {a: 111,b: 111,c: 1,}, //vue中方法調用 outBound() { empty(this.formData).…

6款網頁表白代碼6(附帶源碼)

6款網頁表白代碼6 前言效果圖及部分源碼1.愛心倒計時2.一起看星星3.愛心4.愛心(有鼠標移動特效)5.愛心(高級效果)6.愛心(3D效果) 領取源碼下期更新預報 前言 大部分人都有喜歡的人,學會這些表白…

藍橋杯物聯網競賽_STM32L071KBU6_關于sizo of函數產生的BUG

首先現象是我在用LORA發送信息的時候,左邊顯示長度是8而右邊接收到的數據長度卻是4 我以為是OLED顯示屏壞了,又或者是我想搞創新用了const char* 類型強制轉換數據的原因,結果發現都不是 void Function_SendMsg( unsigned char* data){unsi…