Più parametri in http ottengono la richiesta
-
03-07-2019 - |
Domanda
Sono gli URL del modulo http://asdf.com/something.do ? param1 = true? param2 = false valido?
Non penso al secondo? è consentito in URL validi e dovrebbe invece essere una e commerciale (& amp;), ma non riesco a trovare nulla al riguardo in http 1.1 rfc. Qualche idea?
Soluzione
Non è valido da usare? ancora. ? dovrebbe indicare l'inizio dell'elenco dei parametri. & Amp; dovrebbe separare i parametri.
Da RFC 3986 :
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
Da RFC 1738 :
Un URL HTTP ha la forma:
http:// <host> : <port> / <path> ? <searchpart>
dove
<host>
e<port>
sono come descritto nella Sezione 3.1. Se:<port>
viene omesso, per impostazione predefinita la porta è 80. Nessun nome utente o password è permesso.<path>
è un selettore HTTP e<searchpart>
è una query stringa. <=> è facoltativo, così come <=> e relativo precedente "? " ;. Se non è presente né <=> né <=>, il & Quot; / & Quot; può anche essere omesso.All'interno dei componenti <=> e <=>, " / " ;, " ;; " ;, "? " siamo riservato. Il & Quot; / & Quot; il carattere può essere utilizzato in HTTP per designare a struttura gerarchica.
Altri suggerimenti
usa & amp; per il secondo e il terzo
vale a dire. http://asdf.com/something.do?param1=true < !> amp; param2 = falso
application / x-www-form-urlencoded
Questo è il tipo di contenuto predefinito. I moduli inviati con questo tipo di contenuto devono essere codificati come segue:
&
- I nomi e i valori di controllo sono sottoposti a escape. I caratteri spaziali vengono sostituiti da
+
, quindi i caratteri riservati vengono esclusi come descritto in [RFC1738], sezione 2.2: I caratteri non alfanumerici vengono sostituiti da%HH
, un segno di percentuale e due cifre esadecimali che rappresentano il codice ASCII del carattere . Le interruzioni di riga sono rappresentate come & Quot; CR LF & Quot; coppie (ovvero%0D%0A
).- I nomi / valori di controllo sono elencati nell'ordine in cui compaiono nel documento. Il nome è separato dal valore da
=
e le coppie nome / valore sono separate l'una dall'altra da&
.
Come accennato, non è valido riutilizzarlo. Tuttavia, se hai il? carattere come parte del valore di un parametro, puoi codificarlo come% 63 (proprio come il carattere spazio che viene codificato come% 20).