Alguna vez te has puesto a pensar cuál es el máximo de letras que se pueden poner dentro de una dirección de Internet (URL)?
Recientemente estaba haciendo una aplicación en Visual Basic .NET la cual tenía que guardar algunos datos dentro de una base de datos de MySQL que se encontraba ubicada en un Servidor Web Remoto.
Finalmente lo solucioné por medio de la función DownloadString la cual me permite acceder a un archivo URL.
En mi caso, ese archivo URL era una aplicación en PHP que recibía los valores a guardar a través del mismo nombre del URL de la siguiente forma:
Aux="campo1=contenido1&campo2=contenido2&campo3=contenido3" Try Datos = W.DownloadString(New Uri("http://localhost/mice/add.php?" & Aux)) If Datos <> "OK" Then MsgBox(Datos, MsgBoxStyle.Critical, "Error") End If Catch ex As System.Exception MsgBox("Error de conexión a Internet" & vbCrLf & vbCrLf, MsgBoxStyle.Critical, ex.Message) Exit Sub End Try |
Adicionalmente, cree el script llamado add.php en el cual yo recibía y guardaba los valores recibidos dentro del array $_GET y también devolvía la cadena "OK" o el mensaje de error si es que lo había.
Creo que el funcionamiento de este método debe de quedar claro para los programadores de .NET ya que es bastante simple. Pero de cualquie modo, mas adelante voy a publicar el programa completo para aquellos que aun no le "agarren la onda".
Buen pues ya resuelto el problema, me surgió la duda de que tanta información puede uno mandar dentro de un URL y me di a la tarea de investigarlo en Google.
El resultado de dicha investigación me aportó algunos datos muy interesantes:
No hay un estándar para el tamaño de un URL y cada navegador y cada servidor web lo han implementado según sus propios valores.
Los tamaños máximos por navegador son los siguientes:
- Internet Explorer: 2,083 carácteres
- Firefox: 65, 536 carácteres
- Safari: 80.000 carácteres
- Opera: 190.000 carácteres
y por servidor web:
- Apache: 4,000 carácteres
- Microsoft Internet Information Server (IIS): 16,384 carácteres.
- Perl HTTP::Daemon: 8.000 caracteres.
Conclusiones
- Mi aplicación utiliza el objeto WebClient dela librería .NET, por lo que no aplica ninguno de los valores anteriormente expuestos. Sin embargo, dado que el creador de dicha librería es Microsoft, podemos asumir que los valores máximos son los mismos que los del explorer.
- Por el lado del servidor estoy Utilizando Apache (que es el que tiene el límite mas pequeño) pero todos los servidores rebasan los 2000 que me fijé como límite, así que no hay problema sea cual sea el servidor.
|