﻿id	summary	reporter	owner	description	type	status	priority	component	resolution	keywords	cc
1470	"Убрать ""костыль, добавленный в r507/base и дублирующий ETag"	alx	Denis_N	"В r507/base была добавлена функция добвления ко всем ссылкам на статические файла CSS параметра `v=xxxxxxxxx`, формирующегося из времени модификации файла. В личной переписке разработчик пояснил, что данная мера призвана решить проблему, наблюдающуюся у пользователей, состоящую в том, что после обновления файла css на сервере браузер пользователя при загрузке страницы берет старую версию файла из своего кэша. Добавление же нового значения параметра в URI, по мнению разработчика, заставит браузер игнорировать кэшированный файл (так как URI нового файла теперь отличается от старого файла).

Насколько я понимаю, разработчик, фактически, ""переизобрел"" (и продублировал) ETag и связанный с ним механизм If-None-Match, который и так уже используется в системе (о существовании механизма If-None-Match разработчик не знал).

Проверка показала, что в ответ на запрос файла css сервер указывает в заголовке ответа `Cache-Control: max-age:0, public`. Судя по [https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control описанию] этого параметра, ```max-age=0` предписывает браузеру всегда валидировать документ. Таким образом, во-первых, после обновления файла на сервере клиенты должны загружать новую версию файла и без каких-либо дополнительных усилий (""костылей""), а во-вторых, добавленная функция вряд ли может что-либо улучшить, так как она всего лишь дублирует уже имеющийся стандартный механизм валидации документов. 

В личной переписке разработчик сообщил, что он не знает, как и почему у пользователей возникала проблема (почему браузер не загружал новую версию файла, а использовал устаревшую из кэша). Я понял так, что исследование проблемы не проводилось, причину проблемы разработчик выяснить не пытался, а просто добавил данный механизм (не зная, что аналогичный уже имеется) в надежде, что это поможет устранить проблему.

Учитывая сказанное выше, я **предлагаю**:

1. Откатить коммит r507/base, так как он не добавляет ничего нового к уже имеющемуся **стандартному** механизму валидации, но, как минимум, зря загромождает код и вызывает ненужные вопросы при его чтении (как это произошло в моем случае).

2. Попытаться разобраться с проблемой пользователей, а именно, выяснить, почему при загрузке страницы применяется устаревший файл стилей. Предполагалаю, что возможны самые разные причины, в том числе никак не связанные с нашей системой - ошибочная жалоба (файл загрузился новый, но пользователь ошибочно решил, что старый), ""слишком агрессивное"" (нарушающее стандарт, ошибочное) кэширование файла прокси-сервером, ошибочные настройки браузера, ошибка в браузере и т.п...

3. После того как суть проблемы станет более-менее ясна - попытаться выработать соответствующее решение.

В свою очередь я готов оказывать помощь в меру своих сил и способностей."	дефект	closed	major	БД изделий АДС	fixed		
