Struchkov Mark
bd6b7c1492
All checks were successful
continuous-integration/drone/push Build is passing
50 lines
2.9 KiB
Markdown
50 lines
2.9 KiB
Markdown
---
|
||
aliases:
|
||
tags:
|
||
- maturity/🌱
|
||
date:
|
||
- - 2024-06-17
|
||
zero-link:
|
||
- "[[../../../meta/zero/00 HighLoad|00 HighLoad]]"
|
||
parents:
|
||
- "[[../Кэширование|Кэширование]]"
|
||
linked:
|
||
---
|
||
Обычно кэшируются только GET запросы, так как они должны быть [[../Идемпотентность|идемпотентны]].
|
||
|
||
Заголовки для кэширования:
|
||
- ETAG. Тег, который позволяет указать версию файла. Можно использовать [[../../cryptography/MD5|MD5]].
|
||
- 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 параметрах.
|
||
- Для статики можно использовать [[../Fingerprint]]
|
||
|
||
***
|
||
## Мета информация
|
||
**Область**:: [[../../../meta/zero/00 HighLoad|00 HighLoad]]
|
||
**Родитель**::
|
||
**Источник**::
|
||
**Автор**::
|
||
**Создана**:: [[2024-06-17]]
|
||
### Дополнительные материалы
|
||
- [[Кэширование статики в Nginx]]
|
||
### Дочерние заметки
|
||
<!-- 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 -->
|