Unterschied PHP und HTML Seiten (APACHE)
Stephan
- php
0 milky
Hallo zusammen,
ich habe einige HTML-Seiten die per htaccess mit dem Befehl
AddType application/x-httpd-php .php .php4 .htm
durch den PHP Parser gejagt werden.
Das sieht zwar der normale User nicht, da er ja html Dateien in der Adresszeile seines Browsers sieht. Wenn man aber mit nem telnet drauf geht und sich die Seiten holt, sieht man den Unterschied:
HTML-Seite die durch den PHP-Parser kommt:
HTTP/1.1 200 OK
Date: Sun, 28 Mar 2004 15:55:58 GMT
Server: Apache/1.3.26 (Linux/SuSE) mod_ssl/2.8.10 OpenSSL/0.9.6g PHP/4.3.4
X-Powered-By: PHP/4.3.4
Transfer-Encoding: chunked
Content-Type: text/html
HTML-Seite ohne Parser:
HTTP/1.1 200 OK
Date: Sun, 28 Mar 2004 15:51:58 GMT
Server: Apache/1.3.26 (Linux/SuSE) mod_ssl/2.8.10 OpenSSL/0.9.6g PHP/4.3.4
Last-Modified: Tue, 09 Mar 2004 18:07:55 GMT
ETag: "3d8144-3112-404e07fb"
Accept-Ranges: bytes
Content-Length: 12562
Content-Type: text/html
Die Frage ist:
Kann man den Apache so einstellen (per htaccess) oder die Seite per PHP-Commandos so verbiegen (best. header übergeben, oder so) dass Sie der selbe Output kommt bei einer HTML-Seite und einer PHP Seite?
Für Hilfe wäre ich sehr dankbar!
Schönen Sonntag!
Stephan
Hey Stephan,
Kann man den Apache so einstellen (per htaccess) oder die Seite per PHP-Commandos so verbiegen (best. header übergeben, oder so) dass Sie der selbe Output kommt bei einer HTML-Seite und einer PHP Seite?
Nein. Die einzige Zeile die du vertecken kannst ist "X-Powered-By: PHP/..."
Alle anderen header müssen zwangsläufig vorhanden sein, weil sich statische
Dateien auf viele unterschiedliche Weise vom Server abrufen lassen (z.B.
stückchenweise nach einer abgebrochenen Verbindung), und weil dynamische
Inhalte nicht gecached werden sollten (kein ETag für PHP-Skripte).
Einige der Header könntest du auch in PHP erzeugen oder simulieren, ist
aber extrem aufwendig und zieht mitunter diverse Nebenwirkungen nach
sich.
Du könntest bestenfalls einen Proxy oder Cache zuschalten, aber ich denke
das lohnt doch den Aufwand nicht?
(Die schlechteste Möglichkeit wäre übrigens die statischen Dateien
auszubremsen, indem du auch .png und .jpeg oder .css und .zip durch
den PHP-Parser jagst.)
MsF,
milky
Eigentlich sind es ja gar keine dynamischen Inhalte sondern tatsächlich html seiten.
Das einzige Stück PHP das drin ist ist folgendes am anfang jeder seite:
<?php
if ( isset($_REQUEST["PHPSESSID"] ) {
session_start();
}
?>
Das ist eigentlich nur dafür da dass die Session nicht verloren geht wenn jemand über die html-seiten browst...
Also könnte der Client die Seite locker cachen und auch stückchenweise abholen wenn er will?
Wie könnte man denn da ansetzen?
Gruß
Stephan
Hallo!
Eigentlich sind es ja gar keine dynamischen Inhalte sondern tatsächlich html seiten.
Das einzige Stück PHP das drin ist ist folgendes am anfang jeder seite:<?php
if ( isset($_REQUEST["PHPSESSID"] ) {
session_start();
}
?>Das ist eigentlich nur dafür da dass die Session nicht verloren geht wenn jemand über die html-seiten browst...
Also könnte der Client die Seite locker cachen und auch stückchenweise abholen wenn er will?
Also ich verstehe den Sinn der Aktion nicht wirklich. Wenn in allen Links "?PHPSESSID=123..." angehängt wird, oder ein passender Cookie, dann weiß doch jeder dass es dynamisch ist. Da können die header 1:1 gleich sein, was bringts?
Und nein, Du kannst es nicht wirklich sinnvol cachen weil PHP die HTML-Ausgabe für so ziemlichen jeden Client ändern könnte.
Grüße
Andreas