Beat Strasser: nph-Scripts bei SSL

Hallo

Was versteht man unter einem 'nph-Script'?

Ich habe bei meinem Provider gelesen, dass nph-Scripts nicht mit Secure Servern (SSL) verwendet werden koennen:

The only difference in operation between secure and
regular Web servers, as far as a CGI script can tell,
is that nph- scripts cannot be used with the secure
server, because of the special negotiations involved
with SSL.

Thx a lot,
Beat

  1. Hallo

    Was versteht man unter einem 'nph-Script'?

    Ich habe bei meinem Provider gelesen, dass nph-Scripts nicht mit Secure Servern (SSL) verwendet werden koennen:

    The only difference in operation between secure and
    regular Web servers, as far as a CGI script can tell,
    is that nph- scripts cannot be used with the secure
    server, because of the special negotiations involved
    with SSL.

    Hm, ich bin mir nicht ganz sicher, aber ich glaube, daß sind ungepufferte Scripts. Der alte 1.2er Apache hat immer erst das Script durchlafen lassen, und dann den ganzen Output rübergeschickt. Ist natürlich bei ner Suchmaschiene ziemlich unpraktisch, da so nicht während die Suche noch läuft die Ergebnisse übertragen werden können. Wenn man den Dateinamen irgendwie mit nph oder so anfangen läßt, dann hat auch der 1.2er Apache das Script noch wärend es läuft rausgeschickt.

    1. Was versteht man unter einem 'nph-Script'?

      The only difference in operation between secure and
      regular Web servers, as far as a CGI script can tell,
      is that nph- scripts cannot be used with the secure
      server, because of the special negotiations involved
      with SSL.

      Hm, ich bin mir nicht ganz sicher, aber ich glaube, daß sind ungepufferte Scripts. Der alte 1.2er Apache hat immer erst das Script durchlafen lassen, und dann den ganzen Output rübergeschickt. Ist natürlich bei ner Suchmaschiene ziemlich unpraktisch, da so nicht während die Suche noch läuft die Ergebnisse übertragen werden können. Wenn man den Dateinamen irgendwie mit nph oder so anfangen läßt, dann hat auch der 1.2er Apache das Script noch wärend es läuft rausgeschickt.

      aha, merci!
      Und bei SSL *muss* die ganze Ausgabe schon komplett fertig sein, damit es dann verschluesselt werden kann. Alles klar.

      Danke,
      Beat

      1. Was versteht man unter einem 'nph-Script'?

        The only difference in operation between secure and
        regular Web servers, as far as a CGI script can tell,
        is that nph- scripts cannot be used with the secure
        server, because of the special negotiations involved
        with SSL.

        Hm, ich bin mir nicht ganz sicher, aber ich glaube, daß sind ungepufferte Scripts. Der alte 1.2er Apache hat immer erst das Script durchlafen lassen, und dann den ganzen Output rübergeschickt. Ist natürlich bei ner Suchmaschiene ziemlich unpraktisch, da so nicht während die Suche noch läuft die Ergebnisse übertragen werden können. Wenn man den Dateinamen irgendwie mit nph oder so anfangen läßt, dann hat auch der 1.2er Apache das Script noch wärend es läuft rausgeschickt.

        aha, merci!
        Und bei SSL *muss* die ganze Ausgabe schon komplett fertig sein, damit es dann verschluesselt werden kann. Alles klar.

        Ich habe gehört, daß der Apache die Scripte immer buffert, weil es ja sonst sein könnte, daß man nur ein Zeichen über die Leitung schickt, und das wäre nicht so gut für die Geschwindigkeit. Vielleicht werden immer bei SSL feste Blockgrößen verschickt.

        1. Hi zusammen,

          also soweit ich weiß, heißt nph: no parsed headers, und bezieht sich
          darauf, ob das CGI-Skript die HTTP-Header selbst ausgibt, oder
          das dem Server überläßt. Da SSL eine spezielle Art hat, mit dem
          Server zu kommunizieren (eben HTTPS und nicht HTTP), funktionierts
          nicht, wenn das Skript versucht, in den Headern rumzupfuschen.

          Grüße
          Stephan

          1. Also da mir die Sache kein Ruhe läßt, und ich mir selbst nicht so sicher war, hab ich mal in der Apache-Doku nachgeschaut, und da steht auf Englisch:

            Apache now provides an effectively unbuffered connection for CGI scripts. This means that data will be sent to the client as
                 soon as the CGI pauses or stops output; previously, Apache would buffer the output up to a fixed buffer size before sending,
                 which could result in the user viewing an empty page until the CGI finished or output a complete buffer. It is no longer
                 necessary to use an "nph-" CGI to get unbuffered output. Given that most CGIs are written in a language that by default does
                 buffering (e.g., perl) this shouldn't have a detrimental effect on performance.

            "nph-" CGIs, which formerly provided a direct socket to the client without any server post-processing, were not fully
                 compatible with HTTP/1.1 or SSL support. As such they would have had to implement the transport details, such as encryption
                 or chunking, in order to work properly in certain situations. Now, the only difference between nph and non-nph scripts is
                 "non-parsed headers".

            Was auf Deutsch in etwa heißt:

            Apache stellt jetzt einen effektiv ungepufferten Anschluß für cgi-Indexe zur Verfügung. Dies heißt,
                                     daß dem Klienten Daten geschickt werden, sobald das cgi Ausgabe pausiert oder stoppt; vorher
                                     würde Apache die Ausgabe bis zu einer örtlich festgelegten Puffergröße puffern, bevor es sendete,
                                     das den Benutzer ergeben könnte, der eine leere Seite bis das cgi ansieht, das einem kompletten
                                     Buffer beendet wurde oder ausgegeben war. Es ist nicht mehr notwendig, ein " nph zu benutzen - "
                                     cgi zum Erhalten der ungepufferten Ausgabe. **time-out** angenommen meist GCIs sein schreiben in
                                     ein Sprache das durch Rückstellung tun Pufferbetrieb (z.B., Perl) dies sollen nicht haben ein
                                     schädlich Effekt auf Leistung.

            " nph - " waren GCIs, die früher eine direkte Einfaßung zum Klienten ohne irgendeine Server
                                     Nachbearbeitung zur Verfügung stellten, nicht mit HTTP-/1.1 oder SSL-Support völlig kompatibel.
                                     Da so sie die Transportdetails, wie Verschlüsselung oder Chunking würden einführen gemußt haben,
                                     um in bestimmten Situationen richtig zu arbeiten. Jetzt ist der einzige Unterschied zwischen nph und
                                     die non-nphindexe " nicht-analysierte Vorsätze ".