hotti: Request Parameter

Beitrag lesen

hi,

PL? Programming-Language? Man muss nicht den JavaScript-Parser der V8-Engine kennen, wenn man eine REST-Schnittstelle nutzen möchte. Ebenso wenig muss man den PHP-Parser der Zend-Engeine kennen.

Wenns Dich interessiert, für Perl steckt der Parser in CGI.pm und sobald der eingebunden wurde, ist es nicht mehr möglich, Daten aus STDIN zu lesen. Ein Zugriff auf POST oder PUT-Daten sind nach Einbinden CGI.pm nur dann möglich, wenn der im Request gesendetet Content-Type abweichend von  application/x-www-form-urlencoded or multipart/form-data ist, in diesem Fall sind die Daten in param('POSTDATA') bzw. param('PUTDATA') zu finden. Das wäre also der Fall, wenn ein Request mit dem Content-Type: application/json gesendet wurde. Mit CGI::param() kann natürlich auch der  QUERY_STRING geparst werden um an Schlüssel und Werte zu kommen.

Ansonsten unterscheidet die param()-Funktion anhand der Request-Methode, d.h., entweder POST oder GET und param() liefert das Ergebnis auch nur dann, wenn der gesendete Content-Type application/x-www-form-urlencoded or multipart/form-data ist.

Wenn ein POST vorliegt, wird param('key') im konkreten Fall keine Daten liefern, es bleibt jedoch stets die Möglichkeit, den QUERY_STRING zu parsen und mit param('POSTDATA') an die Rohdaten zu kommen. Oder es wird auf den Parser CGI.pm verzichtet, so können die Rohdaten direkt aus SDTIN gelesen werden. Oder der Request sendet ein multipart/form-data und CGI::param() kann auf alle Daten zugreifen: param('key'), param('json').

Noch ein Benchmark:           Rate  ini  bin ini 28702641/s   -- -38%  32,87 kB, 114 Objekte, INI-Datei, Parser Config::Tiny bin 46382189/s  62%   --  1,352 MB, 338 Objekte, Binärdatei, Eigener Serializer

Die gespeicherten Datenstrukturen sind dieselben (Entity, Attribute, Value). In Perl gibt es binär arbeitende Serializer, die sind noch wesentlich performanter, aber die Sequenzen sind inkompatibel zu PHP oder JavaScript. Für XML, JSON gibt es :XS Erweiterungen, die auch nochmal einen Schub bringen.

MfG

0 54

wie geografischen Standort anhand der IP ermittlen

Henry
  • sonstiges
  1. 0
    Jörg Reinholz
  2. 0
    1UnitedPower
  3. 0
    Encoder
    1. 0
      hotti
      1. 0
        Mattes
        1. 0
          hotti
        2. 0
          Encoder
  4. 0

    navigator.geolocation.getCurrentPosition()

    hotti
    1. 0
      dedlfix
      1. 0
        hotti
        1. 0
          dedlfix
        2. 0
          Mattes
          1. 0
            hotti
            1. 0
              Mattes
              1. 0
                hotti
                1. 0
                  dedlfix
                  1. 0
                    hotti
                    1. 0
                      dedlfix
                      1. 0
                        hotti
                        1. 1
                          dedlfix
                          1. 0
                            hotti
                            1. 0
                              dedlfix
                              1. 0
                                hotti
                                1. 0
                                  Mattes
                                  1. 0
                                    hotti
                                  2. 0
                                    hotti
                                    1. 1
                                      dedlfix
                                      1. 0
                                        hotti
                                        1. 0
                                          1UnitedPower
                                          1. 0

                                            Request Parameter

                                            hotti
                                          2. 0
                                            hotti
                                            1. 0
                                              1UnitedPower
                                              1. 0
                                                hotti
                                                1. 0
                                                  1UnitedPower
                                                  1. 0

                                                    Idempotenz

                                                    Mattes
                                                    1. 0
                                                      hotti
                                                      1. 0

                                                        Transparenz

                                                        Mattes
                                                        1. 0
                                                          hotti
                                                          1. 0

                                                            Kompetenz

                                                            Mattes
                                                  2. 0
                                                    hotti
                                                    1. 0
                                                      1UnitedPower
                                2. 0
                                  dedlfix
                                  1. 0
                                    hotti
                                    1. 0
                                      dedlfix
                            2. 0
                              Mattes
                              1. 0
                                hotti
                                1. 0
                                  1UnitedPower
                                  1. 0
                                    dedlfix
                                    1. 0
                                      1UnitedPower
                                2. 0
                                  Mattes
    2. 0
      1UnitedPower
  5. 2
    Alexander (HH)
    1. 0
      Robert R.