Eddie: Maximale Länge eines Dateinamens bei HTTP-Zugriff

Hallo allerseits,

eine ganz knappe Frage: wie lang darf ein Dateiname sein, damit ich ihn innerhalb eines <img>-Tags noch einsetzen kann?

Hintergrund: der Dateiname ist eigentlich ein Funktionsaufruf, allerdings mit einer ziemlichen massiven Parameterliste; sieht ungefaehr so aus:
234235_423965043_...._sghis.gif

Oder andersrum gefragt: bin ich mit 474 Zeichen noch auf der sicheren Seite?

Nur damit ihr mich richtig versteht: die Datei gibt's eigentlich nicht, ich leite den Dateinamen ueber mod_rewrite an ein Script weiter. Ist halt nur die Frage, ob das geht?

Danke für eure Hilfe,
Eddie

P.S.: und nein, die Parameterliste ist schon mit allen moeglichen Tricks codiert und verkleinert worden, da geht nicht mehr viel ;-)

--
Old men and far travelers may lie with authority.
  1. Moin,

    eine ganz knappe Frage: wie lang darf ein Dateiname sein, damit ich ihn innerhalb eines <img>-Tags noch einsetzen kann?

    Ich glaube, Apache hat ein Limit von ca. 8192 Zeichen, ob es in (X)HTML Beschränkungen der Länge gibt, weiß ich nicht.

    Tschau,
    Martin

  2. echo $begrüßung;

    eine ganz knappe Frage: wie lang darf ein Dateiname sein, damit ich ihn innerhalb eines <img>-Tags noch einsetzen kann?

    An dieser Stelle suchst du nicht die Länge eines Dateinamen sondern die einer URL. Der Dateiname wird erst dann interessant, wenn der Webserver für das über diese URL auszuliefernde Dokument einen Dateizugriff erzeugen muss, oder wenn der Anwender dieses Dokument in einer Datei bei sich speichern will. Letzteres braucht dich nicht unbedingt zu kümmern, da der Browser des Benutzers in Zusammenspiel mit dessen Betriebssystem für einen gültigen Dateinamen zu sorgen hat, beispielsweise durch geeignete Kürzung.

    Oder andersrum gefragt: bin ich mit 474 Zeichen noch auf der sicheren Seite?

    Da also die URL-Länge entscheidend ist, müssen alle beteiligten Komponenten (Browser, Webserver, vom Webserver verwendete Hilfsmittel, ...) diese URL verarbeiten können. Eine eindeutige festgelegte Mindestlänge gibt es meines Wissens wohl nicht. Die Maximallänge variiert je nach verwendeter Software, und nicht immer gibt es dazu eine Aussagen seitens der Hersteller. Was es jedoch gibt, sind Experimente, um diese Länge herauszufinden. Du könntest in einer Suchmaschine deiner Wahl danach suchen.

    echo "$verabschiedung $name";

  3. Hallo Eddie,

    Oder andersrum gefragt: bin ich mit 474 Zeichen noch auf der sicheren Seite?

    Die Frage, die sich hier stellt, ist, wie lange der URL sein darf, der aufgerufen wird. Es gibt keinen Standard, der eine Begrenzung vorsieht, d.h. URLs dürften theoretisch unendlich lang sein. Irgend ein Uralt-Browser hatte mal ne Begrenzung von 512 Bytes (soweit ich mich erinnern kann), aktuelle Browser oder Webserver haben oft Begrenzungen von 2, 4 oder 8 KiB. Wenn Du also unter 2 KiB bleibst, sollte nichts schiefgehen (beachte: der URL besteht nicht nur aus dem, was Du als Quelle im <img>-Tag angibst, sondern fängt ja bei http:// an, d.h. wenn Deine Angabe 474 Zeichen lang ist, musst Du trotzdem noch was draufaddieren).

    Aber wie um alles in der Welt kommst Du auf 474 Zeichen? (ja, Du schriebst, dass Du das umschreiben willst, aber selbst dafür kommt es mir extrem vor)

    Viele Grüße,
    Christian

    1. Hallo Freunde des gehobenen Forumsgenusses,

      Aber wie um alles in der Welt kommst Du auf 474 Zeichen?

      Wenn man latex^{474}[/latex] verschiedene Bilder hat braucht man so lange URLs ;-)

      Gruß
      Alexander Brock

  4. Eddi güßt Eddie,

    da es bis jetzt noch keiner zur Sprache gebracht hat, gebe ich mal auch noch meinen Senf dazu: Für den Apachen ist hierbei die Konfigurationsdirektive LimitRequestLine verantwortlich.

    P.S.: und nein, die Parameterliste ist schon mit allen moeglichen Tricks codiert und verkleinert worden, da geht nicht mehr viel ;-)

    *hmpf* Immer die post scripta in HTML-Formularen ;(

    Gruß aus Berlin!
    eddi

  5. Nur damit ihr mich richtig versteht: die Datei gibt's eigentlich nicht, ich leite den Dateinamen ueber mod_rewrite an ein Script weiter.

    Wo? Im per-server oder im per-dir conntext? Bei letzterem könnte dir nämlich wie bereits gesagt die PATH_MAX Beschränkung des Betriebssystems in die Quere kommen.

    --
    Grüße
    Robert