Hallo Martin,
Content-Type als wichtigster Info
Das ist es zweifellos. Und ich bin überzeugt, dass der Content-Type fritte ist.
Deswegen brauchen wir Infos um der Ursache näher kommen zu können.
Du unterstellst, dass der DNS Service auf den gleichen Server referenziert, der auch bei der LAN-only Kommunikation verwendet wurde. Kann sein, ist vielleicht auch die Absicht des OP, aber es muss nicht so sein.
Aber wenn es der gleiche Server ist, dann kommt es um so mehr auf den Kommunikationsweg an. In einem Privathaushalt würde ein Zugriff via DDNS bedeuten, dass der Request das Haus verlässt und von außen wieder hereinkommt, denn ein DDNS Service verweist ja eigentlich auf die externe IP des Routers.
Es kann auch sein dass auf einem Server zwei verschiedene Webs laufen. Eins reagiert auf interne Anfragen, eins auf externe, und sie sind unterschiedlich konfiguriert. Hostname-Routing kommt da in den Sinn. Per DNS ist ein hostname da, per LAN wurde vermutlich auf die IP zugegriffen.
Oder ist es in DNS Server im LAN und die Kommunikation bleibt im Haus? Ganz anderes Szenario, ganz andere potenzielle Ursachen.
Oder ist es ein Unternehmensnetz und die Kommunikation "außen herum" läuft über einen Proxy hinaus und über einen Reverse Proxy wieder herein? Existieren da Virenscanner oder Webwasher, die Request oder Response manipulieren? Um HTML Sourcecode zu sehen, muss der Content-Type eigentlich auf text/plain gesetzt worden sein. Ich habe ihn mal auf "foo/bar" gesetzt, dann zeigt der Browser gar nichts an sondern öffnet das "Speichern" Fenster. Den Header ganz wegzulassen schaffe ich nicht. PHP schiebt einen Content-Type nach, wenn ich ihn entferne, und mein verfügbarer Webserver IIS liefert Ressourcen ohne Content-Type gar nicht erst aus. Einen Apache hau ich mir jetzt dafür nicht drauf.
TL;DR: Ohne Details geht da gar nichts. Es ist vermutlich eine subtile Kleinigkeit, die zu den Unterschieden führt. Und die kann man nicht finden, wenn man nur grobe Brocken bekommt.
Rolf
--
sumpsi - posui - obstruxi