Muß da der header gesetzt sein?
Bitte nicht HTTP - HTML - XML verkuddelmuddeln!
HyperTextTransferProtokoll ist ein Transportprotokoll
HyperTextMarkupLanguage und
eXtensibleMarkupLanguage sind Auszeichnungssprach
en.
Kurz gesagt: Content, der in
HTML oder
XML formatiert ist, kann über das
HTTP übertragen werden.
Das HTTP Protokoll ist (wie andere Protokolle z.B. FTP auch) so aufgebaut, dass ein Requester (Browser, Reader, etc.) eine Anfrage an den Server sendet und als Antwort erst einmal einen Status der Verbindung erwartet. Wenn alles gut ging, ist das '200 OK'. Es könnte aber auch eine 404 oder gar 500 zurück kommen.
Da RSS-Feeds nix anderes als HTTP-Requests sind die auch einen HTTP-Response erwarten, erwartet ein strikt gecodeter Reader auch die 200 als Antwort.
Also
header('HTTP/1.0 200 OK');"
Ich sende aber praktisch nie einen Status-Header mit!" Ist so nicht ganz richtig.

Denn, falls der Status-Header fehlt, hängen die meisten Server diesen selbstständig vorne dran.
Allerdings sollte man auf solche Jokes wie
header('HTTP/1.0 200 i am just a fake header'); verzichten und dann schon den 'richtigen' Header
header('HTTP/1.0 200 OK'); einsetzen.
Wie verhält sich das Teil bei einer IDN-Domain. Gibt's da Probleme?
Nein, denn es sind nur die 'Sonderzeichen' (Steuerzeichen) die Probleme bei der Ausgabe machen.