【发布时间】:2021-04-05 12:42:07
【问题描述】:
我是 Cache Control Header 实现的新手,我需要有人指出我对 Firebase Cloud Functions 上的缓存控制效果的任何错误和/或误解。
我对 Firebase 函数缓存控制的理解和期望
当使用
Express response object成功设置缓存控制标头时(通过从 Chrome 的网络检查确认 选项卡),无论是在本地主机还是生产服务器上,Firebase 不应再次调用 Https 函数(不可调用函数) 在第一次重新加载后直到缓存过期。
我说的对吗?但是经过几轮测试后,无论我的 Web 浏览器刷新了多少次,我在 localhost 上的云功能似乎仍然始终被调用(通过服务器控制台日志记录确认)。以下是我当前的 Http 标头:
**General:**
Request URL: http://localhost:5005/otk-web-solutions?id=B0Y0jp2x83WVYzWrpg5y
Request Method: GET
Status Code: 304 Not Modified
Remote Address: 127.0.0.1:5005
Referrer Policy: strict-origin-when-cross-origin
**Response Headers:**
Access-Control-Allow-Origin: *
cache-control: public, max-age=432000, s-maxage=432000
content-length: 9688
content-type: text/html; charset=utf-8
date: Mon, 05 Apr 2021 11:52:20 GMT
etag: W/"25d8-TxL0Q+ujhzDjys8IJ1mLigY7jT8"
vary: Origin, Accept-Encoding, Authorization, Cookie
x-powered-by: Express
**Request Headers:**
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9,en-US;q=0.8,zh;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Cookie: _ga=GA1.1.816734993.1603107580; _gid=GA1.1.223745218.1617606982; __atuvc=20%7C12%2C15%7C13%2C23%7C14; __atuvs=606aec5f76521aab00a
DNT: 1
Host: localhost:5005
If-None-Match: W/"25d8-TxL0Q+ujhzDjys8IJ1mLigY7jT8"
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36
**Query String Parameters:**
id: B0Y0jp2x83WVYzWrpg5y
不过,您可以为动态内容配置缓存行为。为了 例如,如果一个函数只定期生成新内容,你 可以通过将生成的内容缓存至少一 很短的时间。
您还可以潜在地降低函数执行成本,因为 内容从 CDN 提供,而不是通过触发函数提供。
难道缓存控制标头对 localhost 没有影响,但 Firebase CDN 除外,这意味着只有当我们将其部署到生产服务器以便缓存在云上工作时CDN?是否有正确的方法来实施此类测试以查看缓存控制标头的有效性在帮助节省 Firebase Cloud Functions 的执行成本方面?
请多多指教,万分感谢!
【问题讨论】:
标签: firebase caching google-cloud-functions