hi,
ich hatte immer nur ein \n dran.
Über die CGI-Schnittstelle erwartet der Webserver grundsätzlich mindestens einen gültigen HTTP-Response-Header und ein solcher endet immer mit einer Leerzeile (i.d.R. "\n\n"). Dabei ist es unerheblich, ob das ein Location-Header oder ein Content-Type-Header ist. Dass das so ist, kannst Du mit Live HTTP Headers (FF) sehen, gut zu sehen ist auch, dass der Webserver noch weitere eigene Header hinzufügt, je nach seiner Konfiguration und Protokollversion (z.B. HTTP/1.1).
Wenn Dein CGI-Script beabsichtigt, mehrere Header an den Webserver zu schicken, trenne die mit einem einfachen "\n" und zum Schluss sende ein "\n\n", um dem Webserver zu signalisieren, dass keine weiteren Header mehr vom Script zu erwarten sind.
Ein interessantes Perl-Modul ist HTTP::Headers;
Die Reihenfolge der Header ist grundsätzlich egal.
Hotti