Говорят, что часы веб-серверов должны быть одинаковыми для заголовков и Cache-Control
для работы? Почему это? Разве они не могут быть отключены на 1 секунду или несколько минут?Будет ли кэширование работать, если на одном из веб-серверов есть часы, которые слегка отключены?
Если кеш должен быть хорошим в течение 1 года, не будет ли разница во времени в несколько минут или даже нескольких часов недействительной на одном или нескольких веб-серверах?
В documentation говорится, что:
отметить, что для того, чтобы это [кеширования] к работе, все серверы приложений должны возвращать те же временные метки. Это означает, что они должны синхронизировать их часы . Если один из них дрейфует , вы увидите разные временные метки , а кеш не будет работать. В этом случае браузер запросит те же активы и снова даже подумал, что они не изменение. Вы можете использовать что-то вроде Live HTTP Headers для Firefox до убедитесь, что кеш действительно работает .
, если это число, например '1232285206', то не должно ли это быть во второй раз? (потому что '? 1232285206' и'? 1232285207' создадут другой URL уже.) также, даже если он является точным для второго, не будет таких случаев, как когда один контроллер работает, время 12: 03.999997 и на другая машина, контроллер работает в 12: 04.000001, и поэтому они «выключены» на одну секунду (если число усечено (по math.floor)) –
Конечно, но есть хорошие шансы, что ваши активы не меняются несколько раз в одна секунда - они просто должны быть достаточно правы, когда запрос обрабатывается. Когда вы меняете свои активы, устаревшие активы могут раздаваться почти целую секунду. Если вы не можете терпеть одноставочное время, то, возможно, кеширование ваших активов - не очень хорошая идея.Но большинство веб-сайтов могут обрабатывать один-второй устаревшие кэшированные объекты. Если часы на ваших серверах были отключены на десять секунд, вы могли бы раздавать 11-секундные устаревшие данные. Но на самом деле, просто запустите ntpd и будьте счастливы. :) – sarnold
Спасибо за ваш ответ. Что вы имеете в виду, что большинство веб-сайтов могут «обрабатывать» один-второй устаревшие кэшированные объекты? Разве это не браузер, который решает, перезагружать ли что-нибудь? Можете ли вы указать это в конкретных терминах ... и почему/как веб-сервер не заботится о нескольких вторых различиях и о том, какой механизм работает, и каков предел (10 секунд? 15?) –