Query string
# Query string

In informatica una query-string o stringa di ricerca è la parte di un URL che contiene dei dati da passare in input ad un programma.

L'URL conterrà l'indirizzo di un server, e il percorso nel suo file system per arrivare alla directory nella quale è presente l'eseguibile del programma. Al termine di tale indirizzo, il segno di "?" apre la query-string. Propriamente, la query-string non comprende il segno di "?", ma è tutto ciò che lo segue.

## Descrizione

* Lunghezza - Il protocollo HTTP non prevede limiti di lunghezza. Alcuni browser come Internet Explorer limitano tale lunghezza a poco più di 2000 caratteri mentre Firefox, Opera ed altri, non sembrano soffrire questa limitazione.
* Caratteri "riservati" - i simboli: "$" "&" "+" "," "/" ":" ";" "=" "?" "@" hanno funzioni specifiche all'interno dell'URL quindi, per evitare possibili conflitti devono obbligatoriamente essere codificati prima della trasmissione.
* Caratteri "non sicuri" - i simboli: " " (spazio) """ (doppi apici) "<" ">" "#" "%" per evitare ambiguità, è consigliabile codificarli.
* Codifica URLencode - Ciascun carattere da codificare, viene sostituito da una tripletta composta dal simbolo "%" seguito da 2 caratteri che rappresentano il corrispondente valore esadecimale. Ad esempio: %20 rappresenta uno spazio, %21 rappresenta il simbolo "!" e così via. Lo spazio può anche essere rappresentato con il simbolo "+", una notazione abbreviata utilizzata per rendere le query-string interpretabili anche da quei sistemi che non supportano gli spazi.

### Sintassi

La sintassi della querystring non è formalmente definita, si può tuttavia definire standard (perché implementata in tutti i browser e nei linguaggi di scripting) il seguente schema:

parametro1=valore1&parametro2=valore2&parametro3=valore3

A ciascun parametro (che può avere nome arbitrario) viene assegnato un valore utilizzando il separatore "=".

I vari parametri (limitati nel numero solo dalla lunghezza della querystring) sono intervallati dal simbolo "&" .

### Usi

La query-string è tipicamente usata per passare al server i dati che l'utente inserisce nei vari spazi bianchi di una web form. Se campo_1, campo_2, campo_3 sono gli spazi della web form da colmare, l'URL generata salvando la form sarà del tipo:

    http://server/percorso/programma?campo_1=valore_1&campo_2=valore_2&campo_3=valore_3.

Esempio:

    http://it.wikipedia.org/application/new_user/registration_form?nome=Mario&cognome=Rossi&ID_utente=M_Rossi.

La query string viene generata dal browser ed inviata ad un programma (di solito scritto in JavaServer Pages, PHP, Asp o Perl) che abita sul server.

