php-Datei in HTML
bearbeitet von Der MartinHallo Schröder,
> dass der Browser nur Dateien mit der Endung .html versteht.
Dem Browser ist die Endung zumeist total egal. Er interessiert sich viel mehr für den Content-Type, den ihm der Server per [HTTP Header](https://wiki.selfhtml.org/wiki/HTTP/Einsteiger-Tutorial) liefert.
Wenn der text/html ist, wird der gelieferte Inhalt als HTML Datei interpretiert. Wenn die Datei "welcome.html" heißt, der Server aber den Content-Type "image/png" liefert und ein Bild liefert, dann zeigt der Browser dieses Bild.
Der Browser könnte sich für die Endung interessieren, wenn der Server **keinen** Content-Type liefert. Das ist zum Beispiel der Fall, wenn man auf dem lokalen Dateisystem unterwegs ist (file:///...). Wenn eine http-Anfrage keinen Content-Type liefert, ist man der Gnade des Browsers überlassen, was dann passiert. Oder, wie es RFC7231 in der typischen IETF-Formulierung sagt:
> A sender that generates a message containing a payload body SHOULD
generate a Content-Type header field in that message unless the
intended media type of the enclosed representation is unknown to the
sender. If a Content-Type header field is not present, the recipient
MAY either assume a media type of "application/octet-stream"
or examine the data to determine its type.
Der Server sollte (muss aber nicht) und der Empfänger könnte (muss aber auch nicht). Interessanterweise steht da aber **nicht**, dass der Empfänger den URI analysieren kann (sprich: Dateiname suchen und Endung finden). Er kann den Inhalt analysieren. Meine Erfahrung ist aber, dass zumindest bei Zugriffen auf's lokale Dateisystem die Endung gedeutet wird. Eine .html-Datei, die ich in .txt umbenenne, wird als einfacher Text angezeigt.
Auf dem Server sieht das anders aus. Der ist ja die entscheidene Instanz für den Content-Type, und dort kann man definieren, dass *.html mit Content-Type text/html auszuliefern ist. Bei einer PHP Datei ist das anders. Da wird nicht der Webserver gefragt, sondern PHP. Es generiert meines Wissens automatisch text/html als Content-Type, es sei denn, du setzt explizit einen anderen Content-Type.
_Rolf_
--
sumpsi - posui - obstruxi