Maximale URL Länge: server- oder clientabhängig?
Mastershrimp
- https
0 Reiner0 Mastershrimp0 Reiner
0 Geistiger Hohlraum0 e7
Heyho!
Ich baue z.Z. eine Funktion, an die der User beliebig viele Parameter anhängen kann (ist Kuchen-Diagramm). Dies muss er leider per GET machen. Nun habe ich mal gehört (und selber schon mal erlebt), dass bestimmte URL's zu lang sind. Ist das abhängig vom Server oder vom Browser?
Wie sind die Grenzen? 255 Zeichen? Ich glaube ich hab schonmal längere URL's gesehen, die funktionierten...
Google und Archiv sind sich auch nicht einig:
http://forum.de.selfhtml.org/archiv/1999_3/t05292.htm
http://www.php-resource.de/forum/showthread/t-17334.html
Cheatah (Archiv): "nach ein paar Millionen wird irgendwem der Speicher ausgehen. Bei GET-Formularen kommen zudem einige idiotische Browser hinzu, die absurderweise die URL willkürlich in der Länge begrenzen."
Autor vergessen, auch Archiv: "ich meine mich erinnern zu können mal etwas gelesen zu haben das eine URL nicht länger als 256 zeichen sein darf *kopfkratz*.
alle angaben ohne gewähr."
Ich weiß nicht, wem ich trauen soll :-/
Danke schonmal!
Gruß
Mastershrimp
Hi,
Ich baue z.Z. eine Funktion, an die der User beliebig viele Parameter anhängen kann (ist Kuchen-Diagramm). Dies muss er leider per GET machen. Nun habe ich mal gehört (und selber schon mal erlebt), dass bestimmte URL's zu lang sind. Ist das abhängig vom Server oder vom Browser?
Wie sind die Grenzen? 255 Zeichen? Ich glaube ich hab schonmal längere URL's gesehen, die funktionierten...
es gibt laut W3C keine Grenze der Länge.
Aber: Bedenke, daß z.B. Suchmaschinen Deine Seiten nicht indizieren werden bzw. nicht richtig/sinnvoll, wenn Du über 255 Zeichen benutzt.
Ansonsten sehe ich kein großes Problem.
Warum kannst Du kein POST nutzen?
Gruß
Reiner
Erstmal danke für eure beiden Antworten!
Warum kannst Du kein POST nutzen?
Ich mache für einen Forenhoster (rapidforum) eine PHP-Lösung für ein Kuchendiagramm. Da ich auf die Rapid-Engine nicht zugreifen kann und in den Templates kein PHP verfügbar ist, bleibt mir nichts anderes übrig, als das Script auszulagern.
Die Werte und Farben der einzelnen Kuchenstücke werden per GET an das Script gegeben, welches insgesamt in einem <img>-Tag aufgerufen wird. Der User an sich merkt also nichts und denkt, es sei eine normale Grafik. Google muss da auch nix indizieren.
Wenn ihr's euch mal anschauen wollt, schaut mal hier: http://design.mastershrimp.com/rapid/phpAdds/kuchen_diagr.php?action=info
Ist aber nur ein Test - die URL wird also nicht lange verfügbar sein.
Der Hauptgrund meiner Sorge war, dass manche Browser nach 255 Zeichen Schluss machen - das wäre zu wenig. Aber 2048 bzw. 5KB reichen völlig aus.
Gruß
Mastershrimp
Hi,
Erstmal danke für eure beiden Antworten!
Warum kannst Du kein POST nutzen?
Ich mache für einen Forenhoster (rapidforum) eine PHP-Lösung für ein Kuchendiagramm. Da ich auf die Rapid-Engine nicht zugreifen kann und in den Templates kein PHP verfügbar ist, bleibt mir nichts anderes übrig, als das Script auszulagern.
aber nochmal, warum geht POST nicht? Habe ich nicht verstanden.
Wir machen solche Grafiken auch unter http://www.w3research.com. Zwar gibt es hier und dort auch noch ein paar Get-Vars, aber die werden in Kürze bis auf eine SessId eliminiert.
Gruß
Reiner
aber nochmal, warum geht POST nicht? Habe ich nicht verstanden.
Weil man dafür ein Formular braucht!
Die Situation sieht wie folgt aus:
Der Forenhoster rapidforum bietet für seine Skins ein komplettes Template-System an, mit dessen Hilfe man vorhandene Skins bearbeiten oder komplett neue erstellen kann. Innerhalb dieser Templates gibt es kein PHP. Wenn man nun ein _variables_ Kuchendiagramm (für Tages-Statistiken oder so) einbinden möchte, muss das Script, welches dieses Diagramm erstellt, extern sein. Und da bietet sich halt an, das Diagramm einfach mit <img src="http://www.domain.de/diagramm.php?g=100&w1=20&w2=35" alt="Kuchendiagramm"> in ein Template einzubinden. Die Werte werden natürlich durch die Variablen im Template ersetzt.
Oder wie will man sonst Daten per Post durch bloßes Aufrufen übermitteln? Geht doch nur per URL-Parameter, oder?
Gruß
Mastershrimp
Ich baue z.Z. eine Funktion, an die der User beliebig viele Parameter anhängen kann (ist Kuchen-Diagramm). Dies muss er leider per GET machen. Nun habe ich mal gehört (und selber schon mal erlebt), dass bestimmte URL's zu lang sind. Ist das abhängig vom Server oder vom Browser?
Wie sind die Grenzen? 255 Zeichen?
Guggst Du nach:
RFC 2616:
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
Request-URI = "*" | absoluteURI | abs_path | authority
RFC 2396:
abs_path = "/" path_segments
path_segments = segment *( "/" segment )
segment = *pchar *( ";" param )
param = *pchar
pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | ","
Es gibt keine Grenzen.
Was nun welcher Browser und welcher Server verträgt und was nicht, kann Dir weder hier noch sonstwo jemand mit Bestimmheit sagen, aber bei 5 kByte solltest Du Dich schon fragen, ob das so sinnvoll ist. Die Benutzer möchten das doch sicher auch noch bearbeiten können, oder (wenn's aus einem Formular stammen würde, wärest Du nicht auf GET festgelegt)?
Hi,
ich meine mich erinnern zu können mal etwas gelesen zu haben das eine URL nicht länger als 256 zeichen sein darf *kopfkratz*.
vermutlich stammt das noch aus Zeiten, in denen es keine GET-Parameter gab und die Aussage mit den 256 Zeichen auf Dateinamen bezogen war - länger als 256 geht hier normalerweise nicht...
E7