Aqua: GET oder POST || $cgi->param || $cgi->url_param

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

  1. 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

    1. 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

      --
      ss:} zu:$ ls:} fo:| de:] va:) ch:? sh:( n4:# rl:? br:> js:| ie:( fl:{ mo:)
  2. 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

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. 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

      --
      Zu wissen, was wir nicht wissen, ist die Quelle der Weisheit.