digital-garden/dev/architecture/highload/Кэширование на стороне браузера.md

46 lines
2.8 KiB
Markdown
Raw Normal View History

2024-09-11 21:28:43 +03:00
---
aliases:
tags:
- maturity/🌱
date:
- - 2024-06-17
zero-link:
- "[[../../../meta/zero/00 HighLoad|00 HighLoad]]"
parents:
- "[[../Кэширование|Кэширование]]"
linked:
---
Статический контент — это элементы веб-сайта, которые остаются неизменными на протяжении долгого времени на всех страницах. К такому контенту относятся файлы изображений, CSS и JavaScript. Поскольку эти файлы редко изменяются, их можно сохранять в кэше браузера пользователя. Это позволяет браузеру загружать локальные копии файлов, а не запрашивать их каждый раз с сервера, что ускоряет работу сайта.
2024-09-11 21:28:43 +03:00
Обычно кэшируются только GET запросы, так как они должны быть [[../Идемпотентность|идемпотентны]].
Заголовки для кэширования:
- ETAG. Тег, который позволяет указать версию файла. Можно использовать [[../../cryptography/MD5|MD5]].
2024-09-11 21:28:43 +03:00
- If-Modified-Since. Дата изменения файла.
- Cache-Control
- public - Сохранять может не только браузер, но и промежуточные узлы
- private - Сохранять может только браузер клиента
- no-store - не кэшируем. ==не уверен что правильно записал==
- no-cache - Сохранять только в браузере, не сохранять на промежуточных серверах. ==не уверен что правильно записал==
- max-age - Сколько нужно хранить файл в памяти
- LocalStorage. Можно через JS складывать данные.
![](../../../meta/files/images/Pasted%20image%2020240619083856.png)
Инвалидация:
- Самый простой вариант указывать версию в GET параметрах.
- Для статики можно использовать [[../Fingerprint|Fingerprint]]
2024-09-11 21:28:43 +03:00
***
## Мета информация
**Область**:: [[../../../meta/zero/00 HighLoad|00 HighLoad]]
**Родитель**:: [[../Кэширование|Кэширование]]
2024-09-11 21:28:43 +03:00
**Источник**::
**Автор**::
**Создана**:: [[2024-06-17]]
### Дополнительные материалы
- [[../../devops/nginx/Кэширование статики в Nginx]]
2024-09-11 21:28:43 +03:00
### Дочерние заметки
2024-09-14 23:38:42 +03:00
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->