[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MSIE und CGI-Parameter



Hallo!

Markus Hennies schrieb:

> Hierzu eine kleine Anmerkung:
> 
> Möglicherweise verhält sich hier der MSIE "normgerecht". Denn RFC 1866
> schreibt vor, dass bei der Parameterübergabe bei Links ("anchor style
> hyperlinks") das "&" (Trennzeichen zwischen den Parametern) als Entity
> & bzw. & codiert werden muss ;-)).
> 
> 		[...]
>             NOTE - The URI from a query form submission can be
>             used in a normal anchor style hyperlink.
>             Unfortunately, the use of the `&' character to
>             separate form fields interacts with its use in SGML
>             attribute values as an entity reference delimiter.
>             For example, the URI `http://host/?x=1&y=2' must be
>             written `<a href="http://host/?x=1&#38;y=2";' or `<a
>             href="http://host/?x=1&amp;y=2";>'.
> 		[...]
> 
> Quelle: RFC 1866
> 
> 
> D.h. o.g. Link müsste geschrieben werden als
> 
> <a href="/cgi-bin/crashme.cgi?land=Deutschland&amp;region=Europa">klick mich</a>
> 
> und damit dürfte auch MSIE klarkommen.

... und genau hier haben wir den Salat. Ältere Browser kommen mit derartigen
Links nicht klar. Neue Browser machen teilweise (ohne durchgängig erkennbares
Schema) Ärger mit der "konventionellen" Notation.

Versuchen Sie mal mit einem Browser von vor zwei Jahren einen wie
vorgeschlagen (und RFC-1866-konformen) Link zu verfolgen: Es geht
nicht deterministisch. Auch wenn RFC1866 in diesem Jahr seinen fünften
Geburtstag feiern wird und damit "eigentlich" alls Browser mit der
1866er-Umschreibung klarkommen sollten.


Bei der Weiterentwicklung von HTML wird man insgesamt irgendwann mal
eine Kursentscheidung vornehmen müssen: Entweder die Konformität zur
"Muttersprache" SGML wird konsequent propagiert, oder man nimmt hin
daß hier "etwas eigenständiges" definiert und realisiert wurde. Im
Moment legt jeder HTML so aus, wie es ihm genehm ist, mit den bekannten
Folgen.

Was hier im kleinen mit Parametern in URL's zu Problemen führt, wird
im JavaScript-Bereich noch wesentlich krasser. Eine "und"-Bedingung
in einem JavaScript-Segment beispielsweise müßte konsequenterweise als

	if (a==5 &amp;&amp; b==7) {
	  irgendwas
	}

geschrieben werden, um als Skripttext

	if (a==5 && b==7) {
	  irgendwas
	}

zu erhalten. Setzen Sie das mal verschiedenen Browsern vor, die Ergebnisse
sind phänomenal. Mal ganz abgesehen davon daß man, um JavaScript "neben-
wirkungsfrei" in Seiten einzubauen, ja meist schon Pseudo-Kommentarkon-
struktionen herumlegen muß, um in nicht JavaScript-fähigen Browser die
textuelle Anzeige des Skriptes zu unterbinden, was per se ja auch schon
einen RFC-Verstoß darstellt.

Oder läuft nun die Entwicklung zwangsläufig darauf hin, daß wir überhaupt
nicht mehr mit statischen Seiten arbeiten dürfen und immer erst die
große Browserabfrage durchgeführt werden muß, um zu erkennen, ob wir
es mit Netache, Internet Exploder, Windelweich oder Macintrash zu tun
haben? Und welche DLL's gerade drunterliegen? Vielleicht auch noch eine
Mondphasenberechnung?

Nachdenklich,
Daniel Rödding



-- 
Daniel Roedding                                       phone: +49 5252 9838 0
daniel _at__ roedding.de                                      fax: +49 5252 9838 20


Listeninformationen unter http://www.inetbib.de.