[http] caching troubles achter proxy

Pagina: 1
Acties:
  • 275 views sinds 30-01-2008
  • Reageer

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Topicstarter
Op mijn eigen ontwikkelde forum heb ik wat problemen met de http caching bij het gebruik van een proxy.

Op het forum heeft eenieder eigen rechten en krijgt gepersonaliseerde pagina's.

Er gebeuren 2 dingen:
- Van achter een proxy moet een user een harde refresh geven op een pagina ge-update te krijgen.
- Als 2 users achter dezelfde proxy zitten krijgen ze soms pagina's van elkaar te zien.

Wat ik uit diverse documentatie begrijp zou een expires setting in het verleden en een cache-control op no-cache en een must-revalidate voldoende moeten zijn om de dynamische pagina's niet te laten cachen.

Omdat dit niet bleek te werken heb ik ook geexperimenteerd met andere directives.

De header die ik meegeef ziet er op het ogenblik zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
HTTP/1.1 200 OK
Date: Fri, 12 Apr 2002 12:30:46 GMT
Server: Oracle HTTP Server Powered by Apache/1.3.12 (Win32) ApacheJServ/1.1 mod_ssl/2.6.4 OpenSSL/0.9.5a mod_perl/1.24
Content-Length: 14176
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Fri, 12 Apr 2002 13:30:47 GMT
Pragma: no-cache
Cache-Control: no-cache, no-store, private, must-revalidate
Cache-Control: post-check=0, pre-check=0
Set-Cookie: ses=12-04-2002 14:30:47
Connection: close
Content-Type: text/html; charset=WINDOWS-1252

Bij een niet zo willekeurige andere site waar het wel goed gaat (met dezelfde proxy) ziet de header er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
HTTP/1.1 200 OK
Date: Fri, 12 Apr 2002 12:31:47 GMT
Server: Apache/1.3.23 (Unix) PHP/4.1.2
X-Powered-By: PHP/4.1.2
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Fri, 12 Apr 2002 12:31:48 GMT
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: user=0; domain=gathering.tweakers.net; path=/; expires=-1
Set-Cookie: sessid=xxxxxxxxxxxxxxxxxxxxxxxxx; domain=gathering.tweakers.net; path=/; expires=Saturday, 12-Apr-2003 14:31:48 GMT
Connection: close
Content-Type: text/html; charset=iso-8859-15

Voor de zekerheid er nog even bij vermelden: De extra cache-control directives heb ik al een keer weggelaten.

Heeft er iemand een idee waar dit in kan zitten?

Who is John Galt?


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

ik zie 2x de Cache-Control headers bij jou? of bedoel je dat, met 'heb ik al een keer weggelaten' ?

Klaar voor een nieuwe uitdaging.


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Topicstarter
Op vrijdag 12 april 2002 15:22 schreef chem het volgende:
ik zie 2x de Cache-Control headers bij jou? of bedoel je dat, met 'heb ik al een keer weggelaten' ?
Ja, dit is een beetje het resultaat van alles proberen ;)
Een poging met de Cache control regel zoals die van deze site had ik eerder al gedaan.

Who is John Galt?


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

zelf gebruik ik bij sommige pagina's juist expres een 304 header:
PHP:
1
<?    /**    *    @version 1.3.9    */    function headercheck($lastmodified)    {        GLOBAL $HTTP_IF_MODIFIED_SINCE;        if((int)$lastmodified > 0)        {            $gmt_mtime = gmdate('D, d M Y H:i:s', (int)$lastmodified) . ' GMT';            @header("Cache-Control: post-check=1,pre-check=2,must-revalidate");            @header("Last-Modified: " . $gmt_mtime);            @header("Expires: " . $gmt_mtime);            $explode = explode(';',$HTTP_IF_MODIFIED_SINCE);            $HTTP_IF_MODIFIED_SINCE = $explode[0];            if ($HTTP_IF_MODIFIED_SINCE == $gmt_mtime) {                header("HTTP/1.1 304 Not Modified");                exit;            }        }        return false;    }?>

Klaar voor een nieuwe uitdaging.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Er zijn proxies die expire dates e.d. gewoon fijn ignoren als de proxy verkeerd wordt ingesteld. De enige methode om dit echt te voorkomen is om een willekeurig querystring mee te geven die bij elke aanroep veranderd.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Topicstarter
Op vrijdag 12 april 2002 17:14 schreef dusty het volgende:
Er zijn proxies die expire dates e.d. gewoon fijn ignoren als de proxy verkeerd wordt ingesteld. De enige methode om dit echt te voorkomen is om een willekeurig querystring mee te geven die bij elke aanroep veranderd.
Heb ik ook gehoord inderdaad, maar in dit geval werkt het dus met GoT goed.
Dus ik zou zeggen dan moet het bij mij ook lukken?

Wat me wel opvalt is dat de last-modified date bij GoT in het verleden ligt.
Ik gebruik gewoon de systeemdatum, geconverteerd naar GMT.

Zou dat verschil uit maken?

Who is John Galt?


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 12 april 2002 17:40 schreef justmental het volgende:
[..]
Zou dat verschil uit maken?
Ja dat maakt verschil.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Topicstarter
Op vrijdag 12 april 2002 17:44 schreef dusty het volgende:
Ja dat maakt verschil.
Als jij het zegt ;)
Ik zal het eens proberen.

Helaas kan ik het volgende week maandag pas weer testen.

Who is John Galt?


  • Mc.Boldy
  • Registratie: Januari 2000
  • Laatst online: 08-08 10:54

Mc.Boldy

Chopperfreak without chopper

Zo te merken heb je of nog niks veranderd of werkt het nog steeds niet. Kreeg hier net een page van ene mEntAl :? Ken je die :)

https://jobs.sap.com/search/?createNewAlert=false&q=&locationsearch=%27s-Hertogenbosch&optionsFacetsDD_department=&optionsFacetsDD_customfield3=&optionsFacetsDD_country=


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Topicstarter
Op maandag 15 april 2002 13:55 schreef McBoldy het volgende:
Zo te merken heb je of nog niks veranderd of werkt het nog steeds niet. Kreeg hier net een page van ene mEntAl :? Ken je die :)
Ik heb het wel aangepast in de source, maar ik ben bang dat ik vergeten ben deze te installeren :o
Morgen meer.

Who is John Galt?


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Topicstarter
Het terugzetten van de last-modified tijd heeft helaas niet geholpen :'(

De http header ziet er nu zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
HTTP/1.1 200 OK
Date: Tue, 16 Apr 2002 12:11:06 GMT
Server: Oracle HTTP Server Powered by Apache/1.3.12 (Win32) ApacheJServ/1.1 mod_ssl/2.6.4 OpenSSL/0.9.5a mod_perl/1.24
Content-Length: 14289
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Tue, 16 Apr 2002 12:11:06 GMT
Pragma: no-cache
Cache-Control: no-cache, no-store, private, must-revalidate
Set-Cookie: ses=16-04-2002 14:11:06
Connection: close
Content-Type: text/html; charset=WINDOWS-1252

De 2e regel cache control opties heb ik dus ook maar weggehaald.

Iemand nog een ander idee?

Who is John Galt?

Pagina: 1