2015-03-08

Las longitudes máximas de URL

Las longitudes máximas de URL

Publicado por jpluimers en 04/20/2010
Un cliente me preguntó recientemente qué espacio debe reservar para almacenar las direcciones URL en sus DBMS.
La pluralidad en el título del tema es una pista: los distintos sistemas tienen diferentes límites en longitudes de URL.
Pero en primer lugar:

No utilice las direcciones URL largas

Si utiliza mucho URL (ya decir que un coupé de 100 caracteres), entonces por lo general tiene un problema.
En primer lugar: URL corta de son más fáciles de recordar, índice y búsqueda.
Segundo: URL largo de puede plantear problemas. 
Puede ser que su navegador y soporte de servidor de ellos. 
Sin embargo, un usuario podría estar detrás de un proxy de la interceptación (a veces invisibles para usted y su usuario) que impone un límite de URL.

Las longitudes máximas de URL

Stackoverflow tiene un buen tema en longitudes de URL , algunos sitios hicieron investigaciones sobre esto hace un tiempo, y aquí es algo más de información que recogí.
Vamos a empezar con la norma oficial sobre esto:
RFC 2616 (Hypertext Transfer Protocol - HTTP / 1.1) establece en el apartado 3.2.1 que no hay límite para la longitud de un URI (URI es el término oficial para lo que la mayoría de la gente llama una URL).
Se advierte sin embargo sobre más de 255 personajes de URI, porque en aquel entonces (1999!) Algunos clientes mayores y sistemas proxy no apoyan eso.
Luego está el RFC 3986 (localizador uniforme de recursos (URI): Sintaxis genérica) que no impone un límite en la longitud total de la URL, pero indica en el apartado 2.3.3 el nombre de host se limita a 255 caracteres (debido a las limitaciones de DNS) .
Boutell hizo una investigación sobre las longitudes de URL en el 2006 . 
Su recomendación es tener cuidado con más de 2.000 personajes de URL.
ASP FAQ hizo una investigación en 2001 . 
Lo curioso en aquel entonces era que Netscape 4.3 apoyó 8k URLs, pero Netscape 6 sólo se admite 2000 caracteres.
Algunos productos específicos (en parte de Boutell y ASP FAQ, en parte, a partir de mi propia investigación):

General: no hay límite teórico de la longitud URL

Si necesita reservar espacio en su DBMS, que sea grande o ilimitado.

Navegadores

Vamos a empezar con el lado del cliente.

Internet Explorer

Internet Explorer 8.4 tiene una longitud máxima de 2.083 URL personajes, sino un límite práctico de 2.048 caracteres.
Internet Explorer 8 también es compatible con los datos URI , y aquellos se limitan a 32kb de tamaño .
No hay informe de un error en Internet Explorer 6 y 7 al exportar atajos de URL: se están truncados a cerca de 259 caracteres. 
Esto se parece demasiado a la de valor MAX_PATH 260 se describe aquí .

FireFox

FireFox parece no tener límite práctico.
Se deja de mostrar después de 64k caracteres, pero puede servidor de más de 100 mil caracteres. 
Esto vale para FireFox 1.5 hasta la versión actual de Firefox.
Danny Thorpe descubrió la manera dura que el límite interno algunas versiones de Firefox se trata de 40k. 
Ver el comentario que hizo.

WebKit: Chrome, Safari

No pude encontrar ningún límite en Chrome y Safari. Ambos están basados ​​en WebKit y parece tener límites similares como FireFox tiene.

Ópera

Aunque Opera tiene su propio código base, no tienen un límite de longitud de URL práctica, alrededor de 200 mil todavía funciona.

Servidores

Apache

En stackoverflow , la gente ha utilizado la configuración LimitRequestLine para apoyar URL de más de 128 mil caracteres.

Internet Information Server

Para la versión de IIS 6 y 7,  el límite predeterminado es de 16 kilobytes , con un máximo de 16 megabytes.

