Записки фронтендера
Решена проблема со сбросом кеша 🔥
Ранее, если вы передавали в параметре URL обновлённое значение или меняли порядок нескольких параметров, то браузер считал, что старый HTTP-кеш этой страницы переиспользовать уже нельзя и создавал новый, в результате чего все ресурсы повторно скачивались с сервера.
К примеру, у нас есть параметр utm_source, который позволяет отследить, с какого ресурса к нам пришёл пользователь. Он является всего лишь информационным маркером для нашей аналитики и никак не влияет на отображаемый контент, но из-за него кеширование на странице работать не будет:
https://mysite.com/storages/732?utm_source=chatgpt.com
https://mysite.com/storages/732?utm_source=telegram
https://mysite.com/storages/732?utm_source=google
В 148 версии Chrome добавили новый заголовок No-Vary-Search, который позволяет задать исключения из этих правил:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
No-Vary-Search: params=("utm_source" "utm_medium" "utm_campaign")
Cache-Control: max-age=300
Возможные значения:
1) key-order — изменение порядка параметров URL не влияет на кеш
2) params=("utm_source" "utm_campaign") — изменение значений указанных параметров не влияет на кеш
3) params — изменение значений любых параметров не влияет на кеш
4) except=("id" "utm_source") — изменение всех значений, кроме конкретных параметров не влияет на кеш
Через запятую можно указывать сразу несколько подобных конструкций:
No-Vary-Search: key-order, params, except=("id")
⚙️ Поддержка браузерами пока что небольшая
1 · 453 ·