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.

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay