Zur Info: "Prefetchende" Browser

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Gast200921

Zur Info: "Prefetchende" Browser

Beitrag von Gast200921 »

Hallo phpBBler,

ich stand neulich vor einem Bugreport, den ich 'auf-Teufel-komm-raus' nicht reproduzieren konnte. Die Quelle des Bugreports war in diesem Fall jedoch absolut vertrauenswürdig, so daß da was dran sein musste....
:roll:
Ein User in meinem Forum beschwerte sich, daß immer gleich zwei Threads als gelesen markiert werden, auch wenn er lediglich einen davon liest bzw. beantwortet. Ich habe das gesamte Cookie-Handling des Forums auf den Kopf gestellt, mit den Original-Dateien verglichen und bin nicht fündig geworden.

Schlußendlich habe ich es entdeckt: Netscape 7, Mozilla 1.2ff und Opera 7ff verfolgen Links und laden sie im Hintergrund. :roll: Es lag also kein Fehler vor, der Thread ist tatsächlich vom Client abgerufen worden. Augelöst wird dies durch die NavBar-Links im Code von phpBB.

Ist also alles eine absulolut nachvollziehbare Geschichte, aber wenn man zum ersten Mal damit konfrontiert wird (gerade, wenn man selber IE-User ist), dann kann einem das schon arges Kopfzerbrechen bereiten.

Man kann das Prefetching dieser o.g. Browser als User übrigens abstellen. Alternativ könnte man als phpBB-Webmaster auch darauf reagieren und Prefetching-Anfragen erst gar nicht zulassen bzw. gesondert behandeln. Erkennen kann man diese dadurch, daß sie im HTTP-Header das Flag "X-moz: prefetch" tragen. (Aber Vorsicht: Dieses Flag ist noch nicht in irgendeinem Standard vertreten und könnte sich von einem Tag auf den anderen ändern.)

Diese Zeilen nur zur Info, falls Ihr vor einem ähnlichen "Bugreport" steht. :wink: Weitere Infos z.B. unter der folgenden Adresse:
http://www.mozilla.org/projects/netlib/ ... g_FAQ.html


Grüße,
cyberWolf
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

URLs with a query string are not prefetched. This is done because such URLs often result in documents that cannot be reused out of the browser's cache, so prefetching them often has little benefit. We found that some existing sites utilize the <link rel="next"> tag with URLs containing query strings to reference the next document in a series of documents. Bugzilla is an example of such a site that does this, and it turns out that the Bugzilla bug reports are not cachable, so prefetching these URLs would nearly double the load on poor Bugzilla! It's easy to imagine other sites being designed like Bugzilla, so we explicitly do not prefetch URLs with query strings
Das heißt doch daß das so wie du es beschrieben hast eigentlich nicht vorkommen dürfte - die phpBB viewtopic/viewforum URLs haben schliesslich einen Query String :roll:
Gast200921

Beitrag von Gast200921 »

...nicht, wenn man ein vollständiges mod_rewrite am Laufen hat. :wink: Ich gebe ja zu: Diese Problematik ist sehr speziell und nur wenige werden davon betroffen sein. Aber ich war so überrascht, daß ich das Bedürfnis hatte, dies mit Euch zu teilen.
:D


Grüße,
cyberWolf
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Wollen wir das mal präzisieren:

Von diesem "Bug" sind nur phpBB-Installationen betroffen, bei denen der Webserver so konfiguriert ist, das URL's nicht wie gewohnt mit "Querys" arbeiten (erkennbar an ? und & in der URL), sondern mittels bestimmter Mechanismen (im Falle des Apache Webserver mod_rewrite) so aussehen wie eine Pfadangabe.

Bspw. http://www.forum.de/viewtopic/12345 statt http://www.forum.de/viewtopic.php?t=12345

Normale Webserver-Installationen betrifft das nicht.

Dieses "Feature" kann nur vom Hoster konfiguriert werden, Shared-Hosting-Kunden können sich beruhigt zurücklehen.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
m0bby
Mitglied
Beiträge: 82
Registriert: 23.03.2004 13:19
Kontaktdaten:

Beitrag von m0bby »

Argh,
diesen Thread hier hätte ich mal eher finden sollen! :evil:
Stattdessen habe ich ihn sozusagen als "reverse lookup" gefunden. Sprich, nachdem ich wusste wonach ich suchen muss.

Hintergrund. Ich habe den "Unread Post Information to Database (UPItoDB)" MOD und den "Short URLs" MOD zusammen installiert. Und dabei tritt genau der von cyberWolf beschriebene Fehler auf, dass immer gleich zwei Threads als gelesen markiert werden.
Ich habe mir fast alle Zähne daran ausgebissen, die Ursache zu finden. Bis ich dann nur noch die Möglichkeit übrig blieb, dass der Browser die Folgeseite im Hintergrund vorausladen muss. Eine andere Möglichkeit blieb eigentlich nicht mehr.
Ich habe das Problem gelöst, indem ich in der viewtopic.php diese Zeilen gelöscht habe:

Code: Alles auswählen

$nav_links['prev'] = array(
	'url' => $view_prev_topic_url,
	'title' => $lang['View_previous_topic']
);
$nav_links['next'] = array(
	'url' => $view_next_topic_url,
	'title' => $lang['View_next_topic']
);

Eigentlich ganz einfach. Wenn man weiß, wonach man suchen muss...


Schönen Gruß
mObbY
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

itst hat geschrieben:Dieses "Feature" kann nur vom Hoster konfiguriert werden, Shared-Hosting-Kunden können sich beruhigt zurücklehen.
Es gibt ja auch noch die .htaccess :D

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Wenn mod_rewrite nicht installiert oder für Benutzer nicht freigeschaltet ist, nutzt Dir auch eine .htaccess nichts.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Antworten

Zurück zu „Coding & Technik“