Parametertrennzeichen in URLs, der Fall eines missbrauchten Fragezeichens

8

Was ich nicht wirklich verstehe, ist der Nutzen von '?' statt '& amp;' in URLs:

Es macht niemandem das Leben leichter, wenn wir ein anderes Zeichen als erstes Trennzeichen verwenden. Kannst du eine vernünftige Erklärung finden?

EDIT: Nach mehr Forschung fand ich, dass "& amp;" kann ein Teil des Dateinamens (Begriffe & amp; conditions.html) sein, also "?" ist ein guter Separator. Aber ich denke immer noch mit "?" für Separatoren macht Leben einfacher (aus Sicht der URL-Generatoren und Parser):

Gibt es einen Vorteil bei der Verwendung von "& amp;" Was ist auf den ersten Blick nicht klar?

    
el_shayan 01.03.2012, 17:29
quelle

3 Antworten

7

Aus Sicht der URI-Spezifikation (RFC 3986) ist das einzige Trennzeichen hier "?". das Format der Abfrage ist undurchsichtig; Die kaufmännischen Und-Zeichen sind einfach etwas, das HTML für Formulareinreichungen verwendet.

    
Julian Reschke 01.03.2012 22:23
quelle
4

Die Antwort ist ziemlich in diesem Artikel - Ссылка . Um es hervorzuheben, hier:

  

Abfrage ist die bevorzugte Methode, um einige Parameter an eine Ressource zu senden   der Server. Dies sind key = value-Paare und sind vom Rest getrennt   der URL von einem? (Fragezeichen) Zeichen und sind normalerweise getrennt   voneinander durch & amp; (Und-Zeichen) Zeichen. Was du vielleicht nicht weißt ist   die Tatsache, dass es legal ist, sie voneinander zu trennen durch;   (Semikolon) Charakter. Die folgenden URLs sind gleichwertig:

     

Ссылка

     

Ссылка

    
Inchara 14.11.2014 17:29
quelle
-1

Der RFC 3896 ( Ссылка ) definiert allgemeine und untergeordnete Trennzeichen ... '?' ist ein General, '& amp;' und ';' sind sub. Die Spezifikation ist ziemlich klar darüber.

In diesem Fall ist letzteres "?" Zeichen würden als Teil der Abfrage behandelt werden. Wenn der Abfrageparser der Spezifikation streng folgt, würde er die gesamte Abfrage an das App-Ziel weiterleiten. Wenn das App-Ziel auswählen könnte, die Abfragezeichenfolge in einer Weise weiter zu verarbeiten, die die? als param Name-Wert-Paare Trennzeichen, das ist bis zu den Designern der app.

Meine Vermutung ist, dass dies oft "nur funktioniert", weil Code, der Query-Strings aufteilt und das ursprüngliche uri alle Begrenzer für die Übereinstimmung verwendet: 1) die erste Abfrage wird auf '?' Dann wird 2) Query-String analysiert mit Char-Match-Liste, die '?' (nur Bequemlichkeit) .... Dies könnte bereits in ubiquitären Parsing-Bibliotheken auftreten.

    
Rondo 01.02.2017 22:43
quelle

Tags und Links