Wenn ich ein Script sowohl als CGI-Script laufen lassen will als auch als Shell-Script, wie erkenne ich dann sicher, wie es aufgerufen wurde. Oder anders gefragt, welche Umgebungsvariablen sind typisch für eine CGI-Umgebung?
$SIG{USER} = sub {love 'Perl' or die};
Strat
2004-01-23 13:13
User since 2003-08-04
5246
Artikel ModeratorIn
folgende umgebungsvariablen sind typisch fuer ein webscript:
SERVER_NAME REQUEST_METHOD SERVER_SOFTWARE HTTP_HOST
ueber GATEWAY_INTERFACE kannst du dann genaueres herausbekommen, z.B. CGI/1.1, modperl, ...)
oder auch REMOTE_ADDR oder REMOTE_HOST, wobei
die nicht unbedingt gesetzt sein müssen.
Der vollständigkeit halber :p
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
ptk
2004-01-23 18:16
User since 2003-11-28
3645
Artikel ModeratorIn
[quote=Strat,23.Jan..2004, 12:13]folgende umgebungsvariablen sind typisch fuer ein webscript:
SERVER_NAME REQUEST_METHOD SERVER_SOFTWARE HTTP_HOST
ueber GATEWAY_INTERFACE kannst du dann genaueres herausbekommen, z.B. CGI/1.1, modperl, ...)[/quote]
HTTP_HOST wahrscheinlich nur, wenn ueber HTTP/1.1 verbunden wird. Bei HTTP/1.0 ist Host: nicht erforderlich.
steffenw
2004-01-23 23:32
User since 2003-08-15
692
Artikel BenutzerIn
Danke für Eure Antworten.
Ich habe mich für "REQUEST_METHOD" entschieden, weil ich mir überlegt habe, wenn "REQUEST_METHOD" nicht gesetzt ist, ist doch die ganze Anfrage sinnlos oder? Den Inhalt prüfe ich nicht, da ist sicher immer "GET" oder "POST" drin.
$SIG{USER} = sub {love 'Perl' or die};
pq
2004-01-24 01:52
User since 2003-08-04
12209
Artikel Admin1
[quote=steffenw,23.01.2004, 22:32]Den Inhalt prüfe ich nicht, da ist sicher immer "GET" oder "POST" drin.[/quote]
naja, muss nicht. könnte z.B. auch HEAD sein...
=)\n\n
naja, um sich den head (also kopf auf englisch) anzeigen zu lassen. ohne body (körper).
da kriegst du dann den content-type und den ganzen kram, aber das eigentliche
dokument nicht. kann nützlich sein, um sich anzeigen zu lassen, ob eine url überhaupt
gültig ist.
User since 2003-08-04
2145
Artikel ModeratorIn + EditorIn
HEAD wird auch von Browsern oder Caches benutzt, um bei einer erneuten Anfrage der Seite festzustellen, ob sie sich geaendert hat und komplett neu geladen werden muss oder nicht.
ptk
2004-01-26 20:12
User since 2003-11-28
3645
Artikel ModeratorIn
[quote=Dubu,24.Jan..2004, 23:58]HEAD wird auch von Browsern oder Caches benutzt, um bei einer erneuten Anfrage der Seite festzustellen, ob sie sich geaendert hat und komplett neu geladen werden muss oder nicht.[/quote]
Normalerweise wird GET mit If-modified-since verwendet, um einen Request zu sparen.