Externe Dateien einbinden
Matze
- html
0 eddi0 Matze0 eddi0 Gunnar Bittersmann
0 Matze
Hallo!
Ich möchte bei mehreren Seiten mehrere Teile includen.
Jetzt würde ich aber vorher gern wissen welche Möglichkeit
am günstigsten ist.
Ist es günstig in einer eingebundenen Datei nochmal extra
einen Link auf eine externe .css Datei einzubinden?
Kann ich doch auch direkt in die eine Datei schreiben oder?
Ich weiß nun das include() nicht das sicherste ist, aber
ich auch readfile() nicht unbedingt nehmen will, weil ich
gern, soweit Möglich, auf PHP verzichten will.
Bis jetzt habe ich die SHTML - Variante mit #include virtual.
Mir geht es darum so sparsam wie Möglich in Sachen Traffic und
Webspace wegzukommen.
Grüße, Matze
Hallo Matze,
wenn es nur um das Einbinden StyleSheets geht, so ist ein separat abgelegter File zu bevorzugen. Auszug aus einem Serverlog:
IP Uhrzeit Datum Status Anfragezeile
82.190.118.232 19:27:57 28.03.06 200 "GET /default/chat/ HTTP/1.1"
82.190.118.232 19:27:57 28.03.06 200 "GET /default/chat/x.css HTTP/1.1"
82.190.118.232 19:28:02 28.03.06 200 "GET /default/chat/ HTTP/1.1"
82.190.118.232 19:28:02 28.03.06 304 "GET /default/chat/x.css HTTP/1.1"
Es wurde ein Dokument zweimal angeforder. Dieses Dokument referenziert auf einen separaten StyleSheet "x.css". Beim ersten Aufruf werden beide Datein ausgeliefer (Statuscode 200), beim zweiten mal wurde nur das Dokument ausgeliefert und "x.css" wurde mit Statuscode "304 Not Modified" _nicht_ ausgeliefert. Der Client weis also, daß er eine im Cache befindliche "x.css" heranzuziehen hat und es wird Traffic gespart. Selbes Verhalten ist auch für separate JavaScripte anwendbar.
Dies ist der Normalzustand zwischen einem Mozilla und einem Apachen. Der Apache kann aber noch konfiguriert werden, um Clients explizit anzuweisen, innerhalb einer bestimmten Zeitspanne immer gecachte Files zu verwenden. Lesenswert ist in diesem Zusammenhang ein Artikel von Christian Kruse: http://aktuell.de.selfhtml.org/artikel/server/apachetuning/index.html#a8
Darauf aufbauend sollte man sich ein Konzept überlegen, welche Dokumente|Images|StyleSheet|... selten geändert werden, um geziel diese mit modifizierten Headern zu servieren.
Gruß aus Berlin!
eddi
Hallo Eddi!
wenn es nur um das Einbinden StyleSheets geht, so ist ein separat abgelegter File zu bevorzugen.
Im Klartext, wenn ich meinetwegen #include virtual="x.bsp"
einbinde und darin mochmal ein link rel="stylesheet"
spar ich Traffic und das ist deswegen besser? Das leuchtet ein.
Wie verhällt es sich nun aber mit dem Rest, ich will ja noch
mehr als css einbinden. Kommt da eher include, readfile, #include
oder was auch immer in Frage? Was wäre da das günstigste?
Grüße, Matze
Re:
Wie verhällt es sich nun aber mit dem Rest, ich will ja noch
mehr als css einbinden. Kommt da eher include, readfile, #include
oder was auch immer in Frage? Was wäre da das günstigste?
Es wäre zur Beantwortung einfacher, wenn Du detailiert erklären würdest, was hierbei "der Rest" ist.
Gruß aus Berlin!
eddi
Hello out there!
spar ich Traffic und das ist deswegen besser? Das leuchtet ein.
ich will ja noch mehr als css einbinden. Kommt da eher include, readfile, #include oder was auch immer in Frage?
Dir leuchtet auch ein, dass serverseitige Includes absolut gar nichts mit Traffiv zu tun haben?
See ya up the road,
Gunnar
Hallo Gunnar,
Dir leuchtet auch ein, dass serverseitige Includes absolut gar nichts mit Traffiv zu tun haben?
auf HTTP-Ebene ist das schon interessant, da einem dynamisch generietem Dokument Header wie ETag und Last-Modified (u. A.) fehlen (oder über komplexe Routinen erstellt werden müßten).
Gruß aus Berlin!
eddi
Hallo nochmal!
Ihr habt in meiner ersten Frage aber schon den letzten
Satz gelesen?
Hier nochmal:
Mir geht es darum so sparsam wie Möglich in Sachen Traffic und
Webspace wegzukommen.
Traffic hätte ich jetzt in Sachen CSS abgehackt, Danke.
Was Webspace angeht sind Serverseitige include - Scripte
meiner Erfahrung nach dann wieder sehr wohl sinnvoll.
Grüße, Matze
Hallo,
wenn ich es richtig verstanden habe, ist SSI und PHP am Start. Ist PHP mit --with-zlib konfiguriert worden? Wenn ja, wie sieht die Runtime-Konfiguration dieser Erweiterung aus? Bietet der Server mod_defalte?
Werde bitte konkret!
Gruß aus Berlin!
eddi
Hallo Eddi!
Ja, ich habe PHP, SSI und auch CGI.
--with-zlib ja, mod_defalte konnte ich nicht finden.
Was willst du zur Runtimekonfiguration wissen?
Ich habe eine phpinfo() Datei.
Mir geht es doch nur darum welche Form der
Einbindung am günstigsten/sichersten ist
und ob man HTML Teile (ohne PHP-Script)
ähnlich den CSS-Dateien einbinden kann, sodass
sie auch nur einmal geladen werden. Zwecks
dem Traffic.
Die eingebundene Datei wäre dann eine xy.bsp
und hätte nur den Inhalt der in der anfordernden
Datei stehen soll.
Die Einbindung von CSS läuft doch auch Clientseitig ab,
hab ich richtig verstanden oder?
Grüße, Matze
Hello out there!
Mir geht es doch nur darum welche Form der
Einbindung am günstigsten/sichersten ist
und ob man HTML Teile (ohne PHP-Script)
ähnlich den CSS-Dateien einbinden kann, sodass
sie auch nur einmal geladen werden. Zwecks
dem Traffic.
Du hattest meine Frage nicht verstanden?
Externe CSS-Dateien werden nicht ins HTML-Dokument eingebunden, sondern von diesem aus referenziert. Es sind zwei getrennte Ressource, die dann clientseitig im Cache sind.
Serverseitige Includes (ob nun SSI oder PHP oder was auch immer) schreiben den Datei-Inhalt des Includes in die Ressource, die übertragen wird. Bei einer anderen Ressource, die dieselbe Datei includiert, wird wieder der gesamte Quelltext (auch der includierte Teil) übertragen.
See ya up the road,
Gunnar
Hallo Gunnar!
Du hattest meine Frage nicht verstanden?
Doch, doch.
Externe CSS-Dateien werden nicht ins HTML-Dokument eingebunden, sondern von diesem aus referenziert.
Entschuldige dann bitte meine falsche ausdrucksweise.
Dann so:
Mir geht es doch nur darum welche Form der
Einbindung am günstigsten/sichersten ist (Webspace sparen)
und ob man HTML Teile (ohne PHP-Script) ähnlich den CSS-Dateien
referenzieren kann, sodass sie auch nur einmal geladen werden.
(Traffic sparen)
Das mir das Serverseitige includen keinen Traffic spart
ist mir jedenfalls klar. Webspace spar ich damit dennoch
und darum ging es mir ja auch.
Grüße, Matze
Re:
--with-zlib ja, mod_defalte konnte ich nicht finden.
Was willst du zur Runtimekonfiguration wissen?
Mich interessiert daran, ob zlib.output_compression=On und zlib.output_compression_level=9 konfiguriert ist. Dadurch werden alle Ausgaben PHPs, die konditional für eine Anfrage mit Accept-Encoding-HTTP-Header erstellt werden, komprimiert. Die Trafficveringerung zum Beispiel der Ausgabe von phpinfo()
beträgt dabei ca. 4/5!
Davon ist also auch abhänig, ob man Dir in Deinem Fall eher zu SSI oder zu PHP raten sollte. PHP ist im Gegensatz zu SSI ein Schwergewicht, was erheblich langsamer (reell ist das aber unerheblich, da im Milli- oder Microsekundenbereich) und verbraucht mehr Systemresourcen (CPU-Leistung/Arbeitsspeicher). Ist PHP aber ordentlich konfiguriert (wie oben), sind die daraus gewonnenen Vorteile überwiegend.
PHP bietet aber default keine Möglichkeiten (bis auf Accept-Encoding) Konditionale HTTP-Anfragen zu verarbeiten. Die Dokumente müssen also immer komplett ausgeliefert werden, was ein Mehr an Traffic bedeutet. Daher ist es vielleicht auch sinnvoll auf die Möglichkeiten von mod_negotiation zurückzugreifen und erstellt nur mit PHP komprimierte Versionen der einzelnen Dokument. Dies ginge aber wieder einher mit einem Platzverlust einher.
Mir geht es doch nur darum welche Form der
Einbindung am günstigsten/sichersten ist
und ob man HTML Teile (ohne PHP-Script)
ähnlich den CSS-Dateien einbinden kann, sodass
sie auch nur einmal geladen werden. Zwecks
dem Traffic.
Tja; so einfach ist das nicht, denn viele Wege führen nach Rom. Es kommt immer auf das Zusammenspiel verschiedener Faktoren (welcher Webserver unter Verwendung welcher Erweiterungen/Modulen kommt zum Einsatz / welche der Erweiterungen kann man selbst konfigurieren / muß man selbst für den Sparsamen Umgang der Resourcen sorgen / und, und, und) an. Welcher Weg dabei der beste ist, wird sich also nicht pauschalisieren lassen.
Die eingebundene Datei wäre dann eine xy.bsp
und hätte nur den Inhalt der in der anfordernden
Datei stehen soll.
Vom Standpunkt der Platzersparnis und Wartbarkeit ist dies schon eine gute Lösung. Und, auch wenn ich nicht alle Details kenne, ich würde Dir zu readfile() -also PHP- raten, für den Fall, daß Du Ausgabekompression (wie oben beschrieben) aktivierst.
Die Einbindung von CSS läuft doch auch Clientseitig ab,
hab ich richtig verstanden oder?
Ja.
Gruß aus Berlin!
eddi
Hallo Eddi!
Also bei mir ist das so eingestellt:
zlib.output_compression Off Off
zlib.output_compression_level -1
Da ich an die Einstellungen nicht ran komme
wird daraus also nichts.
Insofern bleib ich solange ich keine
PHP-Scripte brauch also bei SHTML.
Bei bedarf nehm ich dann readfile()
Danke für eure Antworten!
Grüße, Matze