Um URL (acrônimo em inglês para Uniform Resource Locator) é o endereço de um recurso na rede mundial de computadores. Os URLs têm uma estrutura bem definida que foi formulada na RFC 1738 por Tim Berners-Lee, inventor da rede mundial de computadores.

Uma URL segue a seguinte sintaxe:

protocolo:[//[usuario:[email protected]]host[:porta]]caminho[?parametro][#fragmento]

O uso mais conhecido para a URL é para a conexão em sites, como podemos ver no exemplo abaixo.

https://google.com.br

Diversas melhorias foram feitas na RFC inicial. O RFC atual que define a sintaxe do URI é o RFC 3986. Esta postagem contém informações do documento RFC mais recente.

Diferença entre URL e URI

Você provavelmente vai escutar em alguns lugares falando URL e em outros URI.

  • Um URI é um identificador para um recurso específico. Como uma página, livro ou documento
  • A URL é tipo especial de identificador que também lhe diz como acessá-lo, como HTTPs, FTP, etc. Um exemplo seria o próprio site https://marquesfernandes.com

Se o protocolo (HTTPS, FTP, etc.) estiver presente ou implícito para um domínio, você deve chamá-lo de URL, embora ele também seja um URI. Todos os URLs são URIs, mas nem todos os URIs são URLs.

Codificação de URL (codificação com percentual)

Um URL é composto de um conjunto limitado de caracteres pertencentes ao conjunto de caracteres US-ASCII. Esses caracteres incluem dígitos (0-9), letras (AZ, az), e alguns caracteres especiais, ("-"".""_""~"), por se tratar de US-ASCII, os caracteres permitidos não incluem os acentos como os encontrados na língua portuguesa.

Existem alguns caracteres especiais que possuem um uso especial nas URLs. Alguns exemplos de caracteres reservados são ?/#:etc. Quaisquer dados transmitidos como parte da URL, seja em consulta segmento de corda ou caminho, não deve conter esses caracteres diretamente.

Além disso, caracteres perigosos como espaço\<>{}etc, e qualquer carácter fora do conjunto de caracteres ASCII, não são permitidos diretamente nas URLs.

Então, o que fazer quando precisamos enviar dados na URL que contenham esses caracteres não permitidos? Usamos a magia da codificação.

A codificação de URL converte os caracteres reservados e inseguros em um formato compreendido por todos os navegadores e servidores da internet. Primeiro convertemos o caractere em um ou mais bytes. Então, cada byte é representado por dois dígitos hexadecimais com um prefixo de % (por exemplo %20). O sinal de porcentagem é usado como um caractere de segurança.

Exemplo de codificação de URL

Espaço: um dos caracteres codificados de URL mais frequentes que você provavelmente encontrará é um espaço vazio. O valor ASCII do espaço vaziocaractere em decimal é 32, que quando convertido em hexadecimal passa a ser 20. Agora, adicionamos o prefixo de porcentagem ( %), que nos dá o valor codificado do URL: %20.

Tabela de referência de codificação de porcentagem de caracteres ASCII

A tabela a seguir é uma referência de caracteres ASCII para sua forma codificada de URL correspondente.

DecimalPersonagemCodificação de URL (UTF-8)
0NUL (caractere nulo)%00
1SOH (início do cabeçalho)%01
2STX (início do texto)%02
3ETX (fim do texto)%03
4EOT (fim da transmissão)%04
5ENQ (inquérito)%05
6ACK (reconhecer)%06
7BEL (sino)%07
8BS (retrocesso)%08
9HT (guia horizontal)%09
10LF (alimentação de linha)%0A
11VT (guia vertical)%0B
12FF (alimentação de formulário)%0C
13CR (retorno de carro)%0D
14SO (mude para fora)%0E
15SI (mudança)%0F
16DLE (escape do link de dados)%10
17DC1 (controle de dispositivo 1)%11
18DC2 (controle de dispositivo 2)%12
19DC3 (controle do dispositivo 3)%13
20DC4 (controle do dispositivo 4)%14
21NAK (reconhecimento negativo)%15
22SYN (sincronizar )%16
23ETB (fim do bloco de transmissão)%17
24POSSO (cancelar)%18
25EM (fim da mídia)%19
26SUB (substituto)%1A
27ESC (escapar)%1B
28FS (separador de arquivo)%1C
29GS (separador de grupo)%1D
30RS (separador de registro)%1E
31US (separador de unidade)%1F
32espaço%20
33!%21
34%22
35#%23
36$%24
37%%25
38E%26
39%27
40(%28
41)%29
42*%2A
43+%2B
44,%2C
45%2D
46.%2E
47/%2F
480%30
491%31
502%32
513%33
524%34
535%35
546%36
557%37
568%38
579%39
58:%3A
59;%3B
60<%3C
61=%3D
62>%3E
63?%3F
64@%40
65A%41
66B%42
67C%43
68D%44
69E%45
70F%46
71G%47
72H%48
73I%49
74J%4A
75K%4B
76L%4C
77M%4D
78N%4E
79O%4F
80P%50
81Q%51
82R%52
83S%53
84T%54
85U%55
86V%56
87C%57
88X%58
89Y%59
90Z%5A
91[%5B
92\%5C
93]%5D
94^%5E
95_%5F
96`%60
97a%61
98b%62
99c%63
100d%64
101e%65
102f%66
103g%67
104h%68
105i%69
106j%6A
107k%6B
108eu%6C
109m%6D
110n%6E
111o%6F
112p%70
113q%71
114r%72
115s%73
116t%74
117u%75
118v%76
119C%77
120x%78
121y%79
122z%7A
123{%7B
124|%7C
125}%7D
126~%7E
127DEL (apagar)%7F

0 0 votos
Nota do Artigo
Author

Um nerd nada tradicional… Desenvolvedor web full-stack, escritor amador e inventor nas horas vagas. Apaixonado por tecnologia e entusiasmado por projetos de código aberto!

Subscribe
Notify of
guest
1 Comentário
newest
oldest most voted
Inline Feedbacks
View all comments
EDGAR PULLEN PARENTE
3 meses atrás

muito bom e didatico

1
0
Would love your thoughts, please comment.x
()
x