header('Status: 403', TRUE, 403); Das scheint ja nur in bestimmten Konfigurationen zu funktionieren,
Mit PHP als Modul und FCGI geht es.
Aber: Es ist nicht wirklich sinnvoll. Das hat sich mal jemand ausgedacht, der mit Zeilen knausert und die gesendete Headerzeile ('Status: 403') ist zumindest anno 2022 auch in FCGI „hyperliquid“. Was laut curl -v in beiden Fällen ankommt ist nur 'HTTP/2 403'.
Warum also so viel schreiben, wenn es http_response_code( 403 )
„tut“?
Hinzu kommt: Wenn eines schönen Tages die Macher von PHP auf die Idee kommen, header() statt wie derzeit nichts vielleicht etwas anderes als eine Zahl zurückgeben zu lassen, dann muss man sich den ganzen Mist wegen der notlos-mutigen Klammersetzung in
exit( header( 'Status: 403', TRUE, 403 ) );
umschreiben oder sich jemanden bestellen, der ein Skript schreibt, welches den Mist sucht und ersetzt...
header('Humbug: 403', TRUE, 403);
erzeugt wenigstens was:
< HTTP/2 403
< humbug: 403
... man soll dann aber
header('X-Humbug: Play with me!', TRUE, 403);
verwenden. Damit der IE, Bing, Cortana und Netscape 3.0 Gold-Edition wegen des unbekannten Headers nicht abstürzen. 🤣🤣🤣🤣
< HTTP/2 403
< x-humbug: play with me!