zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > Knowledge Base
Seite neu laden PHP-session + ETag (Header)

Antwort
 
LinkBack Themen-Optionen Ansicht
  #11 (permalink)  
Alt 26.04.2005, 15:53
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

<offtopic>
Zusätzliche Information:

Conditional GET mit PHP, d.h. einen PHP gesteuerten HTTP/1.x 304 ist mit jeder PHP-Datei möglich. Es muß nicht die gesamte Ausgabe in einem $String gesammelt werden, es gibt in PHP auch eine Ausgabenpufferung mit op_start() und somit die Möglichkeit einer entsprechenden Behandlung des ETag.

Ich wundere mich nur warum dieses Thema keinen Zuspruch findet, andererseits aber in einigen THREADs über Komprimierung, Dateigrößen und white-spaces "wild" diskutiert wird.

so long
</offtopic>
__________________
</ulle>
Mit Zitat antworten
Sponsored Links
  #12 (permalink)  
Alt 26.04.2005, 16:26
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.956
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

In der Compress.php aus PEAR kann man sehr schön sehen, wie GZIP und E-Tag angewendet werden. Allerdings wird dort auch ein nicht zu unterschätzender Fehler gemacht. Der Wert für E-Tag wird nur als MD5-Hash aus dem Inhalt der Datei ermittelt. Wichtig ist jedoch, dass die Header Vary und Content-Encoding mit zum Inhalt genommen werden und daraus dann der MD5-Hash ermittelt wird. Ansonsten kann es passieren, dass ein nicht GZIP-fähiger Client trotzdem komprimierte Inhalte über einen Proxy bekommt.

@ulle, zu deiner Frage mit Content-Length und GZIP: das ist das gleiche wie bei unkomprimierten Inhalten. Wichtig ist halt nur, dass Content-Length die Größe des komprimierten Inhalts zeigt.

Zu den Einstellungen von Apache schau ich mal nach.

Was Google angeht, mir ist nicht bekannt, dass Google einen E-Tag beachtet. Bei mir ruft er jedenfalls immer die komplette Datei ab. Ich vermute mal, dass Google nur Last-Modified erkennt und einen If-Modified-Since Request sendet. Zumindest habe ich im Logfile die einzigen 304er von Google nur bei statischen Dateien. Bei meinen PHP-Scripten kann ich momentan nicht auf If-Modified-Since reagieren.

Dass Google deine CSS-Dateien läd, verwundert mich ein wenig. Die fasst er bei mir überhaupt nicht an.

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
Sponsored Links
  #13 (permalink)  
Alt 26.04.2005, 16:34
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Netspy
Dass Google deine CSS-Dateien läd, verwundert mich ein wenig. Die fasst er bei mir überhaupt nicht an.
Naja, im Google-Cache ist zumindest Deine CSS vorhanden -oder?

Zitat:
Zitat von Netspy
Wichtig ist halt nur, dass Content-Length die Größe des komprimierten Inhalts zeigt.
Würde bedeuten das beim Einsetzen des Content-Length durch PHP ein g-zip per Apache-Module fehlerhaft wäre ?!
__________________
</ulle>
Mit Zitat antworten
  #14 (permalink)  
Alt 26.04.2005, 16:40
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.956
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von ulle
Zitat:
Zitat von Netspy
Dass Google deine CSS-Dateien läd, verwundert mich ein wenig. Die fasst er bei mir überhaupt nicht an.
Naja, im Google-Cache ist zumindest Deine CSS vorhanden -oder?
Nö, die werden ganz normal von der Originalseite geladen. Google pack dazu nur ein <BASE HREF="http://www.ego4u.de/"> an den Anfang der Seite. Schau mal in den Quelltext der Cache-Seite.

Zitat:
Zitat von ulle
Zitat:
Zitat von Netspy
Wichtig ist halt nur, dass Content-Length die Größe des komprimierten Inhalts zeigt.
Würde bedeuten das beim Einsetzen des Content-Length durch PHP ein g-zip per Apache-Module fehlerhaft wäre ?!
Ich verstehe nicht ganz, was du damit meinst.

Es kann durchaus Probleme geben, wenn PHP und der Webserver versuchen das Dokument zu komprimieren, weshalb man dann bspw. die Komprimierung von PHP-Dateien bei mod_gzip pder mod_deflate besser deaktivieren sollte.

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #15 (permalink)  
Alt 26.04.2005, 21:52
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Netspy
In der Compress.php aus PEAR kann man sehr schön sehen, wie GZIP und E-Tag angewendet werden
Aus welchem PEAR::Package hast Du dieses Script?

Zitat:
Zitat von Netspy
Nö, die werden ganz normal von der Originalseite geladen.
Hmm..., ich habe eine kleines Projekt mit sehr hoher Suchmaschinen Besuchfrequenz. Dort wird in der Statistik die externe CSS-Datei am 3. häufigsten aufgerufen. Wie soll den sonst dieser Traffic auf die CSS-Datei entstehen. Seltsam, da muß ich noch mal genau schauen.

Zitat:
Zitat von Netspy
Ich verstehe nicht ganz, was du damit meinst.

Es kann durchaus Probleme geben, wenn PHP und der Webserver versuchen das Dokument zu komprimieren,........
Mit Sicherheit ergibt eine doppelte Komprimierung Probleme, aber das hatte ich nicht gemeint.

