GET oder POST || $cgi->param || $cgi->url_param
Aqua
- perl
Hallo
1) foo.php?foo=bar&abc=xyz
wird das mit GET oder POST übergeben?
2) Eines der beiden kann nur eine Begrenzte Menge an Daten übergeben.
Welches der beiden (GET oder POST) muss ich also verwenden
wenn ich extrem viele Daten übermitteln will?
3) Wohin werden die Daten geschrieben wenn sie
nicht im URL übergeben werden?
4) Laut Perldoc CGI muss man für Sachen die aus einem Formular
kommen $cgi->param() verwenden,
und für welche aus dem URL muss man $cgi->url_param() nehmen.
Ich verwendete bisher immer nur $cgi->param()
Was soll das mit url_param?
Danke!
Aqua
Hallo
1) foo.php?foo=bar&abc=xyz
wird das mit GET oder POST übergeben?
GET
2) Eines der beiden kann nur eine Begrenzte Menge an Daten übergeben.
Welches der beiden (GET oder POST) muss ich also verwenden
wenn ich extrem viele Daten übermitteln will?
Bin mir nicht sicher, würde aber auf GET tippen, da dort alle Daten in der URL gespeichert werden.
3) Wohin werden die Daten geschrieben wenn sie
nicht im URL übergeben werden?
Wohin kann ich dir leider nicht sagen, abfragen kannst du sie jedoch mit $cgi->param()
4) Laut Perldoc CGI muss man für Sachen die aus einem Formular
kommen $cgi->param() verwenden,
und für welche aus dem URL muss man $cgi->url_param()
Eigentlich: $cgi->param() = POST; $cgi->url_param() = GET
Folgende Seite könnte dir weiterhelfen:
http://selfhtml.teamone.de/cgiperl/module/cgi.htm#umgebungsdaten
cu
jc
Hi,
Welches der beiden (GET oder POST) muss ich also verwenden
wenn ich extrem viele Daten übermitteln will?
Bin mir nicht sicher, würde aber auf GET tippen, da dort alle Daten in der URL gespeichert werden.
Stimmt.
4) Laut Perldoc CGI muss man für Sachen die aus einem Formular
kommen $cgi->param() verwenden,
und für welche aus dem URL muss man $cgi->url_param()
Eigentlich: $cgi->param() = POST; $cgi->url_param() = GET
Du kannst alle Parameter mit $cgi->param() abfragen, egal ob mit GET oder POST übergeben. Die Unterscheidung könnte nur Sinn mahcne, wenn der selbe Parameter einmal über POST und GET gleichzeitig mit verschiedenen Werten übergeben wird. (Welchen Sinn das auch immer machen sollte)
wunderwarzenschwein
Hallo Aqua,
1) foo.php?foo=bar&abc=xyz
wird das mit GET oder POST übergeben?
per GET
2) Eines der beiden kann nur eine Begrenzte Menge an Daten übergeben.
afaik ist keines begrenzt.
Welches der beiden (GET oder POST) muss ich also verwenden
wenn ich extrem viele Daten übermitteln will?
Ich würde POST nehmen, da manche Browser bei GET ein Limit haben.
3) Wohin werden die Daten geschrieben wenn sie
nicht im URL übergeben werden?
wenn du die Daten per POST übergibst, werden die Daten afaik im
header übergeben.
Grüße aus Nürnberg
Tobias
Hallo Tobias,
Welches der beiden (GET oder POST) muss ich also verwenden
wenn ich extrem viele Daten übermitteln will?
Ich würde POST nehmen, da manche Browser bei GET ein Limit haben.
Und auch einige Webserver. Grosse Datenmengen sollten prinzipiell per
POST übergeben werden, auch deshalb, weil Daten per GET durch die
Encodierung mal eben doppelt so viel werden können (bei der Annahme,
dass jedes Zeichen ersetzt werden muss).
3) Wohin werden die Daten geschrieben wenn sie
nicht im URL übergeben werden?
wenn du die Daten per POST übergibst, werden die Daten afaik im
header übergeben.
Nein, im Body. Der Request-Body enthält dann die Daten, die
übermittelt werden sollen. Eine Beispiel-Anfrage könnte so aussehen:
POST /cgi-bin/blahr.pl HTTP/1.1
Host: localhost
Connection: close
Content-Length: 8
abcdefgh
Der Content-Length-Header ist übrigens Pflicht in dem Fall.
POST-Requests ohne Content-Length werden mit einem '400 Bad Request'
beantwortet.
Grüße,
CK