SYSTEM ATLASЗагрузка материала

Условные HTTP-запросы

Conditional Requests

Условный запрос выполняется только если версия ресурса соответствует условию клиента.

Простыми словами

Например, редактор отправляет If-Match с ETag; сервер не перезаписывает более свежую версию другого пользователя. Поэтому проверяют весь путь запроса от браузера до сервера и обратно - иначе локально правильное решение может ухудшить загрузку, совместимость или устойчивость страницы.

Пример от @Vibeclakr

Пример при разработке

Редактор отправляет If-Match с ETag; сервер не перезаписывает более свежую версию другого пользователя.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

Условный запрос выполняется только если версия ресурса соответствует условию клиента.

Механизм действия

Сервер оценивает If-None-Match, If-Match или временные условия перед выбором 304, 412 или обычного ответа.

Пример в работе

Нерабочий подход

Внедрить «Условные HTTP-запросы» как формальную настройку, не проверив сценарий отказа и ограничение: Слабые validators и часы могут давать неожиданные результаты; условия не заменяют транзакции.

Системный подход

Применять «Условные HTTP-запросы» только для заявленной цели, проверять поведение на реальном контуре и сохранять наблюдаемый критерий результата.

Ограничения

Слабые validators и часы могут давать неожиданные результаты; условия не заменяют транзакции.

Источник

IETF, “HTTP Semantics”, 2022.

Первоисточник