Moin Horst (Hotte oder wie auch immer - entscheide dich doch mal für einen Nick Rolf)!
Ich schreib einfach mal, wie ich das mache: Ein Request erzeugt serverseitig die Variable REQUEST_URI. Das ist bei mir der Primärschlüssel in 2 Tabellen, die heißen bei mir "public" und "content".
Als Erstes schaut das Script, was per rewrite angezogen wird, ob es für REQUEST_URI in der Tabelle "public" einen Eintrag gibt und schaut auch nach Last-Modified sowie nach weiteren Attributen die für die angeforderte Seite in Tabelle "public" hinterlegt sind. Daraus ergeben sich die Stati 200 oder 410 oder 304.
Status: 200 OK
Mein Script holt für REQUEST_URI den body aus der Tabelle "content" und liefert die Seite komplett neu aus. Im Header wird Last-Modified mitgegebenStatus: 304 Not Modified
Der Webserver bricht das Senden der Seite ab, da bei Besucher im Cache. Der vom Browser mitgegebene Last-Modified stimmt mit dem Wert in Table "public" überein. Mein Script sendet ebenfalls einen 304 an den Webserver und beendet sich ohne die Tabelle "content" anzufassen.
Ja, stimmt.
Diese Info sollte ich auch noch mit in meine Tabelle packen, damit gar keine weiteren Aktionen nötig sind.
Status: 410
Die angeforderte URL ist nicht in Tabelle "public". Mein Script sendet einen 410 Gone und beendet sich.Status: 404
Wird vom Webserver selbst abgehandelt, kommt gar nicht erst zu Rewrite.
Hmmm ..., wie machst du das?
Bei mir wird jeder Request, der nicht auf ein real existierendes Verzeichnis oder eine Datei abzielt ja auf jeden Fall erstmal per rewrite an mein Index-Script umgeleitet. Und erst der Look-Up in meiner URL-Tabelle bringt dann Klarheit, ob der Request erfüllt werden kann oder nicht.
Wobei ich diesen Umstand dann auch dahingehend nutze, um dem User gleich auch noch auf der 404er Antwortseite etwas wie "Meinten Sie vlt. xyz?" mit anzubieten.
Status: 302/301
Benutze ich gerne in diversen anderen reinen CGI-Scripts für das Transit-State Model.
Ich nix CGI.
Einen 302er brauche ich vermutlich auch eher so gut wie nie. Einzig der 301er ist eben u.U. erforderlich.
Schönes Wochenende,
Danke, wünsche ich dir auch.
Gruß Gunther