Com o GET, existe um limite comum acordado de cerca de 1-2 kilobytes, dependendo das limitações do navegador e do servidor.
Com o POST, não há limite técnico no navegador, mas geralmente no lado do servidor - consulte, por exemplo, Apache LimitRequestBody, PHP post_max_sizee assim por diante.
Cuidado com os problemas apontados por @naugtur abaixo para campos de entrada de texto - pelo menos para aqueles, existem limites técnicos impostos por navegadores diferentes.
Oliver
Acabei de executar alguns testes em 3 navegadores mais ou menos atuais (IE9, FF 10 ESR, Chrome 24) e todos eles enviaram valores de entrada ocultos de 100 KB sem nenhum problema. Portanto, os problemas com entradas de texto não parecem se aplicar aqui.
Oliver
que tal textareas?
Francisco Corrales Morales
@FranciscoCorralesMorales não importa o tipo do campo de entrada - o que conta é o resultado final, a soma de todos os dados que você está enviando
Pekka
Descobri que o Safari truncou a entrada oculta. Usar uma textarea resolveu o problema.
Brendon Muir
29
Aviso! Tive problemas <input type="text">quando o texto é maior que 65535 (tamanho máximo do int assinado)
Colar o texto parece causar algum excesso de conteúdo estranho. Identificado no webkit.
[editar]
O tamanho da solicitação GET não é exatamente limitado da maneira que Pekka escreveu. Há um limite de 2083 bytes para toda a string de consulta GET apenasaddress?params no Internet Explorer.
Em outros navegadores, praticamente não há limite, com o FireFox enviando consultas GET de mais de 100 KB, por exemplo. Obviamente, o servidor deve permitir isso.
+1 Eu criei este jsFiddle para testar o que acontece quando você define um valor de entrada para uma string muito longa: jsfiddle.net/3TVPL/6 Eu usei uma string de 65537 caracteres. Em meus testes, o Crome 24.0.1312 e o Safari 5.1.7 para Windows mostram as caixas de entrada vazias após definir o valor dessa string. O Chrome mostra o valor não vazio adequado se eu reduzir a string para 65536 caracteres. Outros navegadores (Firefox 17, IE8, IE9, IE10, Opera 12.12) não tiveram nenhum problema mesmo com strings muito mais longas (subi até cerca de 1,2 Mb de string)
beluga
@beluga ótimo trabalho. alguma opinião sobre desempenho? Na minha máquina fraca, foi uma longa espera. Acho que é por isso que o webkit não renderiza isso.
naugtur
Bom ponto, talvez. Eu não fiz nenhum teste de desempenho neste momento. Tenho uma máquina bem reforçada no trabalho e não percebi nenhum atraso em nenhum dos navegadores.
beluga de
Fez meu FF inutilizável por uns 5 minutos. Colocar tudo isso em um campo de formulário não é uma boa ideia de qualquer maneira :)
naugtur
Navegadores móveis e proxies também podem truncar campos ocultos
Respostas:
Depende do método de envio do formulário.
Com o GET, existe um limite comum acordado de cerca de 1-2 kilobytes, dependendo das limitações do navegador e do servidor.
Com o POST, não há limite técnico no navegador, mas geralmente no lado do servidor - consulte, por exemplo, Apache
LimitRequestBody
, PHPpost_max_size
e assim por diante.fonte
textarea
s?Aviso! Tive problemas
<input type="text">
quando o texto é maior que 65535 (tamanho máximo do int assinado)Colar o texto parece causar algum excesso de conteúdo estranho. Identificado no webkit.
[editar]
O tamanho da solicitação GET não é exatamente limitado da maneira que Pekka escreveu. Há um limite de 2083 bytes para toda a string de consulta GET apenas
address?params
no Internet Explorer. Em outros navegadores, praticamente não há limite, com o FireFox enviando consultas GET de mais de 100 KB, por exemplo. Obviamente, o servidor deve permitir isso.Não é coberto pela documentação, então é necessário testá-lo para saber os limites de outros navegadores. IE: http://support.microsoft.com/kb/208427
fonte