Ответ 1
https://sookocheff.com/post/api/effective-caching/ - отличный источник для формирования необходимого понимания вокруг этих двух кодов состояния HTTP.
Прочитав это полностью, я понял это
При типичном использовании, когда URL-адрес будет восстановлен, веб-сервер вернет текущее представление ресурса вместе со своим соответствующим значением ETag, которое помещается в поле заголовка HTTP-ответа "ETag". Затем клиент может решить кэшировать представление вместе с его ETag. Позже, если клиент хочет снова получить тот же ресурс URL-адреса, он сначала определит, истек ли местная кешированная версия URL-адреса (через заголовки Cache-Control и Expire). Если URL-адрес еще не истек, он будет извлекать локальный кешированный ресурс. Если он определил, что URL-адрес истек (устарел), клиент свяжется с сервером и отправит ранее сохраненную копию ETag вместе с запросом в поле "If-None-Match". (Источник: https://en.wikipedia.org/wiki/HTTP_ETag)
Но даже если время истечения срока действия актива будет установлено в будущем, браузер все равно сможет достичь сервера для условного GET с использованием ETag в соответствии с заголовком "Vary". Подробности в заголовке "изменить": https://www.fastly.com/blog/best-practices-using-vary-header/