Quantidade de caracteres suportados na barra de endereços dos navegadores

Publicado por Buckminster em 30/04/2024

[ Hits: 895 ]

 


Quantidade de caracteres suportados na barra de endereços dos navegadores



Por enviar os dados no cabeçalho da requisição, o GET tem um limite máximo de dados a serem enviados; geralmente esse limite é definido pelo número de caracteres da string de requisição (query string), alguns afirmam que o limite é 255 caracteres, outros que o limite do GET é 1024, outros dizem que é 2048.

Porém esse limite varia de acordo com as configurações da linguagem utilizada, do servidor web utilizado (Apache, Nginx, IIS, etc); contudo, se tentarmos passar uma grande quantidade de informações via GET, algumas partes podem ser perdidas no caminho, lembrando que o GET só aceita caracteres ASCII, grosso modo, somente texto.

Para o POST o tamanho do URI na barra de endereços também influencia, não no envio de dados, pois estes são enviados no corpo da requisição, mas influencia no comprimento, na quantidade de caracteres que o navegador e/ou o servidor aceitam.

TESTE EM NAVEGADORES

Copiando o conteúdo de um arquivo texto com 37.553 mil caracteres aleatórios, usando Notepadqq no Linux, Notepad++ no Windows e no macOS o editor de texto padrão do Mac, fui colando na barra de endereços do Edge, do Chrome, do Firefox, do Opera e do Safari (macOS), sendo que aumentava o conteúdo do arquivo na medida que o navegador aceitava o conteúdo aumentado.

Depois copiava da barra de endereços e colava em um arquivo em branco para ver a quantidade de caracteres exibidos.

Talvez os números abaixo variem de acordo com o sistema operacional e outros fatores como a codificação do servidor, etc; porém, as configurações estando nos padrões, a variação será de poucos caracteres podendo ser desconsiderada para este teste.

Os testes foram feitos em dois lugares diferentes com bandas de internet diferentes e sistemas operacionais diferentes:

O Edge aceitou 62.877 caracteres, mas ao solicitar (dar enter) exibiu a mensagem "404. That's an error The requested URL ... was not found on this server.", o que é óbvio.

O Chrome a mesma coisa.

O Opera aceitou 26.934 caracteres e ao solicitar (dar enter) apresentava a mensagem "404.. not found", o que é óbvio, e foi o único que travou quando ultrapassava o limite, sendo que ao colar com o limite excedido na barra de endereços travava e voltava com a mensagem "O Ópera se recuperou de uma falha...", ou seja, nem deixava colar e quando estava dentro do limite apresentava a mensagem de erro 400 "... malformed or illegal request".

O Safari apresentava a mensagem "O Safari não pode abrir a página", o que é óbvio.

O Safari exibe na barra de endereços 6.370 caracteres, porém, aceita 253.864 caracteres (ou mais).

Os limites que encontrei são os seguintes:
  • Edge: aceita 62.877 caracteres, exibe 10.104;
  • Chrome: aceita 62.877 caracteres, exibe 10.115;
  • Firefox: 61.960 caracteres, exibe 31.733;
  • Opera: 26.934 caracteres, exibe 10.231;
  • Safari: 253.864 caracteres (o Safari provavelmente aceita mais caracteres, pois parei de testar nesse limite), exibe 6.370.

Com exceção do Opera, quando excedia o limite suportado pelo URI (barra de endereços), os navegadores apresentavam a mensagem de erro 413, por exemplo, no Chrome: "413. That's an error. Your client issued a request that was too large. That's all we know."

Deixo bem claro que esses limites não representam exatamente os limites do GET, pois tem outros fatores envolvidos, mas dão uma boa idéia.

A RFC 9110 de 2022, "HTTP Semantics", seção "5.4. Field Limits" não especifica nenhum requisito para o comprimento do URI (sequência de caracteres digitados na barra de endereços, aquilo que chamam erroneamente de URL).

Está bem claro que o tamanho do URI e, por conseguinte, da Request-URI, é limitado pelo navegador e/ou pelo servidor web utilizado.

Para fins de informação, na RFC 9110 na seção "18.3. Status Code Registration" (link nas referências) tem todos os códigos 1XX, 2XX, 3XX, 4XX e 5XX.

Outras dicas deste autor

Instalar PHP8 no Debian 9 e 10

GRUB com senha criptografada no Debian Squeeze

Nunca execute esses comandos

Criar QR Code pelo navegador

Instalar Java e Netbeans no Slackware 15

Leitura recomendada

Usando internet wireless com autenticação PPPoE

Comunidade de Software Livre de Goiás

Instalando aMSN 0.97b pelo YUM

Internet 3G da VIVO no Ubuntu Linux

CBQ: controle efetivo

  

Comentários
[1] Comentário enviado por maurixnovatrento em 23/06/2024 - 18:29h

dica show.
______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts