von suchmaschienen und Browsern i.V.m. CGI-seiten
WauWau
- programmiertechnik
hallo,
der Titel ist meiner Meinung nach etwas komisch, also lasst euch einfach überraschen, was ich sagen will *bg* ;-):
Nehmen wir mal Beispiel 1: Der Browser bekommt von einem Webserver andauernd dynamisch generierte Dateien zurückgeliefert, z.B. PHP-Dateien (es könnte genausogut Perl oder C oder sonstirgendwas sein, hauptsache es ist dynamisch auf dem server generiert, im Titel habe ich dafür nunmal "CGI" gesagt, da könnte man notfalls noch "API" "drunterfasssen" [wie gesagt: notfalls ;-)], etc...), die bei jedem Aufruf den gleichen Inhalt zurückgeben, also nix dynamisches (es könnten ja lediglich per readfile() statische dateien eingebunden werden, ähnlich wie bei ssi <!--#include virutal ---> oder wie das heißt.... Frage: Der Browser fragt den Server ja idR., ob er die neuste Version der Datei hat, hat er das, sendet der Server Code 304 - Not Modified zurück [wunderbar aus'm webalizer rauskopiert *g*], und entsprechend wird an traffic eingespart, und alle beteiligten freuen sich *bg* - nun aber woher soll der Apache wissen, ob der Browser bei einer "dynamischen Datei" den aktuellen inhalt hat - wobei es ja nicht mal der apache weiß? Also sendet der Apache hier also immer die angeforderte Datei per 200 zurück, oder wie? Das würde sich nämlich z.B. schlecht für dynamisch erstellte Bilder, siehe sowas wie [pref:t=73713&m=424604], da hier immer neu geladen werden muss, was für alle seiten schlecht ist 8[
Beispiel zwei: Suchmaschienen. Hier benutzen wir mal ein anderes Beispiel, was irgendwie noch treffender ist: CMS ohne irgendwelchen mod_rewrite-teilen vom apache, also alles schön in einer datei, mit nem dicken fetten query-string hinten dran. Afaik habe ich bei Google noch nie eine datei mehreremale mit nem get-string hingeschrieben aufgelistet gesehen - wie handelt google also hierbei bei sachen, wo eine Datei gaaaanz viele Inhalte zurückliefern kann?
btw kann das natürlich auch alles andere als cms sein... foren, gästebücher, newssysteme, usw. - hierbei muss eben alles in einer datei sein, dann haben wir das problem -- oder??
Vielen dank beim antworten :-)
WauWau
Hi,
der Titel ist meiner Meinung nach etwas komisch,
ja, denn es gibt keine Suchmaschienen. Im Gegensatz zu Suchmaschinen ;-)
Der Browser fragt den Server ja idR., ob er die neuste Version der Datei hat, hat er das, sendet der Server Code 304 - Not Modified zurück [wunderbar aus'm webalizer rauskopiert *g*], und entsprechend wird an traffic eingespart, und alle beteiligten freuen sich *bg* - nun aber woher soll der Apache wissen, ob der Browser bei einer "dynamischen Datei" den aktuellen inhalt hat - wobei es ja nicht mal der apache weiß? Also sendet der Apache hier also immer die angeforderte Datei per 200 zurück, oder wie?
Er ruft das Script auf. Es ist Aufgabe des Scripts, festzustellen, ob die Information noch aktuell ist (304) oder nicht mehr (200, komplette Seite).
Der Client liefert in dem Fall ja auch Datum/Uhrzeit "seiner" Version der Ressource mit - anhand dieses Zeitstempels kann das Script entscheiden.
Der Apache entscheidet das nur bei statischem Inhalt (anhand des Dateidatums IIRC).
cu,
Andreas
Hi Andreas,
der Titel ist meiner Meinung nach etwas komisch,
ja, denn es gibt keine Suchmaschienen. Im Gegensatz zu Suchmaschinen ;-)
immer wieder diese dummen rechtschreibfehler ;-)
Er ruft das Script auf. Es ist Aufgabe des Scripts, festzustellen, ob die Information noch aktuell ist (304) oder nicht mehr (200, komplette Seite).
Der Client liefert in dem Fall ja auch Datum/Uhrzeit "seiner" Version der Ressource mit - anhand dieses Zeitstempels kann das Script entscheiden.
Der Apache entscheidet das nur bei statischem Inhalt (anhand des Dateidatums IIRC).
Und woher weiß der Apache, ob der Browser den Inhalt hat, den der Script sonst zurückgeben würde?#
Wauwau
Hi,
Der Client liefert in dem Fall ja auch Datum/Uhrzeit "seiner" Version der Ressource mit - anhand dieses Zeitstempels kann das Script entscheiden.
Der Apache entscheidet das nur bei statischem Inhalt (anhand des Dateidatums IIRC).Und woher weiß der Apache, ob der Browser den Inhalt hat, den der Script sonst zurückgeben würde?#
Bei einem Script ist es Aufgabe des Scripts, dies zu entscheiden, nicht Aufgabe des Apache.
Der Apache macht das nur bei statischen Dateien.
Wie bereits geschrieben, der Client (Browser/Suchmaschine/...) liefert ggf. den Zeitstempel mit im Request-Header.
cu,
Andreas