DEV Community

Henrique Marques Fernandes
Henrique Marques Fernandes

Posted on • Originally published at marquesfernandes.com on

O que é codificação de URL e como funciona?

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:senha@]host[:porta]]caminho[?parametro][#fragmento]
Enter fullscreen mode Exit fullscreen mode

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

https://google.com.br
Enter fullscreen mode Exit fullscreen mode

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.

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

O post O que é codificação de URL e como funciona? apareceu primeiro em Henrique Marques Fernandes.

Top comments (0)