Andreas van Loock: EXPLORER-Cache zum Teufel damit hier ist die Lösung !!!

Hi Leute,

wen Ärgert es nie, wenn man mal wieder vor die berüchtigten Cache-Probs der gängigen Browser
steht ?

Da ich täglich mit der Materie zutun habe und fast ausschließ in Perl programmiere, kenne ich das
Cache - Problem. (Welches für mich keines mehr ist)

Dafür gibt es aber eine Lösung welche ich an dieser Stelle veröffentlichen möchte.

Diese Lösung funktioniert sogar dann wenn im Explorer der Cache auf :

z.b. 300 MB steht und die Option -> NIEMALS aktiviert ist

Diese Lösung funktioniert nur aus einem Perl-Script heraus....

Für das folgende Script muss auf dem Webserver CGI.pm installiert sein, wenn nicht
sollte man ein Verzeichnis mit dem Namen : MIME erstellen und dort das CGI.pm hinein copieren.
CGI.pm bekommt man unter folgender Adresse :

http://www.genome.wi.mit.edu/ftp/pub/software/WWW/cgi_docs.html

oder direkt per FTP

ftp://ftp-genome.wi.mit.edu/pub/software/WWW/

und hier das Script :

#!/usr/bin/perl

use CGI qw/:standard/;
    
$query = new CGI;
$doc = $query->header(-type=>'Text/HTML',
                                    -Expires=>'now',
                                    -Cache-Control=>'no-cache',
                                    -Cache-Control=>'no-store',
                                    -Pragma=>'no-cache');
print $doc;
($sec) =localtime(time);
print $sec;

<b>Erläuterung</b>

use CGI qw/:standard/; #--> lädt die CGI.pm Routinen / Standartroutinen

$query = new CGI; #--> Erzeugt ein neues CGI-Objekt

#--> Erzeugen eines neuen HTML Headers

$doc = $query->header(-type=>'Text/HTML', #--> Document soll ein Text/Html Docu. sein
                                    -Expires=>'now'); #--> Ablaufzeit der Seite im Cache ? direkt / jetzt

print $doc; #--> HTML-Header ausgeben

($sec) =localtime(time); #--> hole aktuelle Sekundenzeit
print $sec; #--> gebe aktuelle Sekundenzeit aus.

Ich hoffe jeden mit diesem Script helfen zukönnen, weil ich schon mit diesem Probs. -> burnouts hatte :-)

Angewendet habe ich diese Routine auf www.the-gothic-world.de im Forum und Gastbuch.

Es funktioniert tatsächlich !!!

Über ein Feedback freue ich mich gerne !!!

Andreas van Loock

  1. Moin,

    vielleicht noch eine Alternativ-Lösung, die
    für jeden jetzigen und zukünftigen Browser, der sich mit dem
    Cache uneinsichtig zeigt, funktioniert:

    Man hängt an jede URL, die auf ein Perl-Skript zeigt
    einfach eine Zufallszahl oder eine fortlaufende Nummer dran,
    z.B. so:

    statt

    www.meine-domain.de/cgi-bin/bazong.pl

    verlinkt man auf
      
       www.meine-domain.de/cgi-bin/bazong.pl/4711

    ^^^^ hier fortlaufende Nummer
                                                  oder Zufallszahl o.Ä.

    Der Web-Server liefert nun trotzdem das Resultat aus bazong.pl
    (und die Zufallszahl in PATH_INFO), was zumindest für
    Skript-Dateien so funktioniert. Dagegen "denkt" der Webbrowser
    daß jedesmal ein neues Dokument angefordert wurde, weil
    die URL .../bazong.pl/4711 ja theoretisch wirklich auch auf
    eine Datei namens 4711 verweisen könnte.

    Bis dannundwann

    Andreas

  2. Hi :-)
    Du, wenn das wirklich funktioniert,
    dann bist Du ein Genie !!

    Heißt das also,
    das da kaum jemamd Bilder etc. von meiner Seite klauen könnte,
    wenn ich z.B. die rechte Maustaste DEaktiviere und der Cache auch nicht mehr funktioniert ??

    Yours
    Hans

    1. Hallo Hans

      Heißt das also,
      das da kaum jemamd Bilder etc. von meiner Seite klauen könnte,
      wenn ich z.B. die rechte Maustaste DEaktiviere und der Cache auch nicht mehr funktioniert ??

      Nein

      Das file ist zwar nicht mehr im cach, aber egal wie du meinen Browser auch verstümmelst,
      mit nem 3Zeilen-Perlscript kann ich deine Seite immer noch klauen.

      Tschüs

      Daniel