Zitat:
Zitat von Netspy
Wichtig ist halt nur, dass Content-Length die Größe des komprimierten Inhalts zeigt.
Ich meinte wenn ich nun wie oben die Content-Length per PHP ermitteln würde, den Header entsprechend gesetzen habe, dann könnte ich wohl kaum eine Komprimierung per Apache-Modul (mod_gzip) einsetzen, da ja dann die Content-Length nicht mehr passt.
Was mich zu dem Schluß kommen läßt eine Content-Length niemals per PHP zu setzen, da ja ein Projekt jederzeit auf einen anderen Server verlagert werden könnte, und dann bedenkt bestimmt niemand den per PHP gesetzten Header für die Content-Length.
__________________
</ulle>
Mit Zitat antworten
  #16 (permalink)  
Alt 26.04.2005, 22:16
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.956
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von ulle
Aus welchem PEAR::Package hast Du dieses Script?
HTTP aber die Compress.php ist da wohl nicht mehr drin. Deshalb hatte ich sie auch mit angehangen.

Ich selbst nutze meine eigene erweiterte HTTP-Klasse, die aber ursprünglich aus der Compress.php entstanden ist. Deshalb hatte ich das Original auch noch auf der Platte.

Zitat:
Zitat von ulle
Hmm..., ich habe eine kleines Projekt mit sehr hoher Suchmaschinen Besuchfrequenz. Dort wird in der Statistik die externe CSS-Datei am 3. häufigsten aufgerufen. Wie soll den sonst dieser Traffic auf die CSS-Datei entstehen. Seltsam, da muß ich noch mal genau schauen.
Das kann leicht auch ohne Suchmaschinen passieren. Bei einer Seite mit vielen Unterseiten verteilen sich ja die Aufrufe auf alle Seiten. Die CSS-Datei ist aber meist gleich und steht deshalb auch oft ziemlich weit oben auf der Liste.

Ich hab gerade mal die heutigen Logfiles von ego4u angeschaut und da waren bei 1147 Googlebot, 1205 Yahoo! Slurp und 367 msnbot Zugriffen keine einzige CSS-Datei mit dabei, die einer der 3 Bots geladen hat.

Zitat:
Zitat von ulle
Mit Sicherheit ergibt eine doppelte Komprimierung Probleme, aber das hatte ich nicht gemeint.
Kann sein aber wenn die Module gut geschrieben sind, sollten die eigentlich schon komprimierte Dokumente nicht noch mal komprimieren.

Zitat:
Zitat von ulle
Ich meinte wenn ich nun wie oben die Content-Length per PHP ermitteln würde, den Header entsprechend gesetzen habe, dann könnte ich wohl kaum eine Komprimierung per Apache-Modul (mod_gzip) einsetzen, da ja dann die Content-Length nicht mehr passt.
Was mich zu dem Schluß kommen läßt eine Content-Length niemals per PHP zu setzen, da ja ein Projekt jederzeit auf einen anderen Server verlagert werden könnte, und dann bedenkt bestimmt niemand den per PHP gesetzten Header für die Content-Length.
Da sehe ich keine Probleme. Wenn ein Apache-Module komprimiert, wird es auch Content-Length selbst setzen und deinen mit PHP geschriebenen Wert überschreiben.

Wenn du Scripte weitergeben willst, solltest du Content-Length immer mit setzen. Allerdings sollte sich die GZIP-Komprimierung per Konfigurationsdatei deaktivieren lassen, falls es doch auf dem einen oder anderen Server Probleme gibt.

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #17 (permalink)  
Alt 24.06.2005, 12:52
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.735
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Gibt es eigentlich eine Übersicht der Browser, die die HTTP-Header-Felder „If-Modified-Since“ bzw. „If-None-Match“ senden?
Mit Zitat antworten
  #18 (permalink)  
Alt 24.06.2005, 13:41
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard

Hmmm - Ist das nicht egal, falls der CLIENT die geforderten Infomationen nicht sendet wird er behandelt als ob dieser zum ersten mal anfragt:

PHP-Code:
if ( isset($_SERVER['HTTP_IF_NONE_MATCH']) ) { 
    
   if ( 
$_SERVER['HTTP_IF_NONE_MATCH'] == $etag ) { 
       
      
header('HTTP/1.0 304 Not Modified'); 
      exit(); 
   } 

__________________
</ulle>
Mit Zitat antworten
  #19 (permalink)  
Alt 24.06.2005, 13:58
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.735
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Zitat:
Ist das nicht egal, falls der CLIENT die geforderten Infomationen nicht sendet wird er behandelt als ob dieser zum ersten mal anfragt […]
Klar ist das egal. Nur meine Frage war, ob sich bisher schon jemand die Müche gemacht hat, zu prüfen, welche Browser diese Informationen unter welchen Bedingungen senden.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache, IIS, PHP und Session Cookie laborix Serveradministration und serverseitige Scripte 10 18.12.2011 01:42
PHP MySQL - Anfängerfrage: Empfehlung GET, POST, SESSION oder Kombination? DerJeff Serveradministration und serverseitige Scripte 9 07.06.2011 11:01
header verrutscht... weblearner CSS 6 03.12.2008 19:34
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 18:09
PHP Header Problem dan_23 Serveradministration und serverseitige Scripte 17 05.03.2008 14:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:41 Uhr.