Sharepoint

SharePoint impone algunos límites adicionales en la parte fija de un URL y algunos explicación es en este hilo del foro Microsoft y éste . 
La porción de cadena de consulta puede ser más grande, pero la parte fija es dinámico.
Lo anterior ling también tiene una referencia a una longitud de dirección URL del inspector que se puede utilizar para SharePoint.

Lotus Notes

Desde la versión 6.5.3 en adelante, la longitud máxima de URL se puede establecer en kilobytes. El valor predeterminado es de 4 kilobytes.
Informa NCT Investigación que las versiones anteriores tienen un límite de 2.048 caracteres (versión 5.0.10 y superiores, incluyendo 6.x hasta 6.5.3), y las versiones siguientes tienen un límite de 1.024 caracteres.

Los motores de búsqueda

SEOmofo hizo una investigación sobre la longitud máxima URL de los motores de búsqueda .
Ambos investigaron la longitud para la indexación de URL y la longitud para la visualización de los resultados de búsqueda.
Su ganador es BING: admite hasta 2047 caracteres.
Google admite hasta 1855 caracteres.

Lenguaje Go

El lenguage Go, Es un lenguaje de programación creado por Robert Griesemer, Rob Pike, y Ken Thompson (sí, los Rob Pike y Ken Thompson creadores junto a otros de Unix, UTF-8 y mil cosas más). Es un proyecto open source desarrollado inicialmente en Google y Google sigue siendo en la actualidad su principal impulsor y contribuidor.
Go la mascota
Como lenguaje, Go prima un estilo de programación procedural. Lo podríamos considerar de nivel intermedio/bajo. Pretende ser algo así como el C del siglo XXI y su sintaxis se asemeja a la de C, aunque se ha simplificado en muchos aspectos, eliminando por ejemplo la aritmética de punteros (existen los punteros, pero no podemos operar con ellos) y en general tiene una sintaxis más limpia. Se le han añadido también características “modernas” como puede ser un sistema de build rápido, un sistema de paquetes robusto (para evitar colisión de nombres), recolector de basura, etc.
Una característica que puede resultar interesante es que los programas compilados no requieren de máquina virtual, se obtiene un binario ejecutable directamente. De hecho, por defecto dicho binario está estáticamente linkado, por lo que no tiene ninguna dependencia externa de las librerías usadas para su compilado.
Está disponible para varias plataformas oficialmente: Linux, FreeBSD, Windows y Mac OS X. Para otras plataformas se puede compilar a partir de los fuentes o se puede usar la herramienta alternativa gccgo, que es un frontend para el compilardor GCC (de tal manera que la tarea de generar el binario se deja en manos de GCC).
Una cosa interesante a la hora de empezar con el lenguaje es que existe una herramienta online que nos permite escribir programas en Go y ejecutarlo directamente: Go playground. Aunque es evidente que algunas cosas no se pueden probar aquí (es un entorno sandboxed), nos puede servir para hacernos una idea del lenguaje sin tener que instalarlo. De hecho, es una práctica de la comunidad compartir código, dudas, etc, mediante enlaces a programas en el Playground.
Lo básico para empezar con Go es hacer A tour of Go, un tutorial bastante completo que utiliza el Playground para los ejemplos de código y los ejercicios. Esto es lo que yo hice. Además, desde el propio tutorial enlazan a artículos para poder profundizar en algunos temas.
Por cierto, los creadores del lenguaje no fueron muy avispados con el nombre. Como termino de búsqueda en google, Go es demasiado genérico (aparte de que existe un juego de mesa de origen chino con el mismo nombre). De hecho, es mejor utilizar el termino Golang en lugar de Go cuando buscamos en Google.

Me ha parecido tan interesante que lo he copiado sin cambiar ni una coma de este articulo:http://www.juanjonavarro.com/2015/03/07/lenguaje-go