Как генерировать ETag в заголовках ответа сервера для страниц PHP ?

SN
На сайте с 04.07.2013
Offline
84
2941

Очень мало информации в интернете на эту тему (вернее не нашел).

Прошу подсказать как его генерировать?

Статические файлы у меня отдают ETag автоматически.

Как сделать чтобы файлы генерированные на PHP тоже отдавали заголовок Etag ?

Это через nginx нужно настраивать или на PHP код писать?

Спасибо!

-
На сайте с 15.12.2010
Offline
133
#1

Инфы валом... что в манах, что в гугле.

http://nginx.org/en/docs/http/ngx_http_core_module.html#etag

SN
На сайте с 04.07.2013
Offline
84
#2
-Dima-:
Инфы валом... что в манах, что в гугле.
http://nginx.org/en/docs/http/ngx_http_core_module.html#etag

ссылка которую вы дали относится к статическим файлам и не имеет отношения к вопросу. Интересует как вычислить Etag для динамических страниц. Может кто знает алгаритм которым пользуется nginx для вычисления Etag статических файлов? В рунете четкого ответа нет на вопрос

-
На сайте с 15.12.2010
Offline
133
#3

Извиняюсь, не верно прочитал вопрос...

Поскольку php отвечает за динамику логичнее, чтобы контролировал Etag сам php.

Генерируйте его у себя в php скрипте и от туда и отдавайте HTTP 304 если ничего не изменилось.

Вот гугл отдал мне один из вариантов решения Вашего вопроса.

http://stackoverflow.com/questions/13197479/how-to-use-etags-in-a-php-file

Здесь обсуждают как nginx генерирует etag:

http://serverfault.com/questions/690341/algorithm-behind-nginx-etag-generation

ИМХО, Но вот если у Вас полноценная cms, а не пару php файлов, с Etag будет труднее. Мне на пальцах видится это так: из генерированного кода перед отправкой его клиенту вычисляем к примеру его md5, а дальше уже сравниваем с $_SERVER['HTTP_IF_NONE_MATCH'] и там уже решаем отдавать HTTP 304 или нет..

Ну и еще мне кажется, что это лишено смысла... Т.е. в статике, понятно, проверил Etag отдал 304 и не забиваешь канал повторной отправкой. А вот php, новый коммент или новая ссылка на странице в каком-то модуле и страница уже изменилась.. Ресурсы на генерацию страницы и вычисление Etag уже потрачены... Сжатая страничка сколько будет весить - 5-10кб ? Ну не знаю, даже....

UPD Хотя Вот есть такой плагин для nginx и динамического контента:

https://github.com/kali/nginx-dynamic-etags

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий