05-01-2022
Codificação de um caracter "espaço" num URL
Imaginemos que temos um formulário algures numa página web para consultar informação e num dos campos do formulário digitamos algumas palavras separadas por espaços. Ao submetermos esses dados através do protocolo HTTP é feito uma solicitação a um servidor web, que vai receber e processar os dados desse formulário e devolver uma resposta, como em qualquer outro pedido. Mas esse carácter espaço, tal como quando digitamos num URL no browser não é permitido, pelo menos de forma transparente como o conhecemos.
Mas então, como é que é possível, por exemplo, enviar várias palavras separadas por espaços num campo de um formulário? Isso só é possível porque os dados ao serem enviados têm de corresponder a determinados padrões. Os padrões oficiais definidos para a Internet são definidos nas chamadas RFCs (Requests for Comments). Se analisarmos em particular a RFC3986, o caracter "espaço" é definido como um caracter inseguro e por isso devem ter um tratamento especial, isto é, devem ser convertidos (codificados) antes de serem enviados.
Qualquer caracter especial (acentos, cedilhas, aspas, etc, etc.), por exemplo num URL, é codificado por uma % e uma sequência de números. No caso do caracter "espaço", este é codificado através de %20 embora como o espaço é um caracter usado com muita frequência existe uma abreviatura dessa codificação através do sinal +. Esta abreviatura é uma opção e não um requisito, e todos os servidores sabem interpretar quer um "%20" quer um "+" como sendo um caracter "espaço".
👉 Follow @niuGIS
RELACIONADAS