So senden Sie einen benutzerdefinierten HTTP-Statuscode mit mod_perl

9

Ich habe ein CGI -Programm geschrieben und sende einen Statusfehler mit dem HTTP-Header an den Client. aber wenn ich versuchte, mod_perl zu verwenden, antwortet es nur mit 200 OK-Status. Wie kann ich einen benutzerdefinierten Statuscode senden?

Hier ist der Code, wenn ich mit dem benutzerdefinierten Statusfehler antworten möchte:

%Vor%

BEARBEITEN :
Hier ist der Code:

%Vor%

-------------------------------------------

BEARBEITEN 2

geben einige weitere Informationen: wenn ich den Befehl curl -v 192.168.1.212/mymodperl/test.pl in der Shell verwende.
Hier ist die Antwort:

%Vor%     
Sarah Aziziyan 23.11.2017, 08:28
quelle

1 Antwort

2

Von Ссылка können Sie einen Statuscode festlegen

%Vor%

BEARBEITEN: Erläuterung

Aus Ссылка

  

Was sind Handler?

     

Apache unterscheidet zwischen zahlreichen Phasen, für die es Hooks bereitstellt (weil die C-Funktionen ap_hook_ genannt werden), wo Module verschiedene Callbacks verbinden können, um das Standardverhalten des Webservers zu erweitern und zu ändern. mod_perl stellt eine Perl-Schnittstelle für die meisten verfügbaren Hooks zur Verfügung, so dass mod_perl Module-Writer das Apache-Verhalten in Perl ändern können. Diese Callbacks werden normalerweise als Handler bezeichnet. Daher sehen die Konfigurationsanweisungen für die mod_perl-Handler wie folgt aus: PerlFooHandler, wobei Foo einer der Handler-Namen ist. Beispielsweise konfiguriert PerlResponseHandler den Antwort-Callback.

     

Ein typischer Handler ist einfach ein Perl-Paket mit einer Handler-Subroutine. Zum Beispiel:

%Vor%
  

Dieser Handler gibt einfach das aktuelle Datum und die aktuelle Uhrzeit als Antwort zurück.

     

Da dies ein Antwort-Handler ist, konfigurieren wir ihn in httpd.conf:

%Vor%
  

Da der Antworthandler für einen bestimmten Ort konfiguriert werden sollte, schreiben wir einen vollständigen Konfigurationsabschnitt:

%Vor%
  

Wenn eine Anforderung an Ссылка gesendet wird, wird dieser Antworthandler ausgeführt und eine Antwort mit der aktuellen Uhrzeit wird an den Client zurückgegeben.

    
mikep 26.11.2017, 13:51
quelle

Tags und Links