webentwicklung-frage-antwort-db.com.de

ist link/href nur mit Parametern (beginnend mit Fragezeichen) gültig?

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:

  1. werden alle Browser das richtig interpretieren?

  2. ist das in RFC?

  3. 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).

43
johndodo

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.

38
Kobi

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. 

0