Como siempre, posteo sobre problemas y cuestiones varias que lamentablemente tengo que sortear mientras me abro paso programando, o administrando servidores…

Esta vez.. me encontré con este motherfuckin’ error, que la realidad es que en situaciones normales ningún usuario debería ver.. ya que el motivo es como la traducción textual lo dice es una “URI demasiado larga” enviada al servidor, y como era de esperarse, todo tiene un límite.

Los límites se dan tanto por los exploradores como por los servidores Web, y esos límites van variando según se van actualizando versiones, por lo que los límites que describo más abajo que traduje de este artículo.

Límite de extensión de URI en navegadores y servidores Web:

Microsoft Internet Explorer (Browser)
Microsoft define el máximo para una URL en Internet Explorer de 2.083 caracteres, y no más de 2.048 caracteres en la dirección del archivo en el servidor.

Firefox (Browser)
Después de 65536 caracteres la barra de dirección no muestra l URL en Firefox (Windows 1.5.x), aunque he probado URIs más largas y funcionan, dejé de probarlo a los 100.000 caracteres.

Safari (Browser)
Como mínimo funciona con hasta 80.000 caracteres, después de este límite dejé de hacer pruebas.

Opera (Browser)
Al menos hasta los 190.000 caracteres funcionará sin problemas, de hecho se muestra en la barra de direcciones y es editable, se puede copiar y pegar sin problemas.

Apache (Server)
Las pruebas anteriores para medir el máximo de extensión de una URI en los navegadores fallaron por el límite de extensión de URI del servidor aproximadamente a los 4.000 caracteres, -Recientemente he probado con 8.000 caracteres en Apache2 en RHEL sin problemas- (edit by Nico).

Microsoft Internet Information Server
El límite por default es de 26.384 caracteres (si, el servidor Web de Microsoft acepta URIs más largas que el navegador IE). Esto es configurable.

Perl HTTP::Daemon (Server)
Hasta los 8.000 bytes (caracteres) funcionará sin problemas.


Como dije, no tengan muy presentes los límites que traduje más arriba ya que es muy probable que estén obsoletos, pero es un punto de partida hacia la averiguación de su actual límite según el software de servidor que utilicen y los navegadores actuales.

Téngase también en cuenta que los límites están establecidos por algo, por lo que no es recomendable (en caso de necesitarlo) definir un límite mayor en el servidor Web ya que podría dar lugar o incrementar la efectividad de ataques de negación de servicio (Denial Of Service: DOS), entre otros.

Debe analizarse la posibilidad de usar otro método para enviar variables al servidor (de ser posible) como POST.

Salute!
Nico :D