-
1. Data: 2010-11-17 12:38:45
Temat: Jak działa nagłówek max-age?
Od: Marek <b...@e...com>
Witam,
Nie mam pewności czy dobrze obsługuję w/w nagłówek. Czy możecie mi w
punktach napisać co ma się dziać gdy np. max-age=1 ?
Jak aplikacja (strona serwera) ma się zachować gdy max-age=0 a
przeglądarka wysłała if-modified-since=<daty utworzenia dokumentu?
Pytam bardziej o wzajemną zależność obu tych nagłówków. W tej chwili mam
takie zjawisko, że gdy ustawię max-age na 0 a jednocześnie
if-modified-since=<daty utworzenia dokumentu to wysyłany jest kod 304.
Czy max-age=0 nie powinien zabronić przeglądarce wysyłania
if-modified-since ?
-
2. Data: 2010-11-18 21:26:11
Temat: Re: Jak działa nagłówek max-age?
Od: porneL <n...@p...net>
On Wed, 17 Nov 2010 12:38:45 -0000, Marek <b...@e...com> wrote:
> Nie mam pewności czy dobrze obsługuję w/w nagłówek. Czy możecie mi w
> punktach napisać co ma się dziać gdy np. max-age=1 ?
Dokument w cache ma żyć 1 sekundę. Po 1 sekundzie uznawany jest za
nieaktualny i przeglądarka będzie wysyłała zapytanie do serwera.
> Jak aplikacja (strona serwera) ma się zachować gdy max-age=0
Tak samo jak z no-cache
> a przeglądarka wysłała if-modified-since=<daty utworzenia dokumentu?
Nie potrzeba do tego max-age. I tak wyśle. max-age oznacza przez ile
sekund przeglądarka nie musi nic nigdzie wysyłać.
> Czy max-age=0 nie powinien zabronić przeglądarce wysyłania
> if-modified-since ?
Nie da się przeglądarce zabronić wysyłania if-modified-since. Możesz to
najwyżej zignorować (albo zepsuć nigdy nie podając last-modified).
--
http://pornel.net
this.author = new Geek("porneL");
-
3. Data: 2010-11-19 10:41:32
Temat: Re: Jak działa nagłówek max-age?
Od: Marek <b...@e...com>
W dniu 2010-11-18 22:26, porneL pisze:
> On Wed, 17 Nov 2010 12:38:45 -0000, Marek <b...@e...com> wrote:
>
> Nie da się przeglądarce zabronić wysyłania if-modified-since. Możesz to
> najwyżej zignorować (albo zepsuć nigdy nie podając last-modified).
Czyli w zasadzie dobrze interpretowałem ten nagłówek. No to teraz mam
ciekawszy problem. Mianowicie sytuacja jest następująca:
- dokument w CMS został zmodyfikowany 2 dni temu i w związku z tym w
last-modified wysyła tą datę
- chcemy aby, załóżmy do rozważań, po 100 sekundach dokument został
odświeżony przez przeglądarkę więc wysyłamy max-age: 100
- Firefox wysyła do CMS if-modified-since z datą 2 dni wstecz i nie
sposób jest dowiedzieć się z tego nagłówka po stronie CMS, że max-age
był ustawiony na 100 i że w konsekwencji należy wysłać status 200
zamiast 304.
Jak w związku z tym dowiedzieć się po stronie CMS, że minęło już te 100
sekund od pobrania skoro przeglądarka nie informuje o tym?
Rezygnacja z last-modified (chyba) nie wchodzi w grę bo z tego co
pamiętam, w którejś z przeglądarek dokument przestaje być cache'owany.
Dawno temu przerabiałem zarządzenia cach'em i już zatarły mi się w
pamięci te niuanse.
-
4. Data: 2010-11-19 12:59:42
Temat: Re: Jak działa nagłówek max-age?
Od: Paweł Piskorz <n...@p...nie?>
On 2010-11-19 11:41, Marek wrote:
> - chcemy aby, załóżmy do rozważań, po 100 sekundach dokument został
> odświeżony przez przeglądarkę więc wysyłamy max-age: 100
Użyj Expires.
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
-
5. Data: 2010-11-19 14:56:59
Temat: Re: Jak działa nagłówek max-age?
Od: Marek <b...@e...com>
W dniu 2010-11-19 13:59, Paweł Piskorz pisze:
>
> Użyj Expires.
Ten nagłówek nie nadaje się gdyż wyznacza on datę bezwzględną. Tymczasem
tu chodzi o czas względny: liczony od momentu pobrania strony przez
przeglądarkę. Strona po 100 sekundach od momentu załadowania powinna
wygasnąć. Przed tym okresem F5 w przeglądarce powinno skutkować kodem
304, po nim: kodem 200.
-
6. Data: 2010-11-19 17:06:18
Temat: Re: Jak działa nagłówek max-age?
Od: "gefek" <t...@s...wp.pl>
In news:news:ic5k94$uhh$1@news.net.icm.edu.pl, Marek wrote:
>W dniu 2010-11-18 22:26, porneL pisze:
>> On Wed, 17 Nov 2010 12:38:45 -0000, Marek <b...@e...com> wrote:
>> Nie da się przeglądarce zabronić wysyłania if-modified-since. Możesz to
>> najwyżej zignorować (albo zepsuć nigdy nie podając last-modified).
> Czyli w zasadzie dobrze interpretowałem ten nagłówek. No to teraz mam
> ciekawszy problem. Mianowicie sytuacja jest następująca:
> - dokument w CMS został zmodyfikowany 2 dni temu i w związku z tym w
> last-modified wysyła tą datę
> - chcemy aby, załóżmy do rozważań, po 100 sekundach dokument został odświeżony
> przez przeglądarkę więc wysyłamy max-age: 100
> - Firefox wysyła do CMS if-modified-since z datą 2 dni wstecz i nie sposób
> jest dowiedzieć się z tego nagłówka po stronie CMS, że max-age był ustawiony
> na 100 i że w konsekwencji należy wysłać status 200 zamiast 304.
> Jak w związku z tym dowiedzieć się po stronie CMS, że minęło już te 100 sekund
> od pobrania skoro przeglądarka nie informuje o tym?
> Rezygnacja z last-modified (chyba) nie wchodzi w grę bo z tego co pamiętam, w
> którejś z przeglądarek dokument przestaje być cache'owany. Dawno temu
> przerabiałem zarządzenia cach'em i już zatarły mi się w pamięci te niuanse.
Ale nie powinno Cię interesować jaki max-age był ustawiony. Jeśli dostajesz
request z nagłówkiem if-modified-since, powinieneś wysłać 304 jeśli nie było
modyfikacji od tej daty/godziny, lub 200 jeśli takie modyfikacje były.
--
Grzesiek
-
7. Data: 2010-11-19 18:09:42
Temat: Re: Jak działa nagłówek max-age?
Od: Paweł Piskorz <n...@p...nie?>
On 2010-11-19 15:56, Marek wrote:
> W dniu 2010-11-19 13:59, Paweł Piskorz pisze:
>>
>> Użyj Expires.
>
> Ten nagłówek nie nadaje się gdyż wyznacza on datę bezwzględną.
Nie wiem w czym go ustawiasz, ale na prawdę nie jest tak trudno dodać
100 sekund do bieżącej daty.
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
-
8. Data: 2010-11-19 18:49:11
Temat: Re: Jak działa nagłówek max-age?
Od: Marek <b...@e...com>
W dniu 2010-11-19 18:06, gefek pisze:
> Ale nie powinno Cię interesować jaki max-age był ustawiony. Jeśli
> dostajesz request z nagłówkiem if-modified-since, powinieneś wysłać 304
> jeśli nie było modyfikacji od tej daty/godziny, lub 200 jeśli takie
> modyfikacje były.
No właśnie i tu się problem zasadza... Wysyłam nagłówki do firefoxa
takie jak opisałem: czyli data modyfikacji załóżmy 2 dni temu
(last-modified) i max-age: 100. Załóżmy, że ktoś wchodzi na stronę.
Następuje jej odczyt z kodem 200. Zamykamy przeglądarkę i otwieramy ją
po 100 sekundach na tejże stronie. No i co się dzieje? Firefox wysyła do
serwera If-Modified-Since z datą sprzed 2 dni. Serwer wysyła zatem 304 -
i to byłoby ok przed upływem tych 100 sekund. Tymczasem w tych
okolicznościach spodziewalibyśmy się 200. Prawda? Nagłówek max-age: 100
został olany przez przeglądarkę. Kompletnie nic z nim nie zrobiła. Nie
dała znać serwerowi, że czas na aktualną wersję dokumentu.
-
9. Data: 2010-11-19 18:53:12
Temat: Re: Jak działa nagłówek max-age?
Od: porneL <n...@p...net>
On Fri, 19 Nov 2010 10:41:32 -0000, Marek <b...@e...com> wrote:
> - Firefox wysyła do CMS if-modified-since z datą 2 dni wstecz i nie
> sposób jest dowiedzieć się z tego nagłówka po stronie CMS, że max-age
> był ustawiony na 100 i że w konsekwencji należy wysłać status 200
> zamiast 304.
Tu ci się coś pomieszało. Nie musisz znać wartości z max-age. Odczytaj
datę z przysłaną w If-modified-since i jeżeli znana tobie aktualna data
ostatniej zmiany dokumentu jest nowsza, to 200, a jak nie, to 304. I tyle.
> Jak w związku z tym dowiedzieć się po stronie CMS, że minęło już te 100
> sekund od pobrania skoro przeglądarka nie informuje o tym?
Informuje cię o tym wykonując zapytanie(przed upływem 100 sekund po prostu
nie wykona zapytania).
--
http://pornel.net
this.author = new Geek("porneL");
-
10. Data: 2010-11-19 18:56:29
Temat: Re: Jak działa nagłówek max-age?
Od: porneL <n...@p...net>
On Fri, 19 Nov 2010 18:49:11 -0000, Marek <b...@e...com> wrote:
> W dniu 2010-11-19 18:06, gefek pisze:
>
>> Ale nie powinno Cię interesować jaki max-age był ustawiony. Jeśli
>> dostajesz request z nagłówkiem if-modified-since, powinieneś wysłać 304
>> jeśli nie było modyfikacji od tej daty/godziny, lub 200 jeśli takie
>> modyfikacje były.
>
> No właśnie i tu się problem zasadza... Wysyłam nagłówki do firefoxa
> takie jak opisałem: czyli data modyfikacji załóżmy 2 dni temu
> (last-modified) i max-age: 100. Załóżmy, że ktoś wchodzi na stronę.
> Następuje jej odczyt z kodem 200. Zamykamy przeglądarkę i otwieramy ją
> po 100 sekundach na tejże stronie. No i co się dzieje? Firefox wysyła do
> serwera If-Modified-Since z datą sprzed 2 dni. Serwer wysyła zatem 304 -
> i to byłoby ok przed upływem tych 100 sekund. Tymczasem w tych
> okolicznościach spodziewalibyśmy się 200. Prawda? Nagłówek max-age: 100
> został olany przez przeglądarkę. Kompletnie nic z nim nie zrobiła. Nie
> dała znać serwerowi, że czas na aktualną wersję dokumentu.
Jeżeli dokument został zmodyfikowany 2 dni temu, to jest taki sam teraz
jak i 100 sekund temu.
Jeżeli przeglądarka ma dokument z datą sprzed 2ch dni, a ty go
zmodyfikowałeś wczoraj, to zauważysz, że musisz wysłać nowy.
Chyba, że wysyłasz zupełnie fikcyjny last-modified. Wtedy to twój
problem...
--
http://pornel.net
this.author = new Geek("porneL");