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

50 lines
2.9 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:
---
Обычно кэшируются только 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 складывать данные.
Статический контент - это содержимое сайта, которое остается неизменным продолжительное время на всех страницах. Например, это такие файлы, как картинки, CSS и JS файлы.
Так как эти файлы редко изменяются, то можно сохранять их в кэше браузера пользователя. Вместо того, чтобы обращаться к серверу каждый раз, браузер будет использовать свою локальную копию этих файлов.
![](../../../meta/files/images/Pasted%20image%2020240619083856.png)
Инвалидация:
- Самый простой вариант указывать версию в GET параметрах.
2024-09-13 07:09:47 +03:00
- Для статики можно использовать [[../Fingerprint]]
2024-09-11 21:28:43 +03:00
***
## Мета информация
**Область**:: [[../../../meta/zero/00 HighLoad|00 HighLoad]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2024-06-17]]
### Дополнительные материалы
- [[Кэширование статики в Nginx]]
### Дочерние заметки
2024-09-14 23:38:42 +03:00
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
- [[Fingerprint]]
<!-- SerializedQuery END -->