NSURL der parameterString Verwirrung durch Verwendung von ';' vs '&'
Ich verwenden möchte, -[NSURL parameterString]
zu analysieren, die Parameter einer URL, die ich habe übergeben. Es sagt URL entsprechen muss RFC 1808 aber nun Fragen, ob uns nicht?!? Wir verwenden Sie so etwas wie:
http://server/path/query?property1=value1&property2=value2
aber RFC 1808 erwähnt nie das kaufmännische und-Zeichen (&) als gültigen parameter separator (zumindest so, wie ich es gelesen habe). Er schlägt vor, das Semikolon (;). Vielleicht, weil er eingezogen wurde im Jahr 1995? Hat die & ersetzt die ;? Wenn also jemand, ob, wenn NSURL der parameterString wird auch Parsen mit & als Trennzeichen?
Was ist der "richtige" Weg, bevor wir Graben ein großes Loch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gemäß RFC 1808 (2.1. URL Syntaktischen Komponenten) die richtige syntax ist wie folgt :
Er sagt Abfrage von Informationen, die formatiert ist, wie in Abschnitt 3.3 RFC 1738, die uns sagt :
"In den Pfad und searchpart Komponenten, "/", ";", "?" reserviert sind."
Mir die vor, sagt, dass in der URL der Pfad (zu Ihrem CGI) ist :
und die Abfrage ist :
Die nicht enthalten keine reservierten Zeichen. So sind Sie OK. In der Tat, die Verwendung von "&" als Trennzeichen in den query string hier stammt aus dem CGI-Spezifikation und nicht die URL, RFC :
"Formular-Daten ist ein Strom von name=Wert Paaren, getrennt durch das & Zeichen".
RFC1808 nicht definieren das interne format der query-string. Ich glaube, dass das Semikolon Zeug 1808 spricht über zusätzliche Informationen von einer anderen Art (Wege), die in der Praxis nie verwendet.
Soweit ich sehen kann, der NSURL-interface beinhaltet keine Methoden, die sich mit dem Parsen/splitten der Inhalt der query-string selbst, so dass diese kein Interesse an der Klasse, und in der Tat Ihre URL 1808-konform.
Tatsächlich query-strings nicht grundsätzlich mit jedem RFC-definiertes format; Sie können sehr gut, jede saite in Ihnen und rufen Sie unberührt auf der server-Seite. Jedoch ist der HTML-standard beschreibt eine Art der Erstellung von query-strings von form-Inhalt, und dieser
application/x-www-form-urlencoded
- format wird von den meisten server-side-scripts.Gemäß HTML4 Abschnitt 17.13.4.1,
&
ist der parameter separator Browser muss verwenden Sie zum erstellen von query-strings aus mehreren Parametern, also ja, müssen Sie Unterstützung für das kaufmännische und-Zeichen als parameter-separator. HTML4 empfiehlt, server-side Skripte sollten akzeptieren das Semikolon als Alternatives Trennzeichen für das kaufmännische und-Zeichen in query-strings, wie, die verhindert, dass mehr entkommen. Aber es nicht erforderlich ist es, und in der Tat (leider) viele server/form-Lesen-Umgebungen nicht akzeptieren, das Semikolon für diesen Zweck.