Механизм кеширования при использовании HTTP-статуса 304 (Not Modified) работает так: если запрашиваемый ресурс не был изменён, сервер возвращает этот статус, указывая на то, что клиент может использовать свою кэшированную версию ресурса, не загружая его заново. alfa-brain.com
Упрощённая схема работы: www.webformat.ru
- Клиент (браузер или поисковый робот) впервые запрашивает определённую страницу сервера (URL), изначально кэш браузера чист. www.webformat.ru
- Сервер генерирует контент и устанавливает HTTP-заголовки, которые определяют поведение браузера в плане возможности что-то закэшировать. www.webformat.ru
- Браузер, получив контент и соответствующие заголовки, решает, что можно сохранить в своём кэше, а что нет. www.webformat.ru
- При повторном обращении к ресурсам сайта браузер решает, брать ему данные из кэша либо же обращаться к серверу. www.webformat.ru
- В сомнительных случаях браузер может сделать не полный, а так называемый условный запрос, передав на сервер дополнительные HTTP-заголовки. www.webformat.ru
- Сервер, получив заголовок If-Modified-Since от клиента, проверяет дату со временем последнего изменения контента. www.webformat.ru
- Если дата последнего изменения контента на сервере меньше значения If-Modified-Since, сервер возвращает статус 304 и завершает выполнение скрипта. www.webformat.ru
- Если же дата последнего изменения контента больше значения If-Modified-Since, то сервер продолжает генерацию страницы в обычном режиме, генерируя и все обычные заголовки. www.webformat.ru
- Если браузер получает ответ от сервера 304, то он считает имеющийся кэш пригодным для использования и отдаёт пользователю, обновляя также все полученные от сервера заголовки. www.webformat.ru
Кэширование — процесс двусторонний, им управляет как клиент (через отправляемые заголовки), так и сервер, который должен быть чувствителен к ним. www.webformat.ru