digital-garden/dev/architecture/Fingerprint.md

28 lines
2.2 KiB
Markdown
Raw Normal View History

2024-09-13 07:09:47 +03:00
---
aliases:
tags:
- maturity/🌱
date: 2024-09-10
zero-link:
- "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]"
parents:
- "[[highload/Инвалидация кэша|Инвалидация кэша]]"
2024-09-14 23:38:42 +03:00
linked: []
2024-09-13 07:09:47 +03:00
---
При реализации [[highload/Кэширование на стороне браузера|кэширования на стороне браузера]] важно иметь механизм [[highload/Инвалидация кэша|инвалидации кэша]]. Иначе пользователи могут продолжить видеть неактуальные JS-скрипты и CSS-стили, что приведет к проблемам.
2024-09-13 07:09:47 +03:00
Fingerprint — это метод, при котором при каждом изменении файла его название изменяется. Обычно это делается путем добавления префикса или суффикса, сгенерированного на основе хэша файла. Например, для файла стилей `style.css` можно вычислить его [[../cryptography/MD5|MD5]]-хэш и добавить его к имени файла. В итоге получится файл с именем `style.e626dd36e0085927f334adbe3eb38e7a.css`.
2024-09-13 07:09:47 +03:00
Каждый раз, когда файл изменяется, хэш пересчитывается, и файл получает новое имя. Это заставляет браузер скачать актуальную версию файла, игнорируя старую кэшированную копию.
2024-09-13 07:09:47 +03:00
***
## Мета информация
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
2024-09-14 23:38:42 +03:00
**Родитель**:: [[highload/Инвалидация кэша|Инвалидация кэша]]
**Источник**::
2024-09-13 07:09:47 +03:00
**Создана**:: [[2024-09-10]]
**Автор**::
### Дополнительные материалы
2024-09-14 23:38:42 +03:00
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->