From c71698e5adc8e21753f1c032d89140ac8118f94d Mon Sep 17 00:00:00 2001 From: wood chen Date: Sun, 17 Nov 2024 09:38:01 +0800 Subject: [PATCH] refactor(internal/handler): optimize image request handling based on Accept header --- internal/handler/proxy.go | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/internal/handler/proxy.go b/internal/handler/proxy.go index f635537..fe58f91 100644 --- a/internal/handler/proxy.go +++ b/internal/handler/proxy.go @@ -112,22 +112,18 @@ func (h *ProxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { // 特别处理图片请求 if utils.IsImageRequest(r.URL.Path) { - // 设置优化的 Accept 头 + // 获取 Accept 头 accept := r.Header.Get("Accept") - if accept != "" { - proxyReq.Header.Set("Accept", accept) - } else { - proxyReq.Header.Set("Accept", "image/avif,image/webp,image/jpeg,image/png,*/*;q=0.8") + + // 根据 Accept 头设置合适的图片格式 + if strings.Contains(accept, "image/avif") { + proxyReq.Header.Set("Accept", "image/avif") + } else if strings.Contains(accept, "image/webp") { + proxyReq.Header.Set("Accept", "image/webp") } // 设置 Cloudflare 特定的头部 - proxyReq.Header.Set("CF-Accept-Content", "image/avif,image/webp") - proxyReq.Header.Set("CF-Optimize-Images", "on") - - // 删除可能影响缓存的头部 - proxyReq.Header.Del("If-None-Match") - proxyReq.Header.Del("If-Modified-Since") - proxyReq.Header.Set("Cache-Control", "no-cache") + proxyReq.Header.Set("CF-Image-Format", "auto") // 让 Cloudflare 根据 Accept 头自动选择格式 } // 设置其他必要的头部