Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Для конечных точек REST можно повлиять на то, как построитель данных (DAB) использует внутренний кэш результатов запросов с заголовком Cache-Control запроса.
Это важно
Если кэширование отключено в конфигурации среды выполнения, эти директивы игнорируются и запросы выполняются нормально.
Поддерживаемые значения Cache-Control
| Ценность | Поведение |
|---|---|
no-cache |
Позволяет DAB обойти кэши L1 и L2, получить свежие данные из базы данных и обновить кэши с новым результатом. |
no-store |
Сообщает DAB не кэшировать ответ вообще (не хранится в L1 или L2 и не пытается получить из кэша). |
Поведение
- Сопоставление директив не учитывает регистр.
- DAB не интерпретирует другие стандартные
Cache-Controlдирективы, такие как max-age или max-stale. - Применяется только к операциям запросов REST. Не используется для директив кэша на уровне запросов GraphQL.
- Значения заголовка HTTP запроса Cache-Control управляют кэшем L1 и L2.
Замечание
DAB не задает заголовки ответов управления кэшем для любой операции кэширования.
Директива: no-cache
Принудительно выполняет новые операции чтения и обновляет слои кэша.
Просьба
GET /api/Books
Cache-Control: no-cache
Accept: application/json
Ответ (пример)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Эффект: кэш теперь содержит этот свежий результат (при условии настройки TTL).
Директива: no-store
При наличии используется существующее кэшированное значение; в противном случае запрашивает базу данных, но не заполняет (или не обновляет) кэш с новым результатом.
Просьба
GET /api/Books
Cache-Control: no-store
Accept: application/json
Ответ (пример)
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": 1, "title": "The Hobbit" },
{ "id": 2, "title": "The Silmarillion" }
]
Эффект. Если этот результат еще не был кэширован, он не будет сохранен. Последующий only-if-cached запрос может завершиться ошибкой, если предыдущий запрос не заполнял кэш.
Отзыв
- Используйте
no-cache, когда необходимо принудительно обновить базу данных, а также обновить кэш. - Используйте
no-storeпри желании данные, но не хотите, чтобы этот ответ изменил кэш (хотя он может прочитать существующее кэшированное значение). - Опустите заголовок для нормального поведения кэширования.