parserALT
Страницы форума: ← Назад | 1 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 597 | Дальше →

Помогите про parser и вебсерверный кеш

#1Newbie
29.08.10 16:22 / 16:36
www.parser.ru → | ответить → | в избранное →

Помогите про parser и вебсерверный кеш

Помогите разобраться с путаницей на тему кеша, голову сломал уже.
Проблема вкратце:
Паранойя на тему, что картинки кажется плохо кешируются. Складывается порой ощущение, что через день другой кеш протухает, хочется чтобы они закешировались намертво если не было перезаписи файла картинке на уровне ФС.

Мысли:
Парсер стоит у хостера на shared-хостинге как cgi-скрипт, стоит Apache 1.3.x
По идее, вебсервер сам формирует заголовки ответа для статических файлов (картинок) и сам следит за актуальностью файлов на ФС.
В парсере никаких специальных, отключающих кеш заголовков не определено у меня.

Заголовки после первого запроса по нажатию Reload:

Запрос index.html
--------------------------------
Host xxxxxx.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Cookie sess=none
Cache-Control max-age=0
--------------------------------

Ответ index.html - 200 OK
------------------------------------
Date Sun, 29 Aug 2010 12:08:03 GMT
Server Apache/1.3.41 (Unix) PHP/5.2.9
Set-Cookie sess=none; expires=Sat, 27 Nov 2010 12:08:03 GMT; path=/
Content-Length 10796
Connection close
Content-Type text/html; charset=WINDOWS-1251
------------------------------------


Запрос картинки на этой же странице
------------------------------------------
Host xxxxxx.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Cookie sess=none
If-Modified-Since Sat, 21 Aug 2010 12:44:57 GMT
If-None-Match "39493c-21c0e-4c6fca49"
Cache-Control max-age=0
------------------------------------------

Ответ сервера на картинку - 304 Not Modified
---------------------------------------------
Date Sun, 29 Aug 2010 12:08:05 GMT
Server Apache/1.3.41 (Unix) PHP/5.2.9
Connection close
Etag "39493c-21c0e-4c6fca49"
---------------------------------------------

На вид как бы все ок, но ощущение, что кеш картинок "протухает" постоянно, в браузере специальное "не_хранение_кеша" не ставилось и вообще не менялось с default'ового
(может конечно дисковую квоту кеша превышаю активным серфингом )

На самом деле паники нет, но что не понимаю:
Могут ли влиять на кеш самих картинок:
а) кеш-meta-теги index.html в которой эти картинки указаны
b) http-заголовки ответа index.html - и может нужно для пущей верности что-то дописать туда из Парсера?
c) Туплю я - так и должно быть это нормально все и так отдается верно.

Вообще попахивает ответом c) но вот не дают покоя a) и b)
#2Misha v.3
→ Newbie [#1] | 29.08.10 16:34 / 16:36
www.parser.ru → | ответить → | в избранное →
ну... вы вообще-то не выдали никаких инструкцию браузеру для кеширования изображений. вот он (браузер) и пользуется тем, что у него указано по умолчанию (у меня, например -- 5 часов).

выдайте необходимые заголовки -- будет вам счастье.
ссылка вам в помощь.

P.S. но вообще "намёртво" они не будут кешироваться. я браузеру разрешил использовать под кеш 50 МБ. думаете он туда 100 картинок положит и всё?
#3Newbie
→ Misha v.3 [#2] | 29.08.10 16:46 / 16:55
www.parser.ru → | ответить → | в избранное →

Тоже самое и у меня

При первом обращении:
Браузер
Host xxxxxx.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://xxxxxx.ru/index.html
Cookie sess=none; mannewslist-acfilter=n; frmsyspars-acfilter=n; mnhelplist-acfilter=n

ВебСервер:
Date Sun, 29 Aug 2010 12:39:15 GMT
Server Apache/1.3.41 (Unix) PHP/5.2.9
Last-Modified Sat, 21 Aug 2010 12:44:57 GMT
Etag "39493c-21c0e-4c6fca49"
Accept-Ranges bytes
Content-Length 138254
Connection close
Content-Type image/png
-------------------
Сервер сообщает, что картинка не менялась с 21 числа (сегодня 29)
то есть кеш актуален как бы говорится браузеру

-----------------------------------
При втором обращении тут же
------------------------------------
Браузер:
Host xxxxxxx.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://xxxxxxx.ru/index.html
Cookie sess=none; mannewslist-acfilter=n; frmsyspars-acfilter=n; mnhelplist-acfilter=n
If-Modified-Since Sat, 21 Aug 2010 12:44:57 GMT
If-None-Match "39493c-21c0e-4c6fca49"
Cache-Control max-age=0

ВебСервер: 304 NotModified
Date Sun, 29 Aug 2010 12:42:11 GMT
Server Apache/1.3.41 (Unix) PHP/5.2.9
Connection close
Etag "39493c-21c0e-4c6fca49"

P.S.:
При первой загрузке браузеру же сказали, что
Last-Modified Sat, 21 Aug 2010 12:44:57 GMT
и при втором релоаде браузер послал
If-Modified-Since Sat, 21 Aug 2010 12:44:57 GMT
на что получил не тело картинки а 304 Not Modified
значит, что картинка не была загружена, а была взята из кеша.
Вопрос конечно в том, что такое поведение отдано на откуп браузера, вы же говорите, что надо явно указать о кешировании.
И еще вопрос был про кеш-meta-теги могут ли они повлиять?
#4Newbie
→ Misha v.3 [#2] | 29.08.10 16:53
www.parser.ru → | ответить → | в избранное →

Проанализировал ответ вебсервера www.parser.ru - тоже самое

Первое обращение к http://www.parser.ru/i/logo.gif
Запрос
Host www.parser.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer «Помогите про parser и вебсерверный кеш»
Cookie cookie=on; auth.uid=xxxxxxxxx

Ответ
Date Sun, 29 Aug 2010 12:49:24 GMT
Server Apache/1.3.37 (Unix)
Last-Modified Thu, 11 Apr 2002 15:35:24 GMT
Etag "9643a5-52d-3cb5ad3c"
Accept-Ranges bytes
Content-Length 1325
Connection close
Content-Type image/gif
---------
P.S: что-то не видать специальных заголовком про кеш у вас.
Та же Last-Modified что и у меня только младше что естественно

Повторный релоад

Запрос
Host www.parser.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer «Помогите про parser и вебсерверный кеш»
Cookie cookie=on; auth.uid=xxxxxxxx
If-Modified-Since Thu, 11 Apr 2002 15:35:24 GMT
If-None-Match "9643a5-52d-3cb5ad3c"
Cache-Control max-age=0

Ответ - 304 Not Modified
Date Sun, 29 Aug 2010 12:52:04 GMT
Server Apache/1.3.37 (Unix)
Connection close
Etag "9643a5-52d-3cb5ad3c"

P.S.:
Простите но не вижу разницы
#5Newbie
→ Newbie [#3] | 29.08.10 16:57
www.parser.ru → | ответить → | в избранное →

Мало того, на html-странице у вас вообще кеш отключен

Что выдает страница www.parser.ru/forum

Date Sun, 29 Aug 2010 12:55:54 GMT
Server Apache/1.3.37 (Unix)
Cache-Control no-store, no-cache, must-revalidate, proxy-revalidate
Expires Fri, 23 Mar 2001 09:32:23 GMT
Pragma no-cache
Set-Cookie cookie=on; expires=Mon, 29 Aug 2011 12:55:55 GMT; path=/
Content-Length 36463
Connection close
Content-Type text/html; charset=WINDOWS-1251

---------
И это не помешало картинкам кеширвоаться, что я не понял про ваши 5 часов на кеширование.... чесслово
#6Newbie
→ Newbie [#3] | 29.08.10 17:06
www.parser.ru → | ответить → | в избранное →

Похоже тот mod_expires только Last-Modified-ом и рулит

Похоже что директивами для mod_expires мы как бы рулим заголовками
Last-Modified
и если надо mod_expires будет просто периодически сам перекрывать
эти значения вне зависимости от измненения файлов на ФС. То есть сказали Every 5 hours - то и будет через 5 часов менять Last-Modified наверное...
#7Misha v.3
→ Newbie [#4] | 29.08.10 17:37
www.parser.ru → | ответить → | в избранное →

Простите но не вижу разницы

а с чего ей быть, если и вы не управляете кэшированием изображений и мы?

- мета-теги влиять на кеширование изображений не должны, т.к. они к документу относятся. так-же к изображениям не относятся http заголовки html страницы.

- протухнет картинка (это браузер или его пользователь решает когда ей протухнуть) -- пойдёт запрос без If.

- я говорю, что если сказать браузеру о параметрах кеширования конкретной картинке, то он _может_ (но _не_обязан_) использовать эту информацию, а не введённый в настройках default.

- вы не поверите, но last-modified с expires на кеширование в общем и влияют.

P.S. вот чесное слово -- я не понимаю вашей проблемы.
#8Newbie
→ Misha v.3 [#7] | 29.08.10 17:50
www.parser.ru → | ответить → | в избранное →

Вы правы

Хотелось как раз и услышать от знатоков и лишний раз в голове прояснить. В принципе last-modified значит вполне достаточно наверное...
#9Sumo
→ Newbie [#8] | 29.08.10 17:54
www.parser.ru → | ответить → | в избранное →

http://speedupyourwebsite.ru/books/speed-up-your-website/

В этой книжке все подробно расписано и есть нужные конфиги для Апача.
#10Newbie
→ Sumo [#9] | 29.08.10 18:47
www.parser.ru → | ответить → | в избранное →

Охохо - исчерпывающе! Спасибо очень пригодится

Страницы форума: ← Назад | 1 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 597 | Дальше →