Убрать параметр в ссылках на css и js

Рейтинг: 0.2390  
На голосовании
Предложил Марцуль Владимир 25.03.2015 12:58:20

Убрать параметр в ссылках на css и js

Наличие любого параметра (?blablabla) у ссылки на подключаемый файл заставляет любое клиентское приложение (браузер, прокси-сервер, мобильное приложение и т.д.) обязательно обратиться за файлом на сервер.
Это RFC.
Сервер, в лучшем случае ответит "304 Not Modified" (но при этом всё равно дёрнет файл с диска/памяти, чтобы проверить) или же полноценный 200 с полной передачей файла.
Ответ сервера в некоторых кешах сохранится, в некоторых (н-р, AppCache) нет.

Соответственно, время модификации, хеш от него или любой другой праметр для cache busting должен быть в имени или пути файла (...template_283cd0022d3edc763e34cc00a91e7e1b/template_283cd0022d3edc763e34cc00a91e7e1b-142712022549372.js), а не в параметре (...template_283cd0022d3edc763e34cc00a91e7e1b/template_283cd0022d3edc763e34cc00a91e7e1b.js?142712022549372).

Проверить очень просто: при повторном открытии страницы сайта на сервер должен идти только 1 запрос - на саму страницу, а все остальные файлы должны браться из кеша браузера.

UPDATE 2015-04-01

Теоретическое обоснование и рекомендации от известных разработчиков:
Реализации:
Первые попашиеся "правильные" сайты:
Font-Awesome планирует в 5-й версии перенести параметр в название файла шрифта https://github.com/FortAwesome/Font-Awesome/issues/5231 и https://github.com/FortAwesome/Font-Awesome/issues/3286

Рейтинг: 0.0781  
Марцуль Владимир 25.03.2015 13:24:18
ТП с 3-го раза всё-таки создала тикет для разработчиков, но с удивительным замечанием:
шансов что это будет реализовано крайне мало, так как это сломает сущесвующий функционал, в частности работу CDN
Предложение как раз и заключается в том, чтобы улучшить работу с локальным сервером или CDN, исключив лишнее обращение даже за проверкой файлов.
Рейтинг: 1.457  
Семочкин Михаил 25.03.2015 19:02:07
Не понял смысла предложения.
Параметры не мешают кэшированию, если они не изменяются постоянно.
Специально сейчас проверил у себя - даже If-Modified-Since-запросы из браузера не идут. (CDN не используется).
Может, вам нужно проверить настройки веб-сервера (чтобы Expires правильный отдавал) ?
Рейтинг: 0  
Марцуль Владимир 01.04.2015 12:24:30
Добавил немного теории и практики в описание идеи. Коллеги-минусующие, уделите, пожалуйста, пару минут и напишите своё мнение в комментарии!