Ed X: Art des Zeilenumbruchs auf Server oder Client

Hallo an alle,

Wenn ein Formular der Art multipart/form-data an den Server gesendet wird, werden entsprechend des verwendeten Betriebssystem verschiedene Arten von Zeilenumbrüchen verwendet. Unix z.B. verwendet ein gottgewolltes \n statt eines windowstypischen \r\n.

In einem multipart form/data werden die Teile durch boundaries getrennt, und diese Teile sind dann in Header und Inhalt unterteilt und, glaube ich zumindest, durch ein "\r\n\r\n" getrennt. Soweit ist mir alles klar.

Aber 1):unterscheiden sich diese Trenner nicht gemäß des verwendeten OS?
Und 2): welches Betriebsystem zeichnet für den Unterschied verantwortlich? Das aus ENV{'HTTP_USER_AGENT'} oder aus ENV{'SERVER_SOFTWARE'}?

Bye Ed X

  1. Moin,

    Wenn ein Formular der Art multipart/form-data an den Server gesendet wird, werden entsprechend des verwendeten Betriebssystem verschiedene Arten von Zeilenumbrüchen verwendet. Unix z.B. verwendet ein gottgewolltes \n statt eines windowstypischen \r\n.

    Aber 1):unterscheiden sich diese Trenner nicht gemäß des verwendeten OS?

    theoretisch nicht. HTTP verlangt eigentlich CRLF (\r\n ist so nicht ganz richtig, da die Definition von \r und \n auf jedem System anders ist, auf dem Mac beispielsweise sind die beiden vertauscht...).
    Praktisch sieht evtl. anders aus.

    Und 2): welches Betriebsystem zeichnet für den Unterschied verantwortlich? Das aus ENV{'HTTP_USER_AGENT'} oder aus ENV{'SERVER_SOFTWARE'}?

    wenn, dann der Client.
    In Perl reicht allerdings ein s/\015\012|\015|\012/\n/g; aus, dann ist alles schoen ;)

    du kannst auch CGI.pm verwenden (sofern du Perl benutzt), das sollte multipart-Daten richtig parsen (hab noch nix gegenteiliges gehoert ;)

    Viele Gruesse,

    n.d.p.

    1. Hi n.d.,

      Und 2): welches Betriebsystem zeichnet für den Unterschied verantwortlich? Das aus ENV{'HTTP_USER_AGENT'} oder aus ENV{'SERVER_SOFTWARE'}?

      wenn, dann der Client.

      hätte ich mir eigentlich denken können.......

      In Perl reicht allerdings ein s/\015\012|\015|\012/\n/g; aus, dann ist alles schoen ;)

      Die Welt ist SCHÖN!!

      du kannst auch CGI.pm verwenden (sofern du Perl benutzt)

      Was ich wohl tun werden, aber jetzt habe ich wenigsten verstanden, was ich da tue, nun ja bis zum nächsten Problem jedenfalls

      so long, mit Dankbaren Grüßen

      Ed X