- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пытаюсь прикрутить связку Last-Modified/If-Modified-Since.
Немного запутался, поправьте меня в теории и практике:
1. Человек заходит на сайт первый раз мы ему возвращаем заголовки:
Server: nginx/1.6.2
Date: Mon, 23 Mar 2015 10:57:07 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.29
Last-Modified: Mon, 23 Mar 2015 10:48:14 GMT
Accept-Ranges: none
Vary: Accept-Encoding
Cache-Control: max-age=0, public
Expires: Mon, 23 Mar 2015 10:57:07 GMT
То есть браузеру мы сказали, что текущее время на серваке 10:57, а последнее изменение было в 10:48. Браузер это запомнил и сохранил страницу в локальный КЕШ.
2. Человек зашел повторно на эту страницу. Так как есть копия в локальном КЕШ то браузер запрашивает If-Modified-Since заголовки, с текущем значением времени и датой, когда был загружен КЕШ.
3. Если дата КЕШа такая же, какая и Last-Modified то сервак отдает 304 Not Modified.
Server: nginx/1.6.2
Date: Mon, 23 Mar 2015 10:57:07 GMT
Connection: close
Expires: Mon, 23 Mar 2015 10:57:07 GMT
Cache-Control: max-age=0, public
Что в данном случае означает поле Expires:?
4. Если дата КЕШа более старая, то возвращаем новую страницу, которая становится новым локальным КЕШем.
Server: nginx/1.6.2
Date: новое время сервера
Content-Type: text/html; charset=utf-8
Connection: close
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.29
Last-Modified: какая-то дата
Accept-Ranges: none
Vary: Accept-Encoding
Cache-Control: max-age=0, public
Expires: Mon, 23 Mar 2015 10:57:07 GMT
Заголовок Expires всегда говорит, после какой даты контент устаревает и его надо грузить заново.
Так я же не знаю, когда контент устареет, он устареет, когда обновят страницу.
В данном варианте expires возвращает текущее значение даты - это верная реализация?
Плохо, что не знаете. Вы же владелец своего сайта и должны знать.
Точнее, должны принять решение и установить сроки, в которые контент устаревает.
Если нужно, чтобы контент не кэшировался (устаревал сразу же), можно выдавать в Expires текущую дату.
Тогда теряется смысл от Last-Modified / If-Modified-Since.
;13601743']Плохо, что не знаете. Вы же владелец своего сайта и должны знать.
Точнее, должны принять решение и установить сроки, в которые контент устаревает.
Если нужно, чтобы контент не кэшировался (устаревал сразу же), можно выдавать в Expires текущую дату.
Тогда теряется смысл от Last-Modified / If-Modified-Since.
;13601743']Плохо, что не знаете. Вы же владелец своего сайта и должны знать.
Точнее, должны принять решение и установить сроки, в которые контент устаревает.
Если нужно, чтобы контент не кэшировался (устаревал сразу же), можно выдавать в Expires текущую дату.
Тогда теряется смысл от Last-Modified / If-Modified-Since.
дык нужно, чтобы контент кешировался и брался из кеша до момента изменения контента на сайте: а откуда я знаю, когда мне нужно что-то поменять станет?
Уважаемый, у меня к Вам два вопроса:
1. Как устанавливается дата Expires?
2. А можно этот заголовок не использовать (Expires), ведь я не знаю, когда я буду править контент, но и чтобы Last-Modified / If-Modified-Since верно отрабатывали?
Дата Expires для статического контента устанавливается дефолтными настройками веб-сервера или в .htaccess.
Expires для динамического контента устанавливается движком сайта.
Можно не использовать Expires. Просто не отдавайте его.
;13601861']Дата Expires для статического контента устанавливается дефолтными настройками веб-сервера или в .htaccess.
Expires для динамического контента устанавливается движком сайта.
Можно не использовать Expires. Просто не отдавайте его.
А как это сделать?
Если речь о htaccess, шаблон можно тут взять: https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
когда меняете статику, ставьте новый урл: script.js?v=2
Заголовок Expires указывает браузеру, когда ему нужно принудительно удалить локальные копии. То-есть, вы можете отдавать, например, дату +1 месяц с момента запроса при каждом запросе. В этом случае, если пользователь запросить страницу через 3 недели, будет загружена локальная копия, а Expires будет продлен еще на месяц. Если запросит позже, чем через месяц, страница будет загружена заново (не из кеша).