我只想通过CloudFlare 工作人员为首次访问者动态添加 http-headers。例如这些标题:
Link: </path/to/file.css>; rel=preload; as=style; nopush
Link: </path/to/script.js>; rel=preload; as=script; nopush
所以,我需要的是以下内容,通过 JavaScript,在 CloudFlare Workers 中:
- 检查客户端是否存在特定的 cookie。
- 如果 cookie 不存在,则添加 http-headers,然后设置该特定 cookie。
- 如果 cookie 确实存在,则什么也不做。
你可以在这里玩代码。
这是来自 CF 博客的一般示例(涉及 cookie 和标头):
// A Service Worker which skips cache if the request contains
// a cookie.
addEventListener('fetch', event => {
let request = event.request
if (request.headers.has('Cookie')) {
// Cookie present. Add Cache-Control: no-cache.
let newHeaders = new Headers(request.headers)
newHeaders.set('Cache-Control', 'no-cache')
event.respondWith(fetch(request, {headers: newHeaders}))
}
// Use default behavior.
return
})