eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwPrzeglądarki zbyt mocno keszują › Re: Przeglądarki zbyt mocno keszują
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: emil <e...@p...onet.pl>
    Newsgroups: pl.comp.www
    Subject: Re: Przeglądarki zbyt mocno keszują
    Date: Tue, 13 Jan 2009 20:09:02 +0100
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 59
    Message-ID: <gkiosg$dj9$1@inews.gazeta.pl>
    References: <o...@m...lebkowski.info>
    NNTP-Posting-Host: sj036.multi-play.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1231873744 13929 195.225.250.133 (13 Jan 2009 19:09:04 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Tue, 13 Jan 2009 19:09:04 +0000 (UTC)
    X-User: emjot_nntp
    In-Reply-To: <o...@m...lebkowski.info>
    User-Agent: Thunderbird 2.0.0.19 (X11/20090105)
    Xref: news-archive.icm.edu.pl pl.comp.www:390109
    [ ukryj nagłówki ]

    Maciej Łebkowski wrote:
    > Witam,
    >
    > Wstawiłem na stronie mechanizm wspomagający cache przeglądarek.
    > Konkretnie, polegało to na wstawieniu nagłówków:
    > ETag: md5(content)
    > Last-Modified: date(r, filemtime(plik z contentem))
    > Date: date(r)
    > Expires: date(r, strtotime(+10 minutes))
    > Wszystkie wartości są dobrze przekazywane (tzn, jesli content sie
    > zmieni, to faktycznie zmienia sie etag i odpowiednio last-modified)
    >
    > Efekt, jaki obserwuję:
    > Firefox, czasami (nie wiem dokładnie kiedy), w ogóle nie wykonuje
    > zapytania do serwera (LiveHTTP headers milczy, log apache rowniez).
    > Rozumiem, że jest to naturalne zachowanie, gdyż wysyłany jest
    > dziesieciominutowy czas wygasniecia (Expire). Dziwi mnie jednak,
    > ze dzieje sie tak tylko czasami - raz czesciej, raz rzadziej. Nie
    > udało mi się odnaleźć żadnej sensownej zależności.
    >
    > Problem: wysyłanie komentarza
    > Po dodaniu komentarza, user ląduje na "thank you page", z ktorej
    > moze sie cofnac do komentowanej strony. Ta oczywiście jest ciągnięta
    > z cache i user jest zmieszany (hej, gdzie moj komentarz?!). Aby tego
    > uniknąć, odpowiedz na POST-a wygląda mniej wiecej tak:
    >
    > HTTP/1.x 302 Found
    > Date: Tue, 13 Jan 2009 11:37:11 GMT
    > Location: thankyou.html
    > Expires: -1
    > Pragma: no-cache
    > Cache-Control: no-cache
    >
    > Jednak przeglądarka nic sobie z tego nie robi - nadal pobiera strone
    > z cache. Zaobserwowane na Safari i Firefoksie, więc podejrzewam, ze
    > robię coś źle.
    > Mógłbym zmienić adres, do ktorego wraca user (jakiś ?bust dodać), ale
    > kłóci się to z zasadą "jeden wpis, jeden adres".
    >
    > Jak więc w takim modelu zasugerować odświeżenie informacji o stronie?
    >
    Pogubiłem się trochę.
    Ale od początku:
    a) strony które otwierasz POSTem nie są keszowane w przeglądarce.
    b) zdecyduj się,albo e-tag albo last-modified, stosowanie razem nie ma
    większego sensu, swoją drogą zwracasz 304 w odpowiedzi?
    c) Jeśli zwracasz 302,to nagłówki keszowe sobie podaruj, bo tyczą się
    one 302, która i tak nie zostanie zakeszowana ;)
    d) Jeśli już chcesz obejść kesza to dodaj do URLa parametr np. Location:
    /thanyou.html?nc=timestamp
    e) ewentualnie wywal expires, wtedy przeglądarka powinna zwsze zapytać o
    stronę z If-Modified-Since i najwyżej zwrócisz jej 304.
    d) zainstaluj sobie fiddlera i dokładnie popatrz na nagłówki, niektóre
    serwery lubią dorzucać coś od siebie.

    emil



Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: