Alcuni caratteri non possono far parte di un URL (ad esempio, lo spazio) mentre altri
hanno un significato speciale in un URL. Nei moduli HTML, il carattere =
è
utilizzata per separare un nome da un valore. La sintassi generica dell'URI utilizza la codifica dell'URL
per risolvere questo problema, mentre i moduli HTML
effettuano altre sostituzioni
invece di applicare la codifica percentuale per tutti questi caratteri.
Ad esempio, gli spazi in una stringa vengono codificati con %20
o sostituiti con
il segno più (+
). Se utilizzi una barra verticale (|
) come separatore, assicurati
per codificare la barra verticale come %7C
. Una virgola in una stringa deve essere codificata come %2C
.
Ti consigliamo di utilizzare le normali librerie di creazione di URL della tua piattaforma per codificano automaticamente gli URL, per garantire che contengano i caratteri di escape corretti per il completamente gestita.
Creazione di un URL valido
Potresti pensare che uno stato "valido" l'URL è chiaro, ma
non è esattamente così. Un URL inserito in una barra degli indirizzi in un
browser, ad esempio, può contenere caratteri speciali (come
"上海+中國"
); il browser deve tradurre internamente
quei caratteri in una codifica diversa prima della trasmissione.
Per lo stesso token, qualsiasi codice che generi o accetta input UTF-8
potrebbe considerare "validi" gli URL con caratteri UTF-8, ma richiederebbe anche
per tradurre quei caratteri prima di inviarli a un server web.
Questa procedura è denominata
Codifica degli URL o codifica percentuale.
Caratteri speciali
Dobbiamo tradurre i caratteri speciali tutti gli URL devono essere conformi alla sintassi specificata dal Uniforme URI (Resource Identifier). In effetti, ciò significa che gli URL deve contenere solo un sottoinsieme speciale di caratteri ASCII: il simboli alfanumerici e alcuni caratteri riservati da utilizzare come controllo all'interno degli URL. Questa tabella riassume questi caratteri:
Configura | caratteri | Utilizzo dell'URL |
---|---|---|
Alfanumerico | a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 | Stringhe di testo, utilizzo dello schema (http ), porta (8080 ) e così via. |
Non prenotato | - _ ~ | Stringhe di testo |
Prenotato | ! * ' ( ) : @ e = + $ , / ? % # [ ] | Caratteri di controllo e/o stringhe di testo |
Quando crei un URL valido, devi assicurarti che contenga solo i caratteri mostrati nei campi . Conformità di un URL all'utilizzo generale di questo insieme di caratteri causa due problemi, uno di omissione e uno di sostituzione:
- I caratteri che vuoi gestire esistono al di fuori
sopra l'insieme. Ad esempio, caratteri in lingue straniere
come
上海+中國
, devono essere codificati utilizzando sopra i caratteri. Per convenzione popolare, gli spazi (che sono non consentite negli URL) sono spesso rappresentate con il'+'
carattere. - I caratteri all'interno di questo intervallo sono impostati come riservati,
ma che devono essere usati letteralmente.
Ad esempio,
?
viene utilizzato negli URL per indicare l'inizio della stringa di query; se vuoi utilizzare stringa "? and the Mysterions" dovresti codificare il modello'?'
carattere.
Tutti i caratteri da codificare nell'URL sono codificati
utilizzando un carattere '%'
e un esadecimale a due caratteri
corrispondente al carattere UTF-8. Ad esempio:
上海+中國
in UTF-8 verrebbe codificato come URL
%E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B
. La
la stringa ? and the Mysterians
verrebbe codificata come URL
%3F+and+the+Mysterians
o %3F%20and%20the%20Mysterians
.
Caratteri comuni che richiedono la codifica
Alcuni caratteri comuni che devono essere codificati sono:
Carattere non sicuro | Valore codificato |
---|---|
Spazio | %20 |
" | %22 |
< | %3C |
> | %3E |
# | %23 |
% | %25 |
| | %7C |
A volte la conversione di un URL ricevuto dall'input dell'utente può essere difficile. Ad esempio, un utente potrebbe inserire l'indirizzo "Via Roma 12". In genere, devi generare l'URL partendo dalle sue parti, tenendo presente che qualsiasi input utente come caratteri letterali.
Inoltre, gli URL sono limitati a 16.384 caratteri per tutti i servizi web di Google Maps Platform e le API web statiche. Per la maggior parte dei servizi, questo limite di caratteri viene raramente raggiunto. Tuttavia, tieni presente che alcuni servizi hanno diversi parametri che possono generare URL lunghi.