Codifica dell'URL

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:

Riepilogo dei caratteri di URL validi
ConfiguracaratteriUtilizzo 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
Riservata ! * ' ( ) : @ 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 consentiti negli URL) sono spesso rappresentati 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.