Ist dieser Link gültig?
<a href="?lang=en">eng</a>
Ich weiß, dass die Browser es wie erwartet behandeln, und ich weiß, dass der leere Link in Ordnung wäre auch -, aber ist es in Ordnung, nur die Parameter anzugeben?
Ich bin neugierig, weil das Fragezeichen ("?") Nur eine Konvention der meisten HTTP-Server (AFAIK) ist, obwohl ich zugeben muss, dass es eine vorherrschende ist.
Also, um es zusammenzufassen:
werden alle Browser das richtig interpretieren?
ist das in RFC?
kann ich damit Probleme erwarten?
UPDATE: Die beabsichtigte Aktion beim Klicken besteht darin, auf dieselbe Seite umzuleiten, jedoch mit anderen GET-Parametern ("lang = en" im obigen Beispiel).
Ja, so ist es.
Sie finden es in RFC 1808 - Relative Uniform Resource Locators :
Innerhalb eines Objekts mit einer genau definierten Basis-URL von
Basis:<URL:http://a/b/c/d;p?q#f>
Die relativen URLs würden wie folgt aufgelöst:5.1. Normale Beispiele
?y
=<URL:http://a/b/c/d;p?y>
RFC 3986 - Uniform Resource Identifier (URI): Generische Syntax stellt dieselbe wieder her und fügt weitere Details hinzu, einschließlich der Grammatik:
relative-ref = relative-part [ "?" query ] [ "#" fragment ]
relative-part = "//" authority path-abempty
/ path-absolute
/ path-noscheme
/ path-empty #; zero characters
Nun, das heißt nicht, dass alle Browser es gemäß dem Standard implementieren, aber es sieht so aus, als wäre dies sicher.
Ja - und die aktuelle URL wird mit den Parametern angezeigt, die Sie übergeben.
Es ist sehr praktisch, in Situationen zu verwenden, in denen Sie sicherstellen möchten, dass Sie die aktuelle Seiten-/Formulargrenze nicht überschreiten und dasselbe ActionMethod
oder was auch immer mit anderen Parametern abhört, treffen.