ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Добавить переменую $cache status



Hello!

On Mon, Nov 18, 2013 at 02:46:31PM -0500, S.A.N wrote:

> Если в нашей дискуссии есть практический смысл (реализация Etag в ближайших
> версия).
> Я могу много рассказать про невозможность использовать Last-Modified для
> ревалидации.
> 
> Реальный пример из жизни, у нас есть страница товара, ниже выводим
> комментарии пользователей, хедер страницы Last-Modified ? это дата
> создания/редактирования товара, это необходимо для поисковиков RSS клиентов
> и т.д. При добавления нового комментария мы не можешь изменить Last-Modified
> всей страницы, мы можем изменить только её ETag, и самая большая проблема

Если вы не меняете Last-Modified документа при его изменении - у 
вас проблема, как справедливо заметил Гена.  Вне зависимости от 
того, кто выступает клиентом.  Но это, опять же, не рассказ о том, 
почему не годится Last-Modified, а рассказ о том, как много всего 
можно напрограммировать криво.

> Last-Modified это точность до секунды, к сожаления два комментария могут
> прийти в одну секунду, но в кеше появится только первый комментарий, второй
> комментарий просто не сможет сбросить кеш потому что у него такой же
> Last-Modified.

Проблема subsecond resulution - имеет чуть менее, чем бесконечное 
множество решений, начиная от совсем простого "подождать секунду" 
и до выдачи "умных" значений Expires / Cache-Control: max-age.

> Но главная особенность, Etag он может хранить серелизованые значения или
> хеши которые являются ключами в NoSQL, в них хранится расширенная мета
> информацию для использования её в бекенде при ревалидации, с Last-Modified
> этого сделать невозможно.

Я уже в этом треде отвечал на попытку рассказать про такие 
"преимущества" ETag'а.  То, что ETag допускает подобное 
использование не по назначению - это, наоборот, недостаток 
технологии, а не её достоинство.

> Etag не просто удобней использовать, он даёт новые возможности которые не
> может дать Last-Modified, по этому поддержка Etag это стратегический вопрос
> а не тактический.

На самом деле, основное практическое преимущество ETag'ов перед
перед Last-Modified: без них не работает докачка в IE9+.  Именно 
для этого, кстати, поддержка ETag'ов вообще появилась в nginx'е.

> Не понимаю зачем менять версию кеш файла, для передачи Etag в бекенд?
> Нам для полного счастья нужна одна мелочь HTTP_IF_NONE_MATCH, серверу нужно
> её заполнить значениям из файла кеша и передать на бекенд, все больше сервер
> ничего делать не должен, бекенд ответит статусом 304 или 200.
> Зачем ждать светлого будущего, если можно создать светлое настоящие для
> Nginx уже сегодня, осталось мелочь реализовать Etag в ревалидации

В код вы, судя по всему, заглядывать не пытались.  Тогда 
рекомендую просто поверить на слово тому, что уже было сказано - 
не верить и переспрашивать ещё раз бессмысленно, т.к. на выходе 
будет та же проблема - поверить или переспросить ещё раз.  
http://lurkmore.to/Рекурсия

